Sommario:
- Passaggio 1: parti
- Passaggio 2: cablaggio
- Passaggio 3: codice
- Passaggio 4: montaggio e utilizzo
- Passaggio 5: conclusione
Video: Calibrazione della luminosità del LED: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Mentre stavo realizzando una luce fiabesca, mi sono reso conto che il valore PWM è non linearmente proporzionale alla luminosità del LED. In parole povere, se il valore PWM è doppio la luminosità non è doppia; specialmente quando il PWM è vicino al massimo, qualsiasi cambiamento non è riconoscibile dai miei occhi. Ho pensato che dovrebbe essere un semplice problema di calibrazione! ed è così che ho realizzato questo progetto! L'idea è misurare la luminosità di un LED con un dispositivo (sensore di luminosità o fotoresistenza) e trovare una correlazione tra il valore PWM e la luminosità. Quindi, in seguito, se imposto la luminosità al 50%, Arduino calcolerà il PWM corrispondente e oscurerà il LED di conseguenza.
Pertanto, ho bisogno di un sensore di luminosità e di un LED per misurare la luminosità. Utilizzando una scheda SD, salverò i dati per la successiva procedura di adattamento. Il montaggio verrà eseguito in Excel (o qualsiasi altro programma). L'output verrà utilizzato nel codice Arduino, e basta! Dovrebbe essere fatto una volta. Quindi puoi usare il parametro di calibrazione per sempre!
Passaggio 1: parti
1- WEMOS mini D1: Aliexpress 3€
2- TSL 2561 (Sensore di luminosità): Aliexpress 3€
3- Modulo scheda SD: Aliexpress 1€
4- LED
5- Resistenza 220 ohm
6 fili
costo totale: 8 -10 €
Passaggio 2: cablaggio
I cavi del modulo della scheda SD e del sensore di luminosità non devono essere cambiati (la maggior parte di essi). Il led deve essere collegato a un pin PWM.
Passaggio 3: codice
Ho combinato tre codici:
Scheda SD: esempio usato >SD > ReadWrite in Arduino IDE
TSL 2561: utilizzato esempio di libreria Adafruit TSL2561 (sensorapi); lo troverai negli esempi, se installi la libreria (presumo che tu sappia come installare una libreria nell'IDE di Arduino).
Fading LED: esempi usati > Analog > fading
Il codice, dopo aver inizializzato i moduli, attenuerà il led e leggerà la luminosità e la salverà nella scheda SD. in questo modo raccoglierò alcuni dati per la calibrazione.
Ho cambiato ogni codice secondo le mie esigenze. il codice finale allegato.
Il segnale dovrebbe assomigliare all'immagine allegata. Sfortunatamente ho dimenticato di scattare una foto, quindi la ricollego in excel per mostrarti come dovrebbe essere.
NOTA: sto usando wemo mini D1 invece di Arduino. per qualche motivo che non conosco, il PWM è compreso tra 0 e 1023. In Arduino dovrebbe essere compreso tra 0-255. Se vuoi usare il codice per arduino, dovresti occupartene (riga 90).
Passaggio 4: montaggio e utilizzo
dopo aver raccolto i dati, ho aperto il file in excel e tracciato i dati (guarda l'immagine). la prima colonna è il valore PWM e la seconda è lux (lettura del sensore, l'unità non conta molto). Pertanto, traccia lux (asse y) rispetto a PWM (asse x). Come puoi vedere la luminosità è linearmente proporzionale al valore PWM. Ci ho montato una linea.
Per adattare una linea seguire come:
1- tracciare i dati (inserisci> grafico a dispersione) presumo tu sappia come.
2- fare clic con il tasto destro sui dati tracciati
3- fare clic sulla linea di tendenza.
4- (in excel 2013) sul lato destro si apre un pannello. Scegli lineare. In basso scegli "visualizza equazione sul grafico".
La relazione lineare è diversa dalla mia percezione. Pertanto penso che dovrebbe esserci una relazione logaritmica tra la mia percezione e la luminosità (questo è il modo più semplice che mi è venuto in mente!). Quindi ho preso la pendenza dell'adattamento. L'intercettazione non è importante, perché dipende dall'inquinamento luminoso circostante! invece, ho aggiunto 1. Perché Log10 (0) è infinito. Quindi ho bisogno di un'intercettazione per risolvere il problema. Nel mio caso l'equazione è simile a questa:
y = Log10 (0,08 x +1), y è la luminosità e x è il valore PWM (0-1023)
Ho normalizzato l'equazione al valore massimo. quindi l'output rang è sempre compreso tra 0-100. in questo modo posso chiedere ad arduino una certa luminosità relativa, senza preoccuparmi della massima luminosità assoluta.
y = Log10(0.08 x +1)*100/1.914
Poiché in Arduino il mio input è la luminosità relativa, devo riorganizzare l'equazione per x (PWM):
x = (10^(y*1.914/100) - 1) / 0.08
usando questa equazione nel codice siamo in grado di ottenere una variazione lineare della luminosità. Quindi chiedi ad arduino una luminosità (y) tra 0-100 e arduino calcola il valore PWM corrispondente. in questo modo, se raddoppia la luminosità, anche la tua percezione è la stessa.
se vuoi usarlo nel tuo codice è meglio aggiungere queste righe:
luminosità=50; // in percentuale
PWM = pow(10, luminosità*1.914/100)-1)/0.0793;
analogWrite(ledpin, PWM);
NOTA: la normalizzazione viene eseguita per un PWM massimo di 1023 (per Wemos mini D1). Per Arduino PWM è compreso tra 0-255. devi calcolarlo di conseguenza.
NOTA 2: ho aggiunto un grafico log-lineare per mostrare come sono correlati la nostra percezione e il valore PWM. non dovresti usarlo per il montaggio!
Passaggio 5: conclusione
la calibrazione funziona bene per me. Quando i valori PWM sono grandi, posso vedere la differenza. Prima come i grandi valori non riuscivo a vedere l'effetto dell'oscuramento. Fondamentalmente la maggior parte delle modifiche sono state apportate in una piccola gamma di PWM. ora è calibrato!
ogni LED, specialmente di colori diversi, dovrebbe avere i propri parametri di calibrazione. Tuttavia ho calibrato un LED blu e utilizzato il parametro per un LED bianco e il risultato è stato accettabile. quindi forse puoi usare il mio parametro di calibrazione senza preoccuparti!!
Consigliato:
Controllo della luminosità del LED con il potenziometro con Arduino: 3 passaggi
Controllo della luminosità del LED con il potenziometro con Arduino: in questo progetto, controlleremo la luminosità del LED utilizzando la resistenza variabile fornita dal potenziometro. Questo è un progetto molto semplice per un principiante, ma ti insegnerà molte cose sul funzionamento del potenziometro e del LED che sono necessari per fare progressi
Controllo della luminosità del LED tramite Raspberry Pi e pagina Web personalizzata: 5 passaggi
Controllo della luminosità del LED tramite Raspberry Pi e pagina Web personalizzata: utilizzando un server Apache sul mio pi con php, ho trovato un modo per controllare la luminosità di un LED utilizzando uno slider con una pagina Web personalizzata accessibile su qualsiasi dispositivo connesso alla stessa rete del tuo pi .Ci sono molti modi in cui questo può essere ac
Controllo della luminosità del LED con un potenziometro e un display OLED: 6 passaggi
Controllo della luminosità del LED con un potenziometro e un display OLED: in questo tutorial impareremo come controllare la luminosità del LED con un potenziometro e visualizzare il valore sul display OLED. Guarda un video dimostrativo
Controllo della luminosità del LED con un potenziometro e Arduino: 6 passaggi
Controllo della luminosità del LED con un potenziometro e Arduino: In questo tutorial impareremo come controllare la luminosità del LED con un potenziometro e Arduino.Guarda un video dimostrativo
Controllo della luminosità del LED utilizzando Arduino e il modulo Bluetooth (HC-05): 4 passaggi
Controllo della luminosità del LED utilizzando Arduino e il modulo Bluetooth (HC-05): IntroduzioneIn questo tutorial, controlleremo la luminosità del LED utilizzando Arduino UNO, il modulo Bluetooth (HC-05) e l'applicazione Android per Bluetooth (terminale Bluetooth)