Управление реле на ATmega8
Re: Управление реле на ATmega8
Ребят, а какие Биты при прошивке выставить?
Re: Управление реле на ATmega8
Iazzz писал(а):какие Биты при прошивке выставить?
Если вы про ту схему, на которую я думаю что вы про неё думаете , то тогда я не знаю какие ...
Re: Управление реле на ATmega8
Ну вот и появились первые наработки... прошил ATTiny2313 прошивкой, которую написал korsaj, собрал схему по протеусу, запустил и получилось следующее: когда я подаю 5в с 7805 на контроллер загорается светодиод с 19 вывода контроллера, при нажатии на какую либо из кнопок загорается соответствующий светодиод, когда отпускаю кнопку - соответствующий кнопке светодиод гаснет, а светодиод с 19 ноги горит постоянно (вне зависимости нажата другая кнопка или нет). При прошивке выставил стандартные фьюзы... Схему делал для проверки работы прошивки непосредственно на контроллере
Такая штука вышла:
http://s018.radikal.ru/i522/1211/df/60923e9e359f.jpg
Такая штука вышла:
http://s018.radikal.ru/i522/1211/df/60923e9e359f.jpg
Re: Управление реле на ATmega8
C@at писал(а):Iazzz писал(а):какие Биты при прошивке выставить?
Если вы про ту схему, на которую я думаю что вы про неё думаете , то тогда я не знаю какие ...
я про вашу последнюю, которая с семисегментом)
Re: Управление реле на ATmega8
Там вроде не принципиально, можно оставить и по умолчанию заводские установки новой меги 1 МГц.
А сама прошивка скопилирована в проекте который настроен на тактовую частоту 4 МГц. МК тактируется от внутреннего RS осциллятора.
Для PonyProg, и CodeVisionAVR выглядят так:

В аноды ставьте токоограничительные резисторы.

Архив с прошивкой где после включения МК вкл. первое реле
А сама прошивка скопилирована в проекте который настроен на тактовую частоту 4 МГц. МК тактируется от внутреннего RS осциллятора.
Для PonyProg, и CodeVisionAVR выглядят так:

В аноды ставьте токоограничительные резисторы.

