Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Автоматика >

Автоматическое освещение AtMega328(PIR)

Автор: Дизель, black0010110@gmail.com
Опубликовано 21.06.2016.
Создано при помощи КотоРед.

Доброго времени суток. Была просьба сделать автоматическое включение и выключение двух светильников и вот после выполнения работы решил залить тему, вдруг пригодится кому. Суть в чем: Есть небольшая комната формой "Г", проходят через нее часто, но не задерживаясь. Освещается она 2 настольными светильниками включенными в розетки. Необходимо сделать что бы при входе свет включался и горел пока человек находится внутри, после того как он вышел свет выключается, За углом находится второй светильник и не всегда нужно включать его. Думать будет AtMega328, статья для тех кто уже работал с ней и рассматриваться ее подключение (необходимая обвязка) и сам процесс прошивки не будет.

Было решено не делать разрыв в проводах ламп, а сделать отдельную розетку. Реле устраняют разрыв в проводе питания и лампы включаются. Пины arduino боятся достаточно большой взаимоиндукции реле и для того что бы сберечь им жизнь, ставим обратные диоды. Реле подключаются не напрямую, а через маленького посредника, транзистор (NPN), который подключается через резистор.

Собираем на макетке используя Arduino Uno. PIR датчики движения имеют 3 ноги, питание (+5, GND) и цифровой. При движении на цифровую ногу подается HIGH (длину сигнала можно регулировать подстроечным резистором). 2 ноги подключаем к Arduino от датчиков.

Переходим к схеме. Вся схема разделена на 2 узла: узел ключей и узел релюшек.

Сам узел ключей выглядит так.

С AtMeg'и берем питание и 2 цифровой выхода. При подачи на 2 цифровых выхода HIGH транзисторы проводят GND на узел реле..

Узел реле.

 

При срабатывании реле, разрыв в сетевом проводе нейтрализуется и светильник включается.

ПП и её чучело.

Ну и результат.

Узел Реле был спрятан в розетку для большей компактности.

Видео работы https://drive.google.com/open?id=0B9-4Zt_gwH9ATzNLNkY4TXZ4Uzg

Код

/*Black, Alehin, 2016.*/

const uint64_t time1_1;
const uint64_t time2_1;
const uint64_t time3_1;
const uint64_t time1_2;
const uint64_t time2_2;
const uint64_t time3_2;

void setup() {
Serial.begin(9600);
pinMode(4, INPUT); //PIR 1
pinMode(5, INPUT); //PIR 2
pinMode(2, OUTPUT); //relay 1
pinMode(3, OUTPUT); //relay 2
digitalWrite(4, LOW);
digitalWrite(5, LOW);

}
void loop()
{
if (digitalRead(4) == HIGH) //засекаем время с начала срабатывания PIR 1
{digitalWrite(2, HIGH);
time1_1 = millis();}
if (digitalRead(5) == HIGH) //засекаем время с начала срабатывания PIR 2
{digitalWrite(3, HIGH);
time1_2 = millis();}

if (digitalRead(4) == LOW) //включаем relay 1 на 30 секунд
{ time2_1 = millis();
time3_1 = time2_1 - time1_1;
if (time3_1 >= 30000)
{ digitalWrite(2, LOW);}
}
if (digitalRead(5) == LOW) //включаем relay 2 на 30 секунд
{ time2_2 = millis();
time3_2 = time2_2 - time1_2;
if (time3_2 >= 30000)
{ digitalWrite(3, LOW);}
}
}

Список радиоэлементов

Обозначение Тип Номинал Количество
Q Биполярный транзистор 2N2222 2
R Резистор 10 кОм 2
D Выпрямительный диод 1N4004 2
K Реле 5 вольтовое 2
J1 МК AVR 8-бит ATmega32 1

 

 


Файлы:







Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?

6 6 49