Menu
CoddyTech

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.

challenge icon

Sfida

Medio

L'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 luce
  • void 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
}
quiz iconMettiti alla prova

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