Cuprins:
Video: Calibrarea luminozității LED: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În timp ce făceam o lumină de zână, mi-am dat seama că valoarea PWM este non-liniar proporțională cu luminozitatea LED-ului. Pur și simplu vorbind, dacă valoarea PWM este dublă, luminozitatea nu este dublă; mai ales când PWM este aproape de maxim, orice schimbare nu este recunoscută de ochii mei. Am crezut că ar trebui să fie o simplă problemă de calibrare! și așa am făcut acest proiect! Ideea este de a măsura luminozitatea unui LED cu un dispozitiv (senzor de luminozitate sau fotorezistor) și de a găsi o corelație între valoarea PWM și luminozitatea. Apoi, mai târziu, dacă setez luminozitatea la 50%, Arduino va calcula PWM corespunzător și va reduce LED-ul în consecință.
Prin urmare, am nevoie de un senzor de luminozitate și un LED pentru a măsura luminozitatea. Folosind un card SD, voi salva datele pentru procedura de montare ulterioară. Montarea se va face în Excel (sau în orice alt program). Out out-ul va fi folosit în codul Arduino și atât! Ar trebui făcut o dată. Apoi, puteți utiliza parametrul de calibrare pentru totdeauna!
Pasul 1: Piese
1- WEMOS mini D1: Aliexpress 3 €
2- TSL 2561 (senzor de luminozitate): Aliexpress 3 €
3- Modul card SD: Aliexpress 1 €
4- LED
5- Rezistor 220 ohm
6- fire
cost total: 8-10 €
Pasul 2: Cablare
Modulul cardului SD și firele senzorului de luminozitate nu trebuie schimbate (majoritatea). Ledul ar trebui să fie conectat la un pin PWM.
Pasul 3: Cod
Am combinat trei coduri:
Card SD: exemplu folosit> SD> ReadWrite în Arduino IDE
TSL 2561: exemplu de bibliotecă Adafruit TSL2561 folosit (sensorapi); îl veți găsi în exemple, dacă instalați biblioteca (presupun că știți cum să instalați o bibliotecă în Arduino IDE).
Fading LED: exemple folosite> Analog> fading
Codul, după inițializarea modulelor, va estompa ledul și va citi luminozitatea și îl va salva în cardul SD. în acest fel voi colecta câteva date pentru calibrare.
Am schimbat fiecare cod în funcție de nevoile mele. atașat codul final.
Semnalul ar trebui să arate ca imaginea atașată. Din păcate, am uitat să fac o fotografie, așa că am replotat-o în Excel pentru a vă arăta cum ar trebui să fie.
NOTĂ: Folosesc wemo mini D1 în locul Arduino. din anumite motive pe care nu le știu, PWM este între 0 și 1023. În Arduino ar trebui să fie între 0-255. Dacă doriți să utilizați codul pentru arduino, ar trebui să aveți grijă de el (linia 90).
Pasul 4: Montarea și utilizarea
după colectarea datelor, am deschis fișierul în excel și am trasat datele (uitați-vă la imagine). prima coloană este valoarea PWM și a doua este lux (citirea senzorului, unitatea nu contează prea mult). Prin urmare, trasați lux (axa y) vs. PWM (axa x). După cum puteți vedea, luminozitatea este liniar proporțională cu valoarea PWM. I-am montat o linie.
Pentru a se potrivi unei linii, urmați următoarele:
1- trasează datele (insert> scatter plot) presupun că știi cum.
2- faceți clic dreapta pe datele trasate
3- faceți clic pe linia de trend.
4- (în Excel 2013) în partea dreaptă apare un panou. Alegeți liniar. În partea de jos alegeți „afișați ecuația pe diagramă”.
Relația liniară este diferită de percepția mea. Prin urmare, cred că ar trebui să existe o relație logaritmică între percepția mea și luminozitate (acesta este cel mai simplu mod care mi-a venit în minte!). Așa că am luat panta potrivirii. Interceptarea nu este importantă, deoarece depinde de poluarea luminoasă din jur! în schimb, am adăugat 1. Deoarece Log10 (0) este infinit. Așa că am nevoie de o interceptare pentru a rezolva problema. În cazul meu, ecuația arată astfel:
y = Log10 (0,08 x +1), y este luminozitatea și x este valoarea PWM (0-1023)
Am normalizat ecuația la valoarea maximă. atunci sunetul de ieșire este întotdeauna între 0-100. astfel pot cere arduino o anumită luminozitate relativă, fără a privi luminozitatea absolută maximă.
y = Log10 (0,08 x +1) * 100 / 1,914
Deoarece în arduino intrarea mea este luminozitatea relativă, trebuie să reorganizez ecuația pentru x (PWM):
x = (10 ^ (y * 1.914 / 100) - 1) / 0.08
folosind această ecuație în cod, putem obține o schimbare liniară a luminozității. Deci, solicitați arduino o luminozitate (y) între 0-100, iar arduino calculează valoarea PWM corespunzătoare. în acest fel, dacă dublă luminozitatea, percepția dvs. este, de asemenea, aceeași.
dacă doriți să-l utilizați în codul dvs., mai bine adăugați următoarele linii:
luminozitate = 50; // în procente
PWM = pow (10, luminozitate * 1,914 / 100) -1) / 0,0793;
analogWrite (ledpin, PWM);
NOTĂ: normalizarea se face pentru un PWM maxim de 1023 (pentru Wemos mini D1). Pentru Arduino PWM este între 0-255. trebuie să-l calculați în consecință.
NOTA2: Am adăugat un grafic liniar-log pentru a arăta relația dintre percepția noastră și valoarea PWM. nu ar trebui să-l utilizați pentru montare!
Pasul 5: Concluzie
calibrarea funcționează bine pentru mine. Când valorile PWM sunt mari, văd diferența. Înainte, ca valori mari, nu puteam vedea efectul de estompare. Practic majoritatea schimbărilor au fost făcute într-o gamă mică de PWM. acum este calibrat!
fiecare LED, cu culori deosebit de diferite, ar trebui să aibă parametrii de calibrare proprii. Cu toate acestea, am calibrat un LED albastru și am folosit parametrul pentru un LED alb, iar rezultatul a fost acceptabil. deci poate puteți folosi parametrul meu de calibrare fără să vă deranjați !!
Recomandat:
Controlul luminozității LED-urilor cu potențiometru cu Arduino: 3 pași
Controlul luminozității LED-urilor cu potențiometru cu Arduino: În acest proiect, vom controla luminozitatea LED-urilor folosind rezistența variabilă furnizată de potențiometru. Acesta este un proiect foarte de bază pentru un începător, dar vă va învăța multe lucruri despre potențiometru și LED-uri care sunt necesare pentru a face adva
Controlul luminozității LED-urilor cu un potențiometru și afișaj OLED: 6 pași
Controlul luminozității LED-urilor cu un potențiometru și afișaj OLED: În acest tutorial vom învăța cum să controlăm luminozitatea LED-urilor cu un potențiometru și să afișăm valoarea pe afișajul OLED
Controlul luminozității LED-urilor cu un potențiometru și Arduino: 6 pași
Controlul luminozității LED-urilor cu un potențiometru și Arduino: În acest tutorial vom învăța cum să controlăm luminozitatea LED-urilor cu un potențiometru și Arduino. Vedeți un videoclip demonstrativ
LED de 24 W pentru creșterea luminii cu control al luminozității: 8 pași (cu imagini)
LED de 24 de wați crește lumina cu control al luminozității: Cultivarea alimentelor este unul dintre hobby-urile mele preferate, deoarece sunt un mare fan al alimentelor organice și al alimentației sănătoase. Acest instructable vă va arăta cum să construiți o lumină de creștere cu LED-uri cu comenzi de luminozitate roșu / albastru pentru a se potrivi nevoilor dvs. în creștere și pentru a vă permite să
Controlul luminozității Control LED bazat pe PWM folosind butoane push, Raspberry Pi și Scratch: 8 pași (cu imagini)
Controlul luminozității Control LED bazat pe PWM folosind butoane push, Raspberry Pi și Scratch: încercam să găsesc o modalitate de a explica modul în care PWM a funcționat studenților mei, așa că mi-am pus sarcina de a încerca să controlez luminozitatea unui LED folosind 2 butoane. - un buton crește luminozitatea unui LED și celălalt îl estompează. Pentru a progra