Съдържание:

Управлявайте флуоресцентни лампи с лазерна показалка и Arduino: 4 стъпки
Управлявайте флуоресцентни лампи с лазерна показалка и Arduino: 4 стъпки

Видео: Управлявайте флуоресцентни лампи с лазерна показалка и Arduino: 4 стъпки

Видео: Управлявайте флуоресцентни лампи с лазерна показалка и Arduino: 4 стъпки
Видео: видио карандаша 2024, Ноември
Anonim
Управлявайте флуоресцентни лампи с лазерна показалка и Arduino
Управлявайте флуоресцентни лампи с лазерна показалка и Arduino
Управлявайте флуоресцентни лампи с лазерна показалка и Arduino
Управлявайте флуоресцентни лампи с лазерна показалка и Arduino

Няколко членове на Hackerspace на Alpha One Labs не харесват суровата светлина, излъчвана от флуоресцентни тела. Искаха начин да могат лесно да контролират отделните тела, може би с лазерен показалец? Разбрах го. Изкопах купчина твърдотелни релета и ги занесох в лабораторията. Купих Arduino Duemilenova и демонстрирах използването на примерната скица на LED Blink за действително мигане на халогенна лампа. Открих известна информация за използването на светодиоди като светлинни сензори [1] и скица на Arduino, демонстрираща техниката [2]. Открих, че светодиодите не са достатъчно чувствителни - лазерът трябваше да насочва направо в светлинноизлъчващата част или в светодиода не би се регистрирал. Затова преминах към фототранзистори. Те са много по -чувствителни и в по -широк диапазон от честоти. С подходящия филтър над транзистора бих могъл да го направя по -чувствителен към червената светлина и от много по -широк диапазон от ъгли към сензора. Използвайте здравия разум, ако изграждате тази схема - ако се съмнявате в нещо, попитайте някой, който знае. Вие носите отговорност за вашата (и за другите) безопасност и спазването на местните електрически кодове.

Стъпка 1: Скицата и някои теории

Предполагам, че знаете как да захранвате вашия Arduino и да получите компилация и да се зареди. За всяка лампа използвам телефонен кабел, тъй като е евтин, има четири проводника, а аз така или иначе имах куп. Използвах червено за общ +, черно за земя, зелено за фототранзисторния колектор и жълто за управление на релето. Аналогово -цифровият преобразувател (ADC) в arduino измерва напрежението на щифта спрямо земята. Погледнах листа с данни за фототранзистора и се уверих с мултицет, че транзисторите преминават 10mA при пълна светлина. Използвайки закона на Ом, това е около 500 ома при 5V, за да управлявам лампите използвах твърдотелен релеен модул. Те са сравнително евтини при текущата оценка, от която се нуждаем, около 4 долара за до 4А. Уверете се, че купувате релейни модули с детектор за пресичане на нула, особено ако контролирате нещо индуктивно, като флуоресцентна светлина, двигател или трансформатор за стена. Включването или изключването им навсякъде, но нулевата точка може да причини скокове на напрежението, което в най -добрия случай ще намали живота на вашия уред, а в най -лошия - ще предизвика пожар.

Стъпка 2: Окабеляване на светлините

Окабеляване на светлините
Окабеляване на светлините
Окабеляване на светлините
Окабеляване на светлините
Окабеляване на светлините
Окабеляване на светлините

Погледнете в тавана и решете къде ще монтирате контролера Arduino. Не забравяйте, че ще се нуждае от захранване със захранване 7-12v. Нарежете дължините на телефонния проводник (или cat5 или каквото и да е) с около два фута по -дълго от разстоянието от Arduino до всяка светлина, която искате да контролирате. Погледнете връзката от електропроводите от превключвателя към баласта. Може да успеете да поръчате конектори (Newark Electronics продава серията Wago 930, което имахме). Тогава няма да е необходимо да прекъсвате съществуващите проводници и можете да премахнете системата, ако нещо се обърка. Запоявайте земята (черна) към релейния вход -и контролата (жълта) към релейния вход + (цветният код на снимката е различно от това, което поставих на първа страница, тъй като промених мнението си за това, което би имало смисъл). Припой или завийте (в зависимост от вашето реле) черния (горещ) проводник през релето. Използвайте термосвиваема и електрическа лента! Натиснете черните проводници във вашите конектори, а белият (неутрален) и заземен (зелен) са направо от конектора към конектора. Другият край на проводниците отива към Arduino, както следва: Всички червени проводници (общ катод или колектор) отидете на Analog 0 (порт C0) и цялото черно към земята. Всяко зелено (анод или излъчвател) отива към пинове 8-13 (порт B 0-5), а жълтите проводници отиват към щифтове 2-7 (порт D 2-7). Уверете се, че зеленият и жълтият проводник съвпадат, тъй като сензорът трябва да контролира правилното реле! Ако поставите жълтото в щифт 2, зеленото от същото приспособление отива в пин 8.

Стъпка 3: Тестване на скици и бележки за дизайн

В тази стъпка ще говоря за някои изпитания и премеждия, които срещнах по пътя и как ги преживях с надеждата, че ще бъдат полезни. Не се колебайте да преминете към следващата стъпка, ако научното съдържание не е вашето нещо:-) Първата стъпка беше да решите дали да използвате капацитивно или резистивно измерване. Резистивното измерване е свързването на сензора чрез резистор към един от аналоговите щифтове и извършване на аналогово четене и сравнение с праг. Това е най-простото за изпълнение, но изисква много калибриране. Теорията за капацитивното измерване е, че когато обратното отклонение (- към + проводника и обратно), светодиодът няма да позволи ток да тече, но електроните ще се събират от едната страна и напуснете другата страна, ефективно зареждайки кондензатор. Светлината, падаща върху светодиода с честотата, която обикновено излъчва, всъщност ще доведе до пропускане на малък ток, който разрежда този кондензатор. Така че, ако заредим светодиодния „кондензатор“и преброим колко време е необходимо за разреждане през резистор, получаваме приблизителна представа за това колко светлина пада върху светодиода. Това всъщност се оказа по -надеждно на различни устройства и дори работи за фототранзистори! Тъй като не правим прецизно измерване на лумена и лазерната показалка трябва да изглежда много по -ярка от околната, ние просто търсим прагово време за разреждане. Другата важна част от това приключение е отстраняването на грешки. За тези, които са запознати с програмирането на невградени системи, популярен метод е добавянето на изявления за печат в критични точки в кода. Това важи и за вградените системи, но когато всяка микросекунда се брои, времето за Serial.write ("x е"); Serial.writeln (x); всъщност е доста значим и може да пропуснете много събития в процеса. Затова не забравяйте винаги да поставяте отчетите си за печат извън критичните цикли или всеки път, когато очаквате събитие. Понякога мигането на светодиод е достатъчно, за да ви уведоми, че сте стигнали до определена точка в кода.

Стъпка 4: Добавяне на уеб контрол

Добавяне на уеб контрол
Добавяне на уеб контрол

Ако разгледате скицата, забелязахте, че прочетох и серийния порт и изпълнявам няколко команди с един символ. Знакът 'n' включва всички светлини, а 'f' ги изключва. Числата „0“-„5“превключват състоянието на светлината, свързана към този цифров изход. Така че можете лесно да хвърлите заедно CGI скрипт (или сервлет или каквато и да е уеб технология, която плава с лодката ви), за да управлявате светлините си дистанционно. Serial.writes също извежда, когато светлината се промени от потребителски вход, така че страницата може да има актуализации на Ajax, за да покаже текущото състояние. Друго нещо, с което ще експериментирам, е откриването на движение в стая. Хората отразяват светлината и когато се движат, тази светлина ще се промени. Това е „делта“част от изказванията за писане, които имам.

Препоръчано: