Добавить в корзинуПозвонить
Найти в Дзене
Изучаю с НОЛЯ.

Автоматическое включение света ИК датчиком приближения

Загорелся идеей создать устройство, которое бы управляло LED лентами
при открытии дверцы шкафа. Причём нужно их в офис около 10 штук. Слышу,
как кто-то уже советует не заниматься ерундой и поставить стандартный
модуль ПИР датчика. Но проблема в том, что в комнате он работает
отлично. А когда попробовал такой ПИР установить в шкафу — работа стала
нестабильная. После недолгих размышлений над схемой и экспериментов — сделал
работающее устройство, основанное на готовом приемнике инфракрасного
сигнала TSOP4836. Но можно и фототранзистор LTR4206E поставить Аппаратная часть — стабилизатор LM78L05 с диодом 1N4148 (защита от
неправильной полярности подключения), исполнительный элемент
МОП-транзистор с N-каналом, управляемый уровнями TTL. ИК светодиод
передатчика подключенный непосредственно к микроконтроллеру, резистор
ограничивает ток до 20 мА. Микроконтроллер ATTINY13A (выбор диктуется
ценой и доступностью). МК сначала измеряет напряжение на фототранзисторе при выключенном ИК
дио
Оглавление

Загорелся идеей создать устройство, которое бы управляло LED лентами
при открытии дверцы шкафа. Причём нужно их в офис около 10 штук. Слышу,
как кто-то уже советует не заниматься ерундой и поставить стандартный
модуль ПИР датчика. Но проблема в том, что в комнате он работает
отлично. А когда попробовал такой ПИР установить в шкафу — работа стала
нестабильная.

Схема ИК датчика включения света на ATTINY

-2

После недолгих размышлений над схемой и экспериментов — сделал
работающее устройство, основанное на готовом приемнике инфракрасного
сигнала TSOP4836. Но можно и фототранзистор LTR4206E поставить

-3

Аппаратная часть — стабилизатор LM78L05 с диодом 1N4148 (защита от
неправильной полярности подключения), исполнительный элемент
МОП-транзистор с N-каналом, управляемый уровнями TTL. ИК светодиод
передатчика подключенный непосредственно к микроконтроллеру, резистор
ограничивает ток до 20 мА. Микроконтроллер ATTINY13A (выбор диктуется
ценой и доступностью).

Принцип действия устройства

МК сначала измеряет напряжение на фототранзисторе при выключенном ИК
диоде, затем с включенным. Первое измерение является проверкой влияния
фона, пока свет от ИК светодиодов не отразится от предмета, оба
измерения буду идентичны, в противном случае второй замер будет меньше.
Ещё применил что-то вроде гистерезиса, после включения выхода
чувствительность измерения увеличивается (переменная „his”).

Прошивка микроконтроллера

#include <avr\io.h>

#include <inttypes.h>

#include <avr/sleep.h>

#include <avr/interrupt.h>

#include <avr/power.h>//Definicje numerow portow

#define LED 1

#define MOSFET 4

//ADC PB2 ADC1//Deklaracja stalych

#define HIS_ON 3;

#define HIS_OFF 2;int main(void)

{

uint8_t odczyt1; //Odczyt ADC bez wlaczonej LED_IR

uint8_t odczyt2; //Odczyt ADC przy wlaczonej LED_IR

uint8_t licz = 0;

uint8_t his = HIS_OFF; //Zmienna histerezy//Konfiguracja portow

DDRB = 1<<LED | 1<<MOSFET | 1<<LED; //wyjscie LED IR, wyjscie MOSFET

PORTB = 1<<3 | 1<<0 | 1<<LED; //PULL_UP PB3 i PB0 dla oczednosci energi//Inicjacja ADC

ADMUX = 1<<ADLAR | 1<<MUX0; //Napiecie referencyjne Vcc, PB2(ADC1)

DIDR0 = ADC1D; //Wylaczenie bufora cyfrowego PB2(ADC1)

power_timer0_disable(); //Calkowite wylaczenie TIMER0

sei(); //Globalne zalaczenie przerwanfor(;;)

{

ADCSRA = 1<<ADEN | 1<<ADSC; //Wlaczamy ADC i zaczynamy pomiar

while(ADCSRA & (1<<ADSC)); //Czekamy na pomiar

odczyt1 = ADCH; //Odczyt ppomiaru bez wlaczonej LED IR

odczyt1 = odczyt1 — his;

PORTB &= ~(1<<LED); //LED IR on

ADCSRA |= 1<<ADSC; //ADC on

while(ADCSRA & (1<<ADSC)); //Czekamy na pomiar

odczyt2 = ADCH; //Odczyt pomiaru z wlaczon

PORTB |= 1<<LED; //LED IR off

ADCSRA &= ~((1<<ADEN) | (1<<ADSC)); //ADC offif(odczyt2 < odczyt1)

{

if(licz < 10)

{

licz++;

} else {PORTB &= ~(1<<MOSFET); //MOSFET off

his = HIS_OFF;

}

} else {

if(licz>0)

{

licz—;

} else {

PORTB |= 1<<MOSFET; //MOSFET on

his = HIS_ON;

}

}WDTCR = 1<<WDTIE; //Wlaczenie przerwania od WDT, czas 16ms

sleep_enable(); //Przestawienie bitu SE

sleep_cpu(); //Wprowadznie w stan snu}

return 0;

}ISR(WDT_vect) //Przerwanie od WDT

{

sleep_disable(); //Przestawienie bitu SE

WDTCR = 0; //Wylaczenie przerwania od WDT

}

Печатная плата спроектирована и изготовлена под монтаж SMD. Контакты
для программирования вывел на штырьки. Корпус маленький из пластика.

-4

Есть возможность увеличения дальности за счет уменьшения сопротивления
резистора R2. Таймер T0 выключен и не используется, его можно
использовать для генерации ШИМ и постепенного повышения и уменьшения
яркости освещения. Можно было бы применить МК ATTINY10 (6 ног),
резисторы и конденсаторы тоже в небольших корпусах, что позволило бы
снизить размер до совсем миниатюрного.

🔔 Поделитесь мнением после просмотра!👍

Поставьте лайк и поделитесь с друзьями – это будет огромной поддержкой!
Ваша активность помогает каналу развиваться. Это несложно для вас, но приятно для меня! 💪

💌 По вопросам сотрудничества и рекламы: Fetch74@mail.ru

🎥 Не забывайте подписаться на канал: @Gerich174 – тут много интересного! 📲

💰 Если хотите поддержать развитие канала:

💳 Донат: https://yoomoney.ru/to/4100117056657007
🔧 Ваш вклад помогает улучшать контент!

👨‍👧‍👦 Канал для своих и для тех, кто в теме!

Подписывайтесь и становитесь частью моей маленькой, но дружной аудитории! 😎