Архив с прошивкой где после включения МК вкл. первое реле
Re: Управление реле на ATmega8
Iazzz писал(а):... контроллер загорается светодиод с 19 вывода контроллера, при нажатии на какую либо из кнопок загорается соответствующий светодиод, когда отпускаю кнопку - соответствующий кнопке светодиод гаснет, а светодиод с 19 ноги горит постоянно (вне зависимости нажата другая кнопка или нет).
Проверяйте потенциал не 4 выводе, он должен быть +5В, если меньше 2,5 вольт то так и будет работать, мк видит что кнопка нажата.
C@at писал(а):Там вроде не принципиально, можно оставить и по умолчанию заводские установки новой меги 1 МГц.
У Атмеги2313 вроде заводской 8МГц с делителем на 8.
Re: Управление реле на ATmega8
Спасибо большое Ребята! собрал в железе - всё работает, щелкают релешки
С меня пиво, Вы где живете?)
Re: Управление реле на ATmega8
Смотри в колонке с лева ниже имени )))
-
slava_tuit
- Родился
- Сообщения: 13
- Зарегистрирован: Пн янв 14, 2013 14:17:49
Re: Управление реле на ATmega8
у меня примерно такая же задача, но входов-выходов поболее(( подскажите как реализовать такое:
1кнопка-реле10,11
2кнопка-реле5,7
3кнопка-реле4,9
4кнопка-реле9
5кнопка-реле2,12
6кнопка-реле9,10,11
7кнопка-реле1,7
8кнопка-реле1,6
9кнопка-реле1,2
10кнопка-реле1,3
11кнопка-реле1,2,3,4,6,7
так же как и в случае выше нужно управление кнопками без фиксации.
есть еще один нюанс-при включении устройства все реле должны быть выключены,то есть не задействован ни
один канал....помогите кто сможет..заранее спасибо!
1кнопка-реле10,11
2кнопка-реле5,7
3кнопка-реле4,9
4кнопка-реле9
5кнопка-реле2,12
6кнопка-реле9,10,11
7кнопка-реле1,7
8кнопка-реле1,6
9кнопка-реле1,2
10кнопка-реле1,3
11кнопка-реле1,2,3,4,6,7
так же как и в случае выше нужно управление кнопками без фиксации.
есть еще один нюанс-при включении устройства все реле должны быть выключены,то есть не задействован ни
один канал....помогите кто сможет..заранее спасибо!
Re: Управление реле на ATmega8
slava_tuit писал(а):у меня примерно такая же задача, но входов-выходов поболее(( подскажите как реализовать такое:
Реализовать такое , у вас два варианта.
1) Самостоятельно (НО .... при этом вам придется потратится на мегу 16, иметь на компьютере компилятор CodeVisionAVR, и протеус)
2) Просить кого либо тут, пока он не проникнется вашей проблемой и поможет вам от начала и до конца (при этом все обойдется тини2313, и пара сдвиговых регистров НС595).
Так вот для первого варианта, исходник который находится в этой ветке форума
Спойлер
Код: Выделить всё
#include <mega8.h>
#include <delay.h>
flash unsigned char led[11]={
0b10000000,
0b00000110, 0b01011011,
0b01001111, 0b01100110,
0b01101101, 0b01111101,
0b00000111, 0b01111111,
0b01101111, 0b00111111}; // Массив "led" во flash-памяти,
flash unsigned char pind[11]={
0b10000000,
0b00000010, 0b00000100,
0b00001000, 0b00010000,
0b00100000, 0b00001010,
0b00010010, 0b00010100,
0b00000000, 0b00000000}; // Массив "pind" во flash-памяти,
unsigned char i=0; // переменная
void main(void)
{
PORTB=0b11111111; // Port B initialization
DDRB=0b00000000;
PORTC=0b01000000; // Port C initialization
DDRC=0b00111111;
PORTD=0b00000000; // Port D initialization
DDRD=0b011111111;
while (1)
{
PORTD=led[i];
PORTC= pind[i];
if (PINB.0==0) i=1;
if (PINB.1==0) i=2;
if (PINB.2==0) i=3;
if (PINB.3==0) i=4;
if (PINB.4==0) i=5;
if (PINB.5==0) i=6;
if (PINB.6==0) i=7;
if (PINB.7==0) i=8;
delay_ms(50);
};
}Это очень простой вариант, можно сказать примитив, возможно вы быстро и сами разберетесь сами в этом исходнике (в помощь вам CodeVisionAVR, и протеус).
Если нет, то здесь найдется сотня котов которые вам помогут поправить его, или предложат свой вариант , для Atmega16 это все будет примитив....
Второй вариант просить все с нуля, тут тоже десяток людей найдется которые вам помогут, но это уже будет наверное не все так быстро.
У меня например есть подобное в арсенале. Но к сожалению пока не имею времени сочинить еще что-то подобное...
Спойлер
Управление выходами в любом порядке .С клавиатуры набираем нужный нам номер управляемого выхода, нажимаем кнопку ввод , выход включается.
При повторном наборе этого номера, нажимаем кнопку *ввод , выход выключается.
Состояние выходов (вкл. - выкл.) сохраняется в энергонезависимой памяти МК.
Возможен вариант , сброса всех выходов в состояние "выключено" для этого набираем с клавиатуры "33" и кнопку *ввод ......

Файлы к этой схеме.
Cхема управления на 32 выхода (поочередно).
Принцип работы такой: управляем поочередным включением 32 выходов с помощью клавиатуры, например для включения выхода 13 , нужно набрать на клавиатуре число 13, оно должно отобразиться на индикаторах, после чего, нажав на ввод сработал выход №13 и удерживался до набора следующего номера. То есть в данный момент времени включен только один выбранный выход.

Файлы к схеме.
Так что начинайте сами, и все получится.
Re: Управление реле на ATmega8
slava_tuit писал(а):у меня примерно такая же задача, но входов-выходов поболее(( подскажите как реализовать такое:
......
так же как и в случае выше нужно управление кнопками без фиксации.
есть еще один нюанс-при включении устройства все реле должны быть выключены,то есть не задействован ни
один канал...
А как Вам такой вариант?
В архиве проект в Proteus и прошивка. Добавил для симметрии еще одну кнопку - Сброс, можно не ставить.
----
20.04.2013
Исправил ошибку подключения кнопки SW12 (Сброс) в проекте Proteus.
- Вложения
-
- Relay_control.zip
- (34.24 КБ) 312 скачиваний
-
- Relay_control.png
- (16.26 КБ) 1123 скачивания
Последний раз редактировалось Soir Сб апр 20, 2013 08:41:35, всего редактировалось 1 раз.
-
slava_tuit
- Родился
- Сообщения: 13
- Зарегистрирован: Пн янв 14, 2013 14:17:49
Re: Управление реле на ATmega8
Soir писал(а):slava_tuit писал(а):у меня примерно такая же задача, но входов-выходов поболее(( подскажите как реализовать такое:
......
так же как и в случае выше нужно управление кнопками без фиксации.
есть еще один нюанс-при включении устройства все реле должны быть выключены,то есть не задействован ни
один канал...
А как Вам такой вариант?
В архиве проект в Proteus и прошивка. Добавил для симметрии еще одну кнопку - Сброс, можно не ставить.
Огромное спасибо!!!! в протеусе все работает так как надо,правда сброс не срабатывает...но в принципе он мне не
нужен..буду проверять в железе..о результатах на днях отпишусь...ещё раз спасибо!
Re: Управление реле на ATmega8
slava_tuit писал(а):сброс не срабатывает...
Я допустил ошибку в Proteus, пересоедините заново кнопку SW12.
slava_tuit писал(а):...буду проверять в железе...
Тогда несколько советов.
1. В железе уделите внимание подбору резисторов. Собственно, пределы срабатывания кнопок довольно демократичны, но лучше подобрать ближе к указанным в проекте. Если установить виртуальный вольтметр, то можно посмотреть напряжения срабатывания кнопок.
2. На входе в МК желательно установить небольшие (0,01 - 0,1 мкФ) конденсаторы. По крайней мере предусмотрите под них место. В прошивке реализована программная защита от воздействия помех и дребезга, но при срабатывании реле все может быть. Большая емкость наоборот, может привести к неправильному определению кнопки.
3. Ну и конденсаторы по питанию... Тут маслом каши не испортишь...
-
slava_tuit
- Родился
- Сообщения: 13
- Зарегистрирован: Пн янв 14, 2013 14:17:49
Re: Управление реле на ATmega8
да.сброс начал сбрасывать)))
на выход нужны будут ключики какие-нибудь...думаю улн2003 справится с этой задачей..по крайней мере по току
ее хватит
еще раз благодарю
на выход нужны будут ключики какие-нибудь...думаю улн2003 справится с этой задачей..по крайней мере по току
ее хватит
еще раз благодарю