LED-ul ca sursă și ca senzor de lumină
În curtea din mijlocul verii, și sunt în mijlocul reparării. Fac reparații în baie. Am așezat gresie pe pereți, am așezat țiglele pe podea. El a înlocuit chiuveta, instalațiile sanitare etc. În timp ce lucra într-o baie apropiată, transpira și sufla ca o locomotivă cu aburi. Și toate pentru că ventilația nu a fost forțată, iar cea care era - evacuarea obișnuită - nu era suficientă. A trebuit să cumpăr un ventilator de evacuare și să-l pun în ventilație. Lucrarea a mers rapid.
Când am vizitat magazinul pentru a cumpăra un fan, tocmai am căzut din preț. A-B-A-L-a pus! Nu te pricepi! Și dacă doar un ventilator cu o coardă de comandă a cerut circa o mie și jumătate de lemn, apoi pentru ventilatoare automate (cu un cronometru simplu), prețurile au fost mai mari de mai multe ori. Nu, am avut bani pentru a repara, îmi permiteam să cumpăr fanii astea. Dar un mic amfibian verde croaking mi-a spus că acești vânzători cu astfel de mărfuri și prețuri pentru asta. Trebuia să mă uit. Și apoi, plângând în magazine, găsise o opțiune mai puțin acceptabilă. Ventilator normal de 125 mm fără cronometre și comutatoare pentru lemn de foc de 400 ". Din motor au fost două cabluri către terminal și asta-i tot.
Așa că a pus-o în baie. Și că ar fi posibil să-l activați și să-l dezactivați, comutatorul obișnuit a fost atașat temporar. Am intrat în baie, am pornit ventilatorul, am lucrat, am oprit-o, am ieșit. De câteva ori am uitat să-l opresc. A părăsit casa timp de mai multe ore și fanul a fost irosit. Apoi, un gând strălucit mi-a vizitat: este necesar să automatizez această afacere!
M-am gândit la ce pot face, cum ar trebui să funcționeze. Mai multe opțiuni pentru conectarea ventilatorului de evacuare au venit în minte. O opțiune este conectarea ventilatorului în paralel cu becul, iar acum, atâta timp cât lumina din baie se aprinde, ventilatorul se rotește.
Pro: nu hemoroizi cu legătură
Contra: dacă trebuie doar să ventilați baia, atunci asta ar funcționa un ventilator, trebuie să porniți lumina.
Concluzie: nu metoda noastră.
A doua opțiune este, de asemenea, simplă. Faceți un comutator separat al ventilatorului.
Pro: conexiune simplă. Baia poate fi ventilată cu lumina oprită.
Contra: va trebui să treacă ceva timp și să oprească ventilatorul, iar acest lucru poate fi uitat, respectiv, ventilatorul va funcționa până la sfârșit.
Concluzie: nu metoda noastră.
Vroiam să mă automatizez, mâinile mi-au mișcat să mă suge, iar degetele - să programez. Prin urmare, a fost decis să automatizeze! În conformitate cu principiul: a deschis ușa, a intrat în baie, ventilatorul după un timp a pornit el însuși. A plecat de la baie, a închis ușa, ventilatorul a lucrat o vreme și apoi sa oprit. Aproximativ așa. În general, pot fi inventate multe algoritmi de utilizare diferite. Dar aceasta va fi ulterior selectată într-un mod experimental. Și acum trebuie să ne gândim la structura mașinii.
Deci, sarcina de a determina momentul în care o persoană a deschis și a închis ușa. Există mai multe soluții. Ca o opțiune, puneți comutatorul de trestie (sau senzorul Hall) și magnetul de pe ușă. Dar trebuie să trag fire suplimentare, dar nu vreau să fac asta. De asemenea, puteți conecta la becul și puteți determina prezența tensiunii pe acesta. Există tensiune pe becul - ușa este deschisă, persoana a intrat în baie. Nu există nici o tensiune - un bărbat a ieșit din baie, a închis ușa și a oprit lumina. Contra în această opțiune, de asemenea, există.
Dar, după cum se așteptase la noroc, toate tabletele de prototipuri erau ocupate de dispozitive asamblate. Nu am vrut să dezasamblez și să eliberez panoul de paine și era leneș. Și aici, la petrecerea timpului liber prin intermediul blogului său, a dat peste un articol despre mediul de programare Lunchepad și Energia. Acest aspect a fost doar inactiv. Așa că am decis să experimentez.
Schema acestui lucru este cel mai simplu - un prototip, un rezistor, un LED. Toți conectați în mod consecvent. Iată fotografia:
Launchpad - detector de lumină LED
Aceasta este întreaga schemă. LED - un LED comun roșu noname, figuri figurați știe unde. Rezistor 68 Ohm. Pentru comoditate, lipiți rezistența la piciorul LED-ului și la conectorul PBS. Conectați la pinii: anodul pentru rezistor și pentru P1.3 (PIN1), catodul pentru P1.4 (PIN2). Pentru a avansa, unde catodul / anodul LED poate fi în două moduri: pentru LED-urile noi, proaspete achiziționate la anod ("plus"), o ieșire mai lungă. Dacă concluziile LED-ului sunt scurtate, atunci se poate determina de pe fața tăiată pe partea LED-ului, unde este tăiat, există un catod ("minus") (mai multe despre LED-uri).
LED-ul se va aprinde numai dacă se aplică o tensiune directă asupra LED-ului, adică Catodul este alimentat cu un "minus" (sol) și un "plus" (aport pozitiv) este aplicat anodului. Dacă aplicați invers, atunci nu va exista nici o strălucire, iar dacă depășiți tensiunea inversă permisă, LED-ul va arde la toate. Vom aplica tensiune pozitivă la PIN2 și tensiune joasă în PIN1. În acest mod se va aplica o tensiune inversă admisă pe LED. Desigur, LED-ul nu va străluci, dar capacitatea parazită de a conecta LED-ul și picioarele microcontrolerului LaunchPad va fi încărcată.
Layout Scheme pe LaunchPad MSP430
Apoi vom comuta piciorul controlerului la intrare și vom calcula cât timp capacitatea va fi descărcată la cea logică. Acest timp depinde de iluminare. Cu cât este mai întunecată, cu atât capacitatea va fi descărcată mai mult.
Apoi, am deschis mediul de programare Energia și am schițat această schiță:
Înțelesul este simplu. Alegeți constant nivelul iluminării. Dacă nivelul a depășit pragul prestabilit, aprindem LED-ul verde, altfel aprindem roșu. Paralel cu acest lucru, senzorul LED-uri clipește, indicând faptul că lucrăm. Nivelul de iluminare, pe care l-am determinat, este emis în UART. Asta e tot.
Timp de acum 8-10 ani am un switch ANAM. Porniți lumina - lampa a aprins focul și ventilatorul a început să funcționeze. Oprit - lampa a ieșit, ventilatorul continuă să lucreze cu timpul X. În interiorul comutatorului, un mic întrerupător pentru trei poziții de lungimi diferite. Totul este mult gândit și foarte elegant, fiabil și compact.
Cu credincioșia ta.
Ei bine, ideea mea nu era aceeași cu ceea ce sa întâmplat. Deci sa întâmplat. Am vrut una, dar funcționează destul de diferit. De fiecare dată nu există nicio schimbare. După cum se spune, nu este nimic mai permanent decât temporar.
Totuși, apropo, pe subiect. Am creat aici ceva similar, am jucat cu luminile. Până acum, pe pană, dar cu atât mai puțin. Sa dovedit că o variabilă pe 8 biți pentru numărarea timpului de descărcare la zero nu este suficientă, reușind să suprapină mai multe ori, mai ales dacă procesorul funcționează la frecvențe înalte. La mine acum această afacere funcționează pe ATMega8A, pe 4MG, la iluminarea camerei are timp să se deprecieze cel puțin una și chiar două ori. Și dacă acoperiți cu un capac de pe o unitate flash, simulați "noaptea", apoi mai mult de 30 de ori. Celălalt depășește variabila 15 și, respectiv, de 93 de ori. Deci, ar fi mai bine și mai precis, probabil, să luăm în considerare pierderile și nu doar căpușele. Ei bine, luați variabilele mai mari 🙂