RSS блога
Подписка
Подсветим темные углы - инфракрасный датчик движения (HC-SR501) с доработкой
- Цена: $8.63 за 10 штук
- Перейти в магазин
На данный датчик движения было немало обзоров, в том числе и мой. Прошлый раз я описывал его применение для автоматического освещения веранды. В этот раз хочется рассказать про свое решение для автоматического плавного включения и выключения света с заданным интервалом гашения. Будет и плата и код и внедрение полученного решения. Желающих исключить темные пятна в своей бытовой жизни приглашаю под кат.
Подробно характеристики и фотографии этого датчика есть в моем прошлом обзоре. Кратко напомню:
— максимальная дальность обнаружения движения под прямым углом к сенсору составила 6,7 метров;
— под углом в 160 градусов — 5 метров;
— крутилка Sx — меняет расстояние обнаружения под прямым углом с 2,8 до 6.7 метров;
— крутилка Tx — меняет время удержания 1 на выходе OUT c 6 до 290 секунд.
Следует отметить, что проблем с этим датчиком не было, решение по освещению веранды работает хорошо. Этот обзор можно считать продолжением.
В своем предыдущем обзоре я рассказал про решение проблемы питьевой воды на даче. Та поделка потребовала подвести коммуникации близко к раковине (питание и сеть). Я не случайно установил в металлическом ящике блок питания существенно большей мощности, так как рассчитывал его использовать не только для бочки.
Пространство под раковиной у меня закрывается дверцами и используется для хранения разных предметов обихода. При этом существовала одна досадная неприятность, даже днем или при включенном освещении веранды, на полках ниши было довольно темно. Это мешало быстро найти нужный предмет, да и вернуть его на место. Периодически проскакивала мысль организовать там какое либо освещение. Рядом с раковиной у меня находится стационарный мангал, под которым имеется пространство для дров, которое тоже не мешает подсветить. Наличие мощного блока питания прямо рядом с местом требуемой подсветки активировало мои мысли по поводу подсветки.
Требуется довольно простое решение питающееся от 12 Вольт с простым автоматическим включением и выключением. В этот раз управление и мониторинг по сети я посчитал избыточным. Сразу возникла мысль про предмет обзора, но данный PIR-датчик сам не умеет коммутировать нагрузку. Использование какого-то простого устройства управления нагрузкой (реле, ключевой транзистор) конечно позволит организовать управление, но будет иметь ряд недостатков:
— освещение будет включатся и выключать резко (бить по глазам);
— таймаут бездействия жестко определяется возможностями PIR-датчика (лично мне удобнее при обнаружени активности включить свет на довольно-большой промежуток времени, чтобы вообще не думать о свете.
Все эти недостатки хотелось устранить, и я решил это сделать с помощью простенького контроллера. В наличии у меня были ATiny85, хотя вполне устроили бы и ATiny13.
В голове родилась такая схема:
Из входных 12 В с помощью линейного стабилизатора ams1117-5 добываем 5 В для питания контроллера и PIR-датчика. PIR датчик подключен на пин PB4 контроллера. Вывод контроллера PB0 будет использоваться как аналоговый выход, управляя затвором полевого n-канального транзистора добытого со старой материнской платы (70T03GH). Таким образом, контроллер анализируя данные с PIR-датчика и, помня предыдущие события, задает интенсивность свечения приоткрывая MOSFET.
В программе Sprint Layout получилась такая платка:
Размеры ее существенно меньше чем размеры обозреваемого датчика. Плату легко доработать под ATiny13, корпус которой немного уже.
Изготови плату. Печатаем на спецбумагу:
На мои заготовки для плат вошло аж 9 штук, решил так и изготовить.
Результат термотрансфера:
Результат травления:
Разрезаем:
Лудим сплавом Розе:
Так как я решил платки датчика и нашу разработку соеденить между собой, подогнем выводы датчика:
Припаиваем компоненты и собираем все в кучу, получилось как-то так:
Далее, необходимо загрузить программу, процесс подключения ATiny и заливки кода я подробно описывал здесь, отличий нет. сама программа довольно сложная, и не всякий сможет понять что она делает:
SPEED_ON, SPEED_OFF — определяют скорость включения и выключения, задавая временной интервал между очередной сменой градации яркости.
TIMEOUT_LED — определяет временной интервал, в течении которого светильник будет светить после последнего срабатывания датчика. Тут отмечу, что данная величина складывается со временем отрегулированным потенциометром на датчике, так что лучше потенциометром выставить минимальное время и при необходимости увеличить.
В качестве корпуса использовал маленькую распаячную коробку:
Делаем отверстие перьевым сверлом (я использовал на 24 мм):
В качестве источника света будет использоваться светодиодная лента в специальных алюминиевых направляющих, купленных в Леруа Мерлен:
Режем ленту на куски по 1 метру и припаиваем проводки. Я рекомендую зачищать от изоляции минимальное количество провода:
В качестве провода использовал ШВВП 2x0.5. Соединение ленты и провода защищаем термоусадкой:
Немного монтажа:
Тестирование света от блока питания (без разработанной схемы):
Заодно читатели увидят мой хэнд-мейд не имеющий отношения к электронике.
Ну и напоследок видео работы:
На этом заканчиваю. Всем света и добра. Спасибо тем кто дочитал до конца, надеюсь кому-то информация окажется полезной! Если будет интересно, продолжу писать про дачное творчество.
Подробно характеристики и фотографии этого датчика есть в моем прошлом обзоре. Кратко напомню:
— максимальная дальность обнаружения движения под прямым углом к сенсору составила 6,7 метров;
— под углом в 160 градусов — 5 метров;
— крутилка Sx — меняет расстояние обнаружения под прямым углом с 2,8 до 6.7 метров;
— крутилка Tx — меняет время удержания 1 на выходе OUT c 6 до 290 секунд.
Следует отметить, что проблем с этим датчиком не было, решение по освещению веранды работает хорошо. Этот обзор можно считать продолжением.
В своем предыдущем обзоре я рассказал про решение проблемы питьевой воды на даче. Та поделка потребовала подвести коммуникации близко к раковине (питание и сеть). Я не случайно установил в металлическом ящике блок питания существенно большей мощности, так как рассчитывал его использовать не только для бочки.
Пространство под раковиной у меня закрывается дверцами и используется для хранения разных предметов обихода. При этом существовала одна досадная неприятность, даже днем или при включенном освещении веранды, на полках ниши было довольно темно. Это мешало быстро найти нужный предмет, да и вернуть его на место. Периодически проскакивала мысль организовать там какое либо освещение. Рядом с раковиной у меня находится стационарный мангал, под которым имеется пространство для дров, которое тоже не мешает подсветить. Наличие мощного блока питания прямо рядом с местом требуемой подсветки активировало мои мысли по поводу подсветки.
Требуется довольно простое решение питающееся от 12 Вольт с простым автоматическим включением и выключением. В этот раз управление и мониторинг по сети я посчитал избыточным. Сразу возникла мысль про предмет обзора, но данный PIR-датчик сам не умеет коммутировать нагрузку. Использование какого-то простого устройства управления нагрузкой (реле, ключевой транзистор) конечно позволит организовать управление, но будет иметь ряд недостатков:
— освещение будет включатся и выключать резко (бить по глазам);
— таймаут бездействия жестко определяется возможностями PIR-датчика (лично мне удобнее при обнаружени активности включить свет на довольно-большой промежуток времени, чтобы вообще не думать о свете.
Все эти недостатки хотелось устранить, и я решил это сделать с помощью простенького контроллера. В наличии у меня были ATiny85, хотя вполне устроили бы и ATiny13.
В голове родилась такая схема:
Из входных 12 В с помощью линейного стабилизатора ams1117-5 добываем 5 В для питания контроллера и PIR-датчика. PIR датчик подключен на пин PB4 контроллера. Вывод контроллера PB0 будет использоваться как аналоговый выход, управляя затвором полевого n-канального транзистора добытого со старой материнской платы (70T03GH). Таким образом, контроллер анализируя данные с PIR-датчика и, помня предыдущие события, задает интенсивность свечения приоткрывая MOSFET.
В программе Sprint Layout получилась такая платка:
Размеры ее существенно меньше чем размеры обозреваемого датчика. Плату легко доработать под ATiny13, корпус которой немного уже.
Изготови плату. Печатаем на спецбумагу:
На мои заготовки для плат вошло аж 9 штук, решил так и изготовить.
Результат термотрансфера:
Результат травления:
Разрезаем:
Лудим сплавом Розе:
Так как я решил платки датчика и нашу разработку соеденить между собой, подогнем выводы датчика:
Припаиваем компоненты и собираем все в кучу, получилось как-то так:
Далее, необходимо загрузить программу, процесс подключения ATiny и заливки кода я подробно описывал здесь, отличий нет. сама программа довольно сложная, и не всякий сможет понять что она делает:
#define PIR_PIN 4
#define LED_PIN 0
#define SPEED_ON 5
#define SPEED_OFF 30
#define TIMEOUT_LED 200000UL
unsigned long AutoTimeOn = 0;
boolean LedOn = false;
void setup() {
pinMode(PIR_PIN, INPUT);
}
void loop() {
if (digitalRead(PIR_PIN)){
if(!LedOn){
for(int i = 0 ; i <= 255; i++) {
analogWrite(LED_PIN, i);
delay(SPEED_ON);
}
LedOn = true;
}
AutoTimeOn = millis();
}else if (!digitalRead(PIR_PIN) && LedOn && ((unsigned long)(AutoTimeOn + TIMEOUT_LED)) < millis()){
for(int i = 255 ; i >= 0; i--) {
analogWrite(LED_PIN, i);
delay(SPEED_OFF);
}
LedOn = false;
}
}
SPEED_ON, SPEED_OFF — определяют скорость включения и выключения, задавая временной интервал между очередной сменой градации яркости.
TIMEOUT_LED — определяет временной интервал, в течении которого светильник будет светить после последнего срабатывания датчика. Тут отмечу, что данная величина складывается со временем отрегулированным потенциометром на датчике, так что лучше потенциометром выставить минимальное время и при необходимости увеличить.
В качестве корпуса использовал маленькую распаячную коробку:
Делаем отверстие перьевым сверлом (я использовал на 24 мм):
В качестве источника света будет использоваться светодиодная лента в специальных алюминиевых направляющих, купленных в Леруа Мерлен:
Режем ленту на куски по 1 метру и припаиваем проводки. Я рекомендую зачищать от изоляции минимальное количество провода:
В качестве провода использовал ШВВП 2x0.5. Соединение ленты и провода защищаем термоусадкой:
Немного монтажа:
Тестирование света от блока питания (без разработанной схемы):
Заодно читатели увидят мой хэнд-мейд не имеющий отношения к электронике.
Ну и напоследок видео работы:
На этом заканчиваю. Всем света и добра. Спасибо тем кто дочитал до конца, надеюсь кому-то информация окажется полезной! Если будет интересно, продолжу писать про дачное творчество.
Самые обсуждаемые обзоры
+78 |
4103
148
|
+58 |
4261
74
|
Ну и есть же датчики движения уже с интегрированными стабилизаторами, например, эти:
https://aliexpress.com/item/item/Free-shipping-1PCS-LOT-HC-SR501-HCSR501-SR501-human-infrared-sensor-module-Pyroelectric-infrared-sensor-imports/32649039227.html
правда доставка:(
За обзор плюсанул, молодец, но как я понял, процессор и программирование потребовались только для плавного включения выключения? Если без этого и с автономным питанием (три мизинчиковых батарейки), то есть икеевские готовые датчики, 600 руб за пару:
www.ikea.com/ru/ru/catalog/products/30203690
Собрано все хорошо, аккуратно, но на батарейках можно разориться — я вытаскиваю плату из корпуса и питаю от старых телефонных аккумуляторов (Нокийский BL-5F как раз такого же размера).
Отличие моего решения — возможность плавно включать и выключать (причем как нравится) и произвольный таймаут на отключение — можно хоть час поставить — ну и решение для света на батарейках или акумах — помоему только аварийное целесообразно делать — в самый нужный момент оно разрядится и доп походы — затраты времени
с меня +
При приклеивании к радиатору лента иногда умудряется закоротиться на него. Было как то такое.
Датчик допускает питание до 20 вольт и питать его от 5 не обязательно.
В тонком пластике большое отверстие удобнее и аккуратнее сверлить ступенчатым сверлом.
По большому счёту проще было на дверцу микрик соответствующий поставить или геркон, включающий питание, чтобы не держать постоянно включеный блок питания. Схема управления освещёностью в зависимости от внешнего освещения легко собирается в аналоговом варианте на фоторезисторе и добавляется к аналоговому входу, раз уж огород с плавным стартом затеян, толку от неё больше чем от плавного включения.
А так конструкция прикольная.
Да ещё в Леруа профиль для ленты дорогой и убогий, в профильных конторах по свету, дешевле и интереснее. Да и вариантов намного больше
Отверстие под раковиной получилось хорошо, под мангалом хуже — но все-равно его никто не видит и заглянуть туда даже проблематично — решил так и оставить. Если надо аккуратно — делаю разверткой.
Вот и не проще ниразу… Совсем… Дети (и не только они) открывают и забывают закрывать дверцы легко! а под мангалом вообще нет дверей. От внешнего освещения зависеть тут как раз совсем не нужно — там подсветка нужна независимо от внешнего освещения.
спс
ну искать где-то не захотел — меня вполне устроил — если бы надо было много — заморочился бы
Автор, давай зачетку — пять!
Многие исключают эти резисторы и схема работает но:
R2 нужен для того чтобы ограничить импульсный ток который возникает когда включается полевой транзистор. Затвор — сток предсталяет собой конденсатор и в момент коммутации там проскакивает достаточно приличная «игла», выброс тока, которая в некоторых случаях вешает контроллер, особенно эту фитчу наблюдал в AVR.
R3 — он необходим когда к примеру плата уже собрана а контроллер не прошит или вовсе отсутствует. Тем самым наличие этого резистора гарантирует что выход будет обесточен. В противном случае затвор может «насосать» потенциал и быть на половину открытым и сгореть. Только номинал его 47К будет оптимален.
Читайте даташиты.
Я уже давно прошиваю (и отлаживаю) контроллеры прямо на плате куда они запаяны. Три провода надо для SWD, правда и такой дурью как AVR и Ардуино не маюсь, только Cortex ARM.
С друзьями на STM32F103 делаем хоббийный проект.
Многое уже работает.
sites.google.com/site/cansmarthouse/
С друзьями 3 недели перекапывали софт и железо вместо того что бы передать оборудование заказчику только потому что в даташите написано что GPIO сам все ограничивает.
Поэтому сейчас я не экономлю $0.0001 на парочке резисторов. Более того бывает туда ещё и ВЧ керамику добавляют чтоб FCC пройти например.
Меня после ARM и RTOS с HAL загнать на AVR да еще под Ардуино невозможно. Ардуино удел тех, кто с микропроцессорами и Си всегда будет на «вы».
Сколько проектов своих вы уже продали?
Сколько предзаказов уже у вас есть на ненавязчиво рекламируемый хоббийный проект с друзьями в котором многое уже работает?
какие могут быть предзаказы на хобби?
Делаю УД для своего коттеджа в 340 кв.м, расположенного в красивом месте под Москвой, на берегу водохранилища. Заработал я его, продавая и обслуживая свои проекты :)
Сложные телекоммуникационные решения: СОРМ, визуализация образов и т.п.
Скорее всего в неудобную ситуацию попадают (из моего опыта) люди не читающие даташиты :), предпочитая этому лишний раз «перекопать софт и железо». Как правило — это удел «аникейщиков»
Снимаю шляпу перед Вашим опытом, я не прав, пойду читать даташиты и выкидывать лишние детали пока очередная плата не ушла в производство!
Я всё понимаю, во времена айфонов как-то копеечную тиньку проще заюзать, чем гуглить классику аналоговой схемотехники, но, право же, это огорчает электронщиков старой закалки.
Впрочем, сабж ещё туда-сюда, а вот проскакивало на ГТ «реле поворотов» на Ардуине вместо банальной 555 — вот это точно «приехали»…
Разве что при массовом производстве стоить экономить, и то не всегда. Вот недавно делал… сигнализацию с несколькими уровнями… три входа, три светодиода, два звуковых сигнала — заказчик сделал плату на atmega128 (ну очень жирный микроконтроллер для этой задачи, 64 ноги). На стоимость изделия это никак не скажется потому что вместе со всеми датчиками, упсами, дизайном, сертификацией там точно за 1000 у.е. зашкаливает за шт.
Конечно еще есть встроенный перфекционализм. И я тоже печалюсь когда вижу exe-шник в сотню мегабайт или написаный на java/.net. Но это суровая реальность. Лень и невежество увы процветают, т.к. жизнь конечна во всем не успеешь разобраться.
и вообще зачем городить контроллер если можно сразу с датчика движения плавно зажигать?
Я хочу на время сна светодиодную ленту гасить до такого состояния, чтобы свет в диодиках еле тлел. Если засить ленту ШИМом, то она (лента что у меня есть) все равно ярко светится.
Вот думаю, может быть также MOSFETом.
Либо второй вариант в голове крутится: это DC-DC на LM2596S удалить штатный потенциометр, и вместо него впаять цифровой потенциометр TPL0401A с i2c(от TI ) или DS1804 от Даллас с трехпроводным интерфейсом. И ардуинкой управлять этим потенциометром в зависимости от фоторезистора.
Я бы тоже хотел к светильнику прикрутить, но с электроникой не настолько дружен, чтобы самому травить платы и паять такие схемы…
Везде где можно поставились, а остаток отдам недорого.
Кому интересно, пишите в личку, или на l6l6l6l@ukr.net
Автору темы особое СПАСИБО!
По логике работы Вашей программы:
Если свет начинает гаснуть и в этот момент детектируется движение, то пока совсем не потухнет снова «разгораться» не будет
Контроллер слишком жирный — 8 кб флэша!!!, хорошо хоть не STM32, как тут пишут
ATtiny13, 10, 4 — были бы в самый раз
Если интересно мой вариант «умной подсветки» тут описан
13-ю тиньку и использовал — с 85-ой экспериментировал