Пятница, 2024-Апр-19, 20:34
Приветствую Вас залетный | RSS
       С А Й Т    
"РАДИОРУБКА"
Главная
Регистрация
ВХОД>>лВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » ФОРУМ РАДИОЛЮБИТЕЛЕЙ » МИКРОКОНТРОЛЛЕРЫ и все что с ними связано... » Модификация мигалки на МК
Модификация мигалки на МК
staticvoidДата: Суббота, 2019-Июн-15, 20:55 | Сообщение # 1
заглянувший
Группа: Пользователи
Сообщений: 4
Репутация: 0
Замечания: 0%
Статус: Offline
Здравствуйте!
Делаю свой первый проект Светодиодная мигалка на микроконтроллере ATmega8. Проект компилировал в Atmel Studio.
Вроде все заработало как нужно, но хочу теперь добавить светодиоды - 4 штуки и повесить их к примеру на порт B. 
Не совсем понимаю что нужно написать в код, как я понимаю сначала нудно настроить порт B на выход :
Код:
DDRB= 0xff;      /* все выводы порта D сконфигурировать как выходы */

А вот как быть дальше не совсем понятно(( Подскажите пожалуйста.
Я могу просто скопировать часто кода где есть порт D и заменить на B. К примеру рядом с DDRD &= ~(1<<j); дописать DDRB &= ~(1<<j); и так далее?
 
US5EVDДата: Суббота, 2019-Июн-15, 22:16 | Сообщение # 2
мастер
Группа: Модераторы
Сообщений: 1122
Репутация: 13
Замечания: 0%
Статус: Offline
Цитата staticvoid ()
я понимаю сначала нудно настроить


а что должны делать светодиоды?

да, и какая цель всего этого процесса??

Добавлено (2020-Мар-25, 09:35)
---------------------------------------------
для начала , назначить (выбрать ) шесть входов (как в приведенном выше примере).
и один выход.

затем в цикле опрашивать эти входы на предмет срабатывания и выдавать соотв уровень на выход.

не ясно из  задания, кто будет (какое событие) выход в исходное состояние переводить будет.

Добавлено (2020-Мар-25, 09:37)
---------------------------------------------
не понял ..
куда все пропало...

 
US5EVDДата: Среда, 2020-Мар-25, 10:58 | Сообщение # 3
мастер
Группа: Модераторы
Сообщений: 1122
Репутация: 13
Замечания: 0%
Статус: Offline
рекомендую найти в сети блокнот программиста, брошюрка такая.
И пользоваться. Там необходимый минимум собран.
 
istina03313Дата: Среда, 2020-Мар-25, 12:21 | Сообщение # 4
любопытный
Группа: Пользователи
Сообщений: 68
Репутация: 25
Замечания: 0%
Статус: Offline
Немного завидую (белой завистью) smile ,когда люди хорощо разбираются и в программировании и в ВЧ схемотехнике,и в силовой ,и в самой основе аналоговой (начиная с режимов работы транзисторов и ОУ), это реальные инженера-электронщики по призванию. У меня же в электронике всегда всё внимание сосредотачивается на чём то одном конкретном (остальное забывается и в голову не идёт) ,всё внимание на то в чём наибольший интерес,вот программирование вообще в голову не идёт wink . С такими вещами у меня есть такой момент,когда очень нужно,могу прочитать,понять и очень быстро забыть (ну вот не стало оно моим основным хобби). Но в этом и плюс,нефиг рассеиваться лишний раз, вот Швондер по своему зову сердца делает аналоговую,ВЧ часть аппаратуры, а US5EVD спец по программированию МК, так и должно быть. Результат- маленький сайт/форум,много опробованных вариантов воплощённых в железе и реально работающих,и наверное много повторивших и работающих в эфире на этих наработках!
 
US5EVDДата: Среда, 2020-Мар-25, 12:35 | Сообщение # 5
мастер
Группа: Модераторы
Сообщений: 1122
Репутация: 13
Замечания: 0%
Статус: Offline
Цитата istina03313 ()
US5EVD спец по программированию МК
Не преувеличивайте.

Просто включайтесь в процесс.
Если интересно.

Начать с самого простого и понять КАК ЭТО РАБОТАЕТ.
 
US5EVDДата: Четверг, 2020-Мар-26, 08:33 | Сообщение # 6
мастер
Группа: Модераторы
Сообщений: 1122
Репутация: 13
Замечания: 0%
Статус: Offline
Цитата залетный ()
но к приёмнику не пойдёт на теа6200 наверное...
 все там подойдет. Работают приемники.
 
залетныйДата: Среда, 2020-Май-13, 00:11 | Сообщение # 7
Группа: Гости





Голова пухнет при изучении, но отступать некуда уже.
Самое простое сделал , один вход на герконе и один выход на рэле( с ноля программу)
Рэле модуль спаял по китайскому аналогу ( не инверсный)
Столкнулся с чем новичек - АЦП у контроллера один - следовательно чтобы контроллер понял какой геркон сработал из 4х, нужно делать резистивный делитель на аналоговом входе любом.
Если входами назначить цифровые пины , то скейтч уже не по силам. Два канала можно сделать на if и else , но а если три рэле надо управлять, непонятно как писать.
Дисплей пока подключаю через i2c , чтобы больше оставить свободных пинов. Кстати через этот интерфейс можно много подключить тем самым разгрузить много пинов на меге но бутерброд будет толстый.
Пока два пути - учить и понять по примерам. Или изучать по буковке.
В примерах массивы , сложновато чтобы понять...
 
залетныйДата: Среда, 2020-Май-13, 07:35 | Сообщение # 8
Группа: Гости





wink Все получится! Главное- Начать.
 
Marshal20Дата: Понедельник, 2021-Апр-26, 21:09 | Сообщение # 9
заглянувший
Группа: Пользователи
Сообщений: 5
Репутация: 0
Замечания: 0%
Статус: Offline
Почему "пока" подключаете дисплей по i2c. Как по мне для таких проектов этого достаточно с головой. Что планируете на потом ? Вместо i2c?
 
залетныйДата: Пятница, 2021-Сен-10, 16:59 | Сообщение # 10
Группа: Гости





Александр , добрый день. Подскажите пожалуйста, часть этого скейтчаподойдет для КСВ -мощеметра, алгоритм вроде понятен.
Необходимость возникла собрать такой девайс. Может чем его дополнить надо или есть более продвинутые решения?

Добавлено (2021-Сен-10, 16:02)
---------------------------------------------
КСВ метр на Ардуино
Аватар пользователя
-=dp=-
Автор
Re: КСВ метр на Ардуино
Сообщение -=dp=- » 22 июн 2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей

void setup() {
Serial.begin(9600); // инициируем СОМ порт
lcd.init()
}

void loop() {
int U1=0;// U прямое
int U2=0;// U обратное
int U12=0;// Сумма U
float U21=0;// Разность U
float KSV=0;// Значение отношения (КСВ)
int Ur1 = analogRead(A0); // считываем значение U с аналогового входа 0
int Ur2 = analogRead(A1); // считываем значение U с аналогового входа 1
delay(50); // задержка 50 мс
int Ur3 = analogRead(A0); // считываем значение U с аналогового входа 0
int Ur4 = analogRead(A1); // считываем значение U с аналогового входа 1
delay(50); // задержка 50 мс
int Ur5 = analogRead(A0); // считываем значение U с аналогового входа 0
int Ur6 = analogRead(A1); // считываем значение U с аналогового входа 1

U1=(Ur1+Ur3+Ur5)/3; // присваиваем значение переменной
U2=(Ur2+Ur4+Ur6)/3;// присваиваем значение переменной
U12=U1+U2; // вычисляем сумму
U21=U1-U2; // вычисляем разность
KSV=U12/U21;// вычисляем отношение
lcd.setCursor(0, 0);
// Устанавливаем курсор на первую строку и нулевой символ.
lcd.print("PRA ");
lcd.print(U1); // U прямое
lcd.print(" OBR ");
lcd.print(U2);// U обратное
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("KSV ");
lcd.print(KSV);// Значение отношения (КСВ)
lcd.print(" ");
delay(500); // задержка 500 мс
}

 
US5EVDДата: Понедельник, 2021-Сен-13, 07:43 | Сообщение # 11
мастер
Группа: Модераторы
Сообщений: 1122
Репутация: 13
Замечания: 0%
Статус: Offline
Немного полправил

//КСВ метр на Ардуино
//Аватар пользователя
//-=dp=-
//Автор
//Re: КСВ метр на Ардуино
//Сообщение -=dp=- » 22 июн 2
#include
#include
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей

int U1=0;// U прямое
int U2=0;// U обратное
int U12=0;// Сумма U
float U21=0;// Разность U
float KSV=0;// Значение отношения (КСВ)

void setup() {
//Serial.begin(9600); // инициируем СОМ порт  lcd.init()     Это для отладки

}

void loop() {

int Ur1 = analogRead(A0); // считываем значение U с аналогового входа 0
int Ur2 = analogRead(A1); // считываем значение U с аналогового входа 1
//delay(50); // задержка 50 мс
int Ur3 = analogRead(A0); // считываем значение U с аналогового входа 0
int Ur4 = analogRead(A1); // считываем значение U с аналогового входа 1
//delay(50); // задержка 50 мс
int Ur5 = analogRead(A0); // считываем значение U с аналогового входа 0
int Ur6 = analogRead(A1); // считываем значение U с аналогового входа 1

U1=(Ur1+Ur3+Ur5)/3; // присваиваем значение переменной
U2=(Ur2+Ur4+Ur6)/3;// присваиваем значение переменной
U12=U1+U2; // вычисляем сумму
U21=U1-U2; // вычисляем разность
KSV=U12/U21;// вычисляем отношение
lcd.setCursor(0, 0);
// Устанавливаем курсор на первую строку и нулевой символ.
lcd.print("PRA ");
lcd.print(U1); // U прямое
lcd.print(" OBR ");
lcd.print(U2);// U обратное
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("KSV ");
lcd.print(KSV);// Значение отношения (КСВ)
lcd.print(" ");
delay(500); // задержка 500 мс
}
 
залетныйДата: Понедельник, 2021-Сен-13, 15:25 | Сообщение # 12
Группа: Гости





Спасибо большое. Я заказал пару дисплеев 4 строчных для экспериментов.

Добавлено (2021-Сен-14, 08:53)
---------------------------------------------
Александр , можно ещё спросить, градуировку проводить прибора в этом скейтче насколько я понял ,делителем на 3. Тоесть подбирать коэффициент деления так чтобы на экране я увидел цифры своей мощности. Там и диоды компенсируются сразу. Планирую такой прибор использовать до 1 кВт , датчик будет тандэм.

Добавлено (2021-Сен-14, 08:57)
---------------------------------------------
Точность прибора не сильно важна. Там к примеру 950 ватт а показывает 900 или 880. В таких примерно пределах. Либо померять может напряжение с датчика и вычислить делитель в скейтче?

 
US5EVDДата: Вторник, 2021-Сен-14, 15:34 | Сообщение # 13
мастер
Группа: Модераторы
Сообщений: 1122
Репутация: 13
Замечания: 0%
Статус: Offline
Цитата залетный ()
Александр , можно ещё спросить, градуировку проводить прибора в этом скейтче насколько я понял ,делителем на 3.
не понял вопрос
 
залетныйДата: Вторник, 2021-Сен-14, 18:41 | Сообщение # 14
Группа: Гости





Ну я подаю допустим 200 ватт на датчик КСВ. Предположим с датчика выходит 2-3 вольта прямая и 0.2 вольта обратная (величины для примера)
Контроллер считает отношение между прямой и обратной ,выводит результат в виде числа (КСВ). А если мне надо видеть ваты прямой и обратной волны? Считается в зависимости от напряжения делитель в скейтче. Или лучше измеритель мощности добавить как отдельную переменную?
 
US5EVDДата: Среда, 2021-Сен-15, 07:37 | Сообщение # 15
мастер
Группа: Модераторы
Сообщений: 1122
Репутация: 13
Замечания: 0%
Статус: Offline
Цитата залетный ()
у я подаю допустим 200 ватт на датчик КСВ.
 Откуда известно? Нужно измерять. КАК?
-Подключить нагрузку 50 Ом на выход и измерить на ней напряжение. вычислить мощность. Измерить напряжение на датчике. Вычислить коэф. пропорциональности. и им пользоваться в дальнейшем.
 
Форум » ФОРУМ РАДИОЛЮБИТЕЛЕЙ » МИКРОКОНТРОЛЛЕРЫ и все что с ними связано... » Модификация мигалки на МК
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: