Cuprins:

Controlați luminile fluorescente cu un pointer laser și un Arduino: 4 pași
Controlați luminile fluorescente cu un pointer laser și un Arduino: 4 pași

Video: Controlați luminile fluorescente cu un pointer laser și un Arduino: 4 pași

Video: Controlați luminile fluorescente cu un pointer laser și un Arduino: 4 pași
Video: 1029-IT Tanet, THANATOS - Ipnosi Esoterica ∞ Lucio Carsi 2024, Noiembrie
Anonim
Controlați luminile fluorescente cu un pointer laser și un Arduino
Controlați luminile fluorescente cu un pointer laser și un Arduino
Controlați luminile fluorescente cu un pointer laser și un Arduino
Controlați luminile fluorescente cu un pointer laser și un Arduino

Câțiva membri ai Alpha One Labs Hackerspace nu le place lumina dură dată de corpurile de iluminat fluorescente. Au vrut o modalitate de a putea controla cu ușurință corpurile individuale, poate cu un indicator laser? Am săpat o grămadă de relee în stare solidă și le-am adus la laborator. Am cumpărat un Arduino Duemilenova și am demonstrat utilizarea schiței de exemplu LED Blink pentru a clipi de fapt o lampă cu halogen. Am găsit câteva informații despre utilizarea LED-urilor ca senzori de lumină [1] și o schiță Arduino care demonstrează tehnica [2]. Am constatat că LED-urile nu erau suficient de sensibile - laserul trebuia să indice direct în partea care emite lumină sau LED-ul nu s-ar înregistra. Așa că am trecut la fototransistori. Sunt mult mai sensibili și într-o gamă mai largă de frecvențe. Cu un filtru adecvat peste tranzistor, l-aș putea face mai sensibil la lumina roșie și dintr-o gamă mult mai largă de unghiuri față de senzor. Folosiți bunul simț dacă construiți acest circuit - dacă aveți îndoieli cu privire la ceva, întrebați pe cineva care știe. Sunteți responsabil pentru siguranța dvs. (și a altora) și pentru respectarea codurilor electrice locale.

Pasul 1: Schița și o teorie

Presupun că știi cum să-ți alimentezi Arduino-ul și să obții o schiță compilată și încărcată. Pentru fiecare lampă pe care o folosesc cablul telefonic, deoarece este ieftin, are patru conductoare și oricum aveam o grămadă de dispozitive. Am folosit roșu pentru comun +, negru pentru sol, verde pentru colectorul de fototranzistor și galben pentru controlul releului +. Un fototranzistor trece o cantitate de curent care variază în funcție de cantitatea de lumină care cade pe el. Convertorul analog-digital (ADC) din arduino măsoară tensiunea la pin în raport cu masa. M-am uitat la foaia de date a fototranzistorului și am verificat cu un multimetru că tranzistoarele trec 10mA la lumină maximă. Folosind legea lui Ohm, asta înseamnă aproximativ 500 ohmi la 5V, pentru a controla lămpile am folosit un modul de releu în stare solidă. Acestea sunt relativ ieftine la ratingul actual de care aveam nevoie, aproximativ 4 USD pentru până la 4A. Asigurați-vă că cumpărați module de relee cu un detector de trecere zero, mai ales dacă controlați ceva inductiv, cum ar fi o lumină fluorescentă, un motor sau un transformator de negru. Dacă le porniți sau le opriți oriunde, dar punctul zero ar putea provoca creșteri de tensiune care, cel mai bine, vă vor reduce durata de viață a aparatului și, în cel mai rău caz, va declanșa un incendiu.

Pasul 2: Cablarea luminilor

Cablarea luminilor
Cablarea luminilor
Cablarea luminilor
Cablarea luminilor
Cablarea luminilor
Cablarea luminilor

Aruncați o privire în tavan și decideți unde veți monta controlerul Arduino. Amintiți-vă că va avea nevoie de o sursă de power de 7-12v. Tăiați lungimile firului de telefon (sau cat5 sau orice altceva) cu aproximativ două metri mai mult decât distanța de la Arduino la fiecare lumină pe care doriți să o controlați. Aruncați o privire asupra conexiunii de la liniile de alimentare de la comutator la balast. S-ar putea să puteți comanda conectori (Newark Electronics vinde seria Wago 930, ceea ce am avut). Apoi, nu va trebui să tăiați firele existente și puteți elimina sistemul în cazul în care ceva nu merge bine. diferit de ceea ce am pus pe prima pagină, deoarece m-am răzgândit cu privire la ceea ce ar avea sens). Soldați sau înșurubați (în funcție de releul dvs.) firul negru (fierbinte) prin releu. Asigurați-vă că utilizați termocontractor și bandă electrică! Împingeți firele negre în conectorii dvs., iar cel alb (neutru) și masa (verde) sunt direct direct de la conector la conector. Celălalt capăt al firelor merge la Arduino după cum urmează: Toate firele roșii (catod comun sau colector) du-te la Analog 0 (portul C0) și tot negrul la sol. Fiecare verde (anod sau emițător) merge la pinii 8-13 (portul B 0-5), iar firele galbene merg la pinii 2-7 (portul D 2-7). Asigurați-vă că firele verzi și galbene se potrivesc, deoarece senzorul trebuie să controleze releul corect! Dacă puneți galbenul în pinul 2, culoarea verde a aceluiași dispozitiv de fixare merge la pinul 8.

Pasul 3: Testarea schiței și a notelor de proiectare

În acest pas voi vorbi despre unele dintre încercările și necazurile pe care le-am întâlnit pe drum și despre modul în care am lucrat prin ele, în speranța că va fi util. Nu uitați să treceți la pasul următor, dacă conținutul științific nu este treaba dvs.:-) Primul pas a fost să decideți dacă să utilizați detectarea capacitivă sau rezistența. Detecția rezistivă este conectarea senzorului printr-un rezistor la unul dintre pinii analogici și efectuarea analogRead și compararea cu un prag. Acest lucru este cel mai simplu de implementat, dar necesită o mulțime de calibrare. părăsiți cealaltă parte, încărcând efectiv un condensator. Lumina care cade pe LED-ul la frecvența pe care o emite în mod normal va provoca de fapt un curent mic, care descarcă acest condensator. Deci, dacă încărcăm „condensatorul” LED-ului și numărăm cât durează descărcarea printr-un rezistor, avem o idee aproximativă despre câtă lumină cade pe LED. Acest lucru a funcționat de fapt pentru a fi mai fiabil pe diferite dispozitive și chiar funcționează pentru fototransistori! Deoarece nu facem o măsurare precisă a lumenului, iar indicatorul laser ar trebui să pară mult mai luminos decât cel ambiental, căutăm doar un timp de descărcare prag. Cealaltă parte importantă a acestei aventuri este depanarea. Pentru cei familiarizați cu programarea sistemelor neîncorporate, o metodă populară este de a adăuga instrucțiuni de imprimare în punctele critice ale codului. Acest lucru se aplică și sistemelor încorporate, dar când fiecare microsecundă contează, cantitatea de timp pentru Serial.write („x este”); Serial.writeln (x); este de fapt destul de semnificativ și este posibil să pierdeți o mulțime de evenimente în acest proces. Așadar, nu uitați să puneți întotdeauna declarațiile dvs. tipărite în afara buclelor critice sau în orice moment în care vă așteptați la un eveniment. Uneori clipirea unui LED este suficientă pentru a vă informa că ați ajuns la un anumit punct al codului.

Pasul 4: Adăugarea controlului web

Adăugarea controlului web
Adăugarea controlului web

Dacă te-ai uitat prin schiță, ai observat că am citit și portul serial și acționez pe câteva comenzi de un singur caracter. Caracterul „n” aprinde toate luminile, iar „f” le stinge. Numerele „0” - „5” comută starea luminii conectate la acea ieșire digitală. Astfel, puteți arunca cu ușurință împreună un script CGI (sau servlet sau orice tehnologie web care plutește barca dvs.) pentru a vă controla luminile de la distanță. Serial.writes se afișează, de asemenea, de fiecare dată când o lumină este schimbată din introducerea utilizatorului, astfel încât pagina poate avea actualizări Ajax pentru a arăta starea curentă. Un alt lucru cu care voi experimenta este detectarea mișcării într-o cameră. Oamenii reflectă lumina și, pe măsură ce se mișcă, acea lumină se va schimba. Aceasta este partea „delta” a declarațiilor pe care le am.

Recomandat: