Menu
CoddyTech

Indicatore luminoso del servo

Fa parte della sezione Uscite del percorso Arduino di Coddy. Lezione 24 di 24.

Con un ago sul braccio, un servomotore diventa un indicatore, come il tachimetro di un'auto. Qui mostra quanto è luminosa la luce.

Come con la luce notturna, l'AO del modulo legge un valore più basso quando la luce è più intensa: circa 1023 al buio e vicino a 0 in piena luce. Un indicatore dovrebbe puntare più in alto quando la luce è più intensa, quindi la conversione procede al contrario. Come nel misuratore di luce, passa a map() il nuovo intervallo al contrario:

int angle = map(reading, 0, 1023, 180, 0);

Una lettura di 0, in piena luce, diventa 180 gradi, mentre 1023, al buio, diventa 0. Tutti i valori intermedi si collocano tra questi due estremi, nel senso opposto.

challenge icon

Sfida

Medio

Il pin AO del sensore di luce è collegato ad A0 e il servo al pin 9. Fai in modo che il braccio funzioni da indicatore della luce:

  • al buio il braccio punta a 0 gradi, con la massima luminosità a 180
  • usa map() invertendo il nuovo intervallo
  • stampa l'angolo e attendi 50 ms ogni volta

Premi Run e sposta il cursore della luce sul sensore, poi Check.

Provalo tu

#include <Servo.h>

const int lightPin = A0;
Servo arm;

void setup() {
  arm.attach(9);
  Serial.begin(9600);
}

void loop() {
  // leggi il valore della luce, rimappalo in ordine inverso su 180..0, muovi il braccio, stampa l'angolo
}
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 Uscite

Esercitati da solo: Playground Arduino