Taula de continguts:
Vídeo: Calibració de la brillantor del LED: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Mentre feia una llum de fada, em vaig adonar que el valor PWM no era linealment proporcional a la brillantor del LED. Simplement, si el valor PWM és doble, la brillantor no és doble; especialment quan PWM és al màxim, qualsevol canvi no és reconeixible pels meus ulls. Vaig pensar que hauria de ser un simple problema de calibratge. i va ser com vaig fer aquest projecte! La idea és mesurar la brillantor d’un LED amb algun dispositiu (sensor de lluminositat o fotoresistor) i trobar una correlació entre el valor PWM i la brillantor. Després, si estableixo la brillantor al 50%, Arduino calcularà el PWM corresponent i atenuarà el LED en conseqüència.
Per tant, necessito un sensor de lluminositat i un LED per mesurar la brillantor. Amb una targeta SD, desaré les dades per al procediment d’ajust posterior. L'ajust es farà a Excel (o qualsevol altre programa). La sortida es farà servir al codi Arduino, i ja està! S’ha de fer una vegada. Aleshores podeu utilitzar el paràmetre de calibratge per sempre.
Pas 1: parts
1- WEMOS mini D1: Aliexpress 3 €
2- TSL 2561 (sensor de lluminositat): Aliexpress 3 €
3- Mòdul de targeta SD: Aliexpress 1 €
4- LED
5- Resistència de 220 ohm
6- cables
cost total: 8-10 €
Pas 2: cablejat
Els cables del mòdul de la targeta SD i del sensor de lluminositat no s’han de canviar (la majoria). El LED s’ha de connectar a un pin PWM.
Pas 3: Codi
He combinat tres codis:
Targeta SD: exemple utilitzat> SD> ReadWrite a Arduino IDE
TSL 2561: exemple d'Adafruit TSL2561 utilitzat (sensorapi); el trobareu en exemples, si instal·leu la biblioteca (suposo que sabeu com instal·lar una biblioteca a Arduino IDE).
Fading LED: exemples usats> Analog> fading
El codi, després d’inicialitzar els mòduls, atenuarà el led i llegirà la brillantor i el guardarà a la targeta SD. d’aquesta manera recopilaré algunes dades per calibrar-les.
He canviat cadascun dels codis segons les meves necessitats. adjunt el codi final.
El senyal hauria de semblar a la imatge adjunta. Malauradament, m’he oblidat de fer una foto, així que la replantejo a Excel per mostrar-vos com ha de ser.
NOTA: Estic fent servir wemo mini D1 en lloc d'Arduino. per alguna raó que desconec, el PWM està entre 0 i 1023. A Arduino hauria d’estar entre 0-255. Si voleu utilitzar el codi per a arduino, n’heu de tenir cura (línia 90).
Pas 4: ajust i ús
després de recollir dades, vaig obrir el fitxer en excel i vaig dibuixar les dades (mireu la imatge). la primera columna és el valor PWM i la segona és lux (la lectura del sensor, la unitat no importa molt). Per tant, traça lux (eix y) contra PWM (eix x). Com podeu veure, la brillantor és linealment proporcional al valor PWM. Hi vaig instal·lar una línia.
Per ajustar una línia, seguiu el següent:
1- traça les dades (insereix> dispersa gràfic) suposo que saps com fer-ho.
2- Feu clic amb el botó dret sobre les dades representades
3- feu clic a la línia de tendència.
4- (a Excel 2013) a la part dreta apareix un tauler. Tria lineal. A la part inferior, trieu "Mostra l'equació al gràfic".
La relació lineal és diferent de la meva percepció. Per tant, crec que hi hauria d’haver una relació logarítmica entre la meva percepció i la brillantor (aquesta és la manera més senzilla que em va venir al cap!). Així que vaig agafar el pendent de l’ajust. La intercepció no és important, perquè depèn de la contaminació lumínica que l’envolta. en canvi, he afegit 1. Com que Log10 (0) és infinit. Per tant, necessito una intercepció per resoldre el problema. En el meu cas, l'equació té aquest aspecte:
y = Log10 (0,08 x +1), y és la brillantor i x és el valor PWM (0-1023)
Vaig normalitzar l’equació fins al valor màxim. aleshores el so de sortida sempre està entre 0-100. d'aquesta manera, puc demanar a Arduino una certa brillantor relativa, sense importar la brillantor absoluta màxima.
y = Log10 (0,08 x +1) * 100 / 1.914
Com que a l’arduino la meva entrada és la brillantor relativa, he de tornar a organitzar l’equació per a x (PWM):
x = (10 ^ (y * 1.914 / 100) - 1) / 0,08
utilitzant aquesta equació al codi, podem obtenir un canvi de brillantor lineal. Per tant, demaneu a arduino una brillantor (y) entre 0 i 100, i arduino calcula el valor PWM corresponent. d’aquesta manera, si es dobla la brillantor, la seva percepció també és la mateixa.
si voleu utilitzar-lo al vostre codi és millor afegir aquestes línies:
lluentor = 50; // en percentatge
PWM = pow (10, brillantor * 1,914 / 100) -1) / 0,0793;
analogWrite (ledpin, PWM);
NOTA: la normalització es fa per a un PWM màxim de 1023 (per a Wemos mini D1). Per a Arduino PWM està entre 0-255. cal calcular-lo en conseqüència.
NOTA2: He afegit un diagrama lineal de registre per mostrar com estan relacionades la nostra percepció i el valor PWM. no l'haureu d'utilitzar per ajustar-lo.
Pas 5: Conclusió
el calibratge funciona bé per a mi. Quan els valors PWM són grans, puc veure la diferència. Abans, com els grans valors, no podia veure l’efecte de l’enfosquiment. Bàsicament, la majoria dels canvis es van fer en una petita gamma de PWM. ara està calibrat!
cada LED, especialment de colors diferents, hauria de tenir els seus propis paràmetres de calibratge. No obstant això, he calibrat un LED blau i he utilitzat el paràmetre per a un LED blanc i el resultat ha estat acceptable. així que potser podeu utilitzar el meu paràmetre de calibratge sense molestar-vos!
Recomanat:
CALIBRACIÓ DEL SENSOR DE PH ARDUINO: 7 passos
CALIBRACIÓ DEL SENSOR DE PH ARDUINO: en aquest tutorial calibrarem el sensor de pH EZO d’Atlas Scientific mitjançant Arduino Uno. TEORIA DE LA CALIBRACIÓ La part més important del calibratge és veure les lectures durant el procés de calibratge. És més fàcil calibrar el dispositiu a
Calibració del sensor d’humitat del sòl: 5 passos
Calibració del sensor d’humitat del sòl: hi ha molts comptadors d’humitat del sòl al mercat per ajudar el jardiner a decidir quan regar les seves plantes. Malauradament, agafar un grapat de terra i inspeccionar el color i la textura és tan fiable com molts d’aquests aparells. Algunes sondes fins i tot regis
CALIBRACIÓ DEL SENSOR ORP ARDUINO: 3 passos
CALIBRACIÓ DEL SENSOR ORP ARDUINO: En aquest tutorial, calibrarem el sensor EZO ORP (potencial d’oxidació-reducció) d’Atlas Scientific mitjançant Arduino Uno. És fàcil
CALIBRACIÓ DEL SENSOR D'OXIGEN DISSOLUT ARDUINO: 4 passos
CALIBRACIÓ DEL SENSOR D’OXIGEN DISSOLUT ARDUINO: en aquest tutorial calibrarem el sensor d’oxigen dissolt EZO (D.O) d’Atlas Scientific mitjançant Arduino Uno. És més fàcil calibrar
CALIBRACIÓ DEL SENSOR DE SALINITAT ARDUINO: 9 passos
CALIBRACIÓ DEL SENSOR DE SALINITAT ARDUINO: En aquest tutorial calibrarem el sensor de salinitat / conductivitat EZO K1.0 d’Atlas Scientific mitjançant Arduino Uno. És més fàcil