Sommario:

Calibrazione della luminosità del LED: 5 passaggi
Calibrazione della luminosità del LED: 5 passaggi

Video: Calibrazione della luminosità del LED: 5 passaggi

Video: Calibrazione della luminosità del LED: 5 passaggi
Video: Come CALIBRARE il MONITOR senza spendere un centesimo 2024, Dicembre
Anonim
Calibrazione della luminosità del LED
Calibrazione della luminosità del LED

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

Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
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

Codice
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

Montaggio e utilizzo
Montaggio e utilizzo
Montaggio e utilizzo
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: