Или не усраивает цена или дизайн или ТТД (у большенства датчиков таймер фиксированый).Как всегда пришлось изобретать велосипед.
Взял attiny13, заводской датчик движения,фотодиодный датчик освещенноси,светодиод 1W(драйвер на mc34063).Собрал в кучу и получилось то что мне было нужно.
Заходиш в помещение, срабатывает освещение и пока там находишся оно не выключается (при условии что шивелишся) ,уходиш через 15 сек откл.
Ввел выбор задержки 10 5 20 25 сек
Код:
$regfile = "attiny13.dat" ' говорим компилятору что у нас микропроцессор Attiny13 или что есть под рукой
$crystal = 128000 ' 128Khz тактовая частота (Если прод рукой чтото другое, слотрим PDF на это другое)
$hwstack = 24 ' Для Tiny13 по умоолчанию (32) не подходит.Будет возникать ошибка недостаточно SRAM
$swstack = 8 '
$framesize = 24 '
Config Pinb.0 = Input 'Вход датчика движения
Config Pinb.1 = Input 'Вхов датчика освещенности
Config Pinb.2 = Input 'Установка таймера 10 15 20 25 сек
Config Pinb.3 = Input '
Config Portb.4 = Output 'Выход управления осветительным прибором
Config Timer0 = Timer , Prescale = 256 'Настройка таймера (Если прод рукой чтото другое, слотрим PDF на это другое)
Dim A As Byte 'Время задержки
Dim B As Byte 'Переменная временных итервалов
On Timer0 Pulse: '|
Enable Interrupts '|Понятно
Enable Timer0 '|
'/Определение задердки таймера от позиции переключателя
If Pinb.2 = 1 And Pinb.3 = 1 Then A = 20
If Pinb.2 = 0 And Pinb.3 = 1 Then A = 30
If Pinb.2 = 1 And Pinb.3 = 0 Then A = 40
If Pinb.2 = 0 And Pinb.3 = 0 Then A = 50 'Задержка 15 сек (В среднем реле датчика двидения удержывается 3-10 сек зависит от модели)
'/Основной цыкл
Do
Startes:
B = 0 'обнулим счетчик временных интервалов
If Pinb.0 = 0 Then Goto Sensor 'Если сработка по движению
Loop
Sensor:
If Pinb.1 = 0 Then Goto Startes 'Если светло возврат в остовной цыкл
Set Portb.4 'Если темно ВКЛ освещение
Led_time:
If Pinb.0 = 0 Then B = 0 'Проверяем было-ли срабатывание датчика движения,если да обнулим счетчик временных интервалов
If B < A Then Goto Led_time 'Крутимся до выполнения условия
Reset Portb.4 'ВЫКЛ освещение
Goto Startes 'Возврат в основной цыкл
'/Обработка прерывания
Pulse:
B = B + 1 'Увеличим счетчик временных интервалов на 1
Return
End 'Даже переводить не буду
Возможно комуто понадобится.
- Вложения
-
- Led-Sensor.rar
- Исходник Bascom.Проект Proteus
- (20.99 КБ) 270 скачиваний
С уважением ВНН.


