Questo progetto consente di creare un lettore di luminosità o esposimetro, magari da usarsi per fotografia, utilizzando un Raspberry PI Pico.
Un sensore di luminosità non è altro che un fototransistor, che agisce un po’ come un resistore variabile, la cui resistenza varia a seconda della quantità di luce che cade su di esso.
La figura mostra il diagramma schematico per collegare questo sensore ad un ingresso analogico.
Il resistore da 1kΩ converte la variazione di corrente (quando più luce colpisce il fototransistor) in una tensione, che può essere misurata dall’ingresso analogico. Collega la tua breadboard come mostrato nella Figura per provarlo. Il conduttore più lungo del fototransistor deve essere collegato alla connessione 7 (GP28).
Il programma esposimetro.py misurerà l’intensità della luce e la visualizzerà come percentuale da 0 (totalmente buio) a 100 (luce solare intensa). Eseguilo e prova a ombreggiare il fototransistor con la mano: il livello di luce captato dovrebbe cambiare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
from machine import ADC, Pin from utime import sleep from math import sqrt sensore_luce = ADC(28) lettura_buio = 200 fattore_di_scala = 2.5 def lettura_luce(): lettura = sensore_luce.read_u16() # print(lettura) percent = int(sqrt(lettura - lettura_buio) / fattore_di_scala) if percent < 0: percent = 0 elif percent > 100: percent = 100 return (percent) while True: livello_luminoso = lettura_luce() print(livello_luminoso) sleep(0.2) |
Notate che stiamo importando sqrt (radice quadrata) dal modulo math. Ne avremo bisogno per ridimensionare le nostre letture della luce L’offset per le letture al buio completo e la sensibilità sono controllati dalle variabili lettura_buio e fattore_di_scala. Il valore di lettura_buio dovrebbe essere la lettura analogica grezza quando il fototransistor è completamente al buio: in questo caso un valore di 200 dovrebbe essere più o meno corretto. La regolazione di fattore_di_scala controlla la sensibilità, quindi, se misurerai la luce solo all’interno dove è più debole anziché all’aperto sotto il sole, allora potresti voler aumentare il valore del parametro fattore_di_scala.
Dopo aver effettuato la lettura analogica grezza ( lettura ), viene stimata la percentuale, estraendo la radice quadrata della differenza tra lettura e lettura_buio e quindi moltiplicando per fattore_di_scala. La radice quadrata viene utilizzata per conferire alla scala una curva più naturale, poiché la luminosità percepita è correlata alla radice quadrata dell’intensità della luce.
La lettura percentuale viene quindi normalizzata in modo che rientri nell’intervallo compreso tra 0 e 100.
Considerazioni finali
In questo articolo abbiamo esaminato un sensore sensore collegato agli ingressi analogici del Pico. Prossimamente rivolgeremo la nostra attenzione ai display e ad altri dispositivi di
output.
Elenco materiali:
Iscriviti ai nostri gruppi Telegram
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano