Esposimetro
Fa parte della sezione Ingressi del percorso Arduino di Coddy. Lezione 22 di 22.
Questa lezione mette insieme la sezione: un misuratore di luce che stampa la luce in percentuale e la mostra su una barra di tre LED, come le barre del segnale su un telefono.
Suddividi il lavoro in funzioni, ognuna con un compito, così loop() si legge come una descrizione:
void loop() {
int percent = lightPercent();
showLevel(percent);
// stampa la percentuale
}lightPercent() legge AO del modulo di luce e restituisce un valore da 0 (buio) a 100 (luminoso). AO diminuisce quando la luce aumenta, quindi inverti la mappatura: map(reading, 0, 1023, 100, 0) trasforma 1023 in 0 e 0 in 100.
showLevel(int percent) assegna a ogni LED della barra la propria soglia: il primo si accende sopra 25, il secondo sopra 50, il terzo sopra 75. Ognuno ha bisogno del proprio else, così la barra può ridursi di nuovo quando la luce diminuisce.
Sfida
MedioL'AO del modulo di luce è su A0, e i LED della barra sono sui pin 10, 11 e 12:
int lightPercent(): 0 al buio, 100 in piena lucevoid showLevel(int percent): il pin 10 si accende sopra 25, il pin 11 sopra 50, il pin 12 sopra 75- in
loop(), chiama entrambe le funzioni, stampa la percentuale e attendi 200 ms
Premi Run, sposta il cursore della luce, poi Check.
Provalo tu
const int lowPin = 10;
const int midPin = 11;
const int highPin = 12;
// scrivi int lightPercent() qui
// scrivi void showLevel(int percent) qui
void setup() {
pinMode(lowPin, OUTPUT);
pinMode(midPin, OUTPUT);
pinMode(highPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// leggi il livello di luce come percentuale, mostralo sulla barra, stampalo, attendi 200 ms
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Ingressi
Esercitati da solo: Playground Arduino