Dimmer a manopola
Fa parte della sezione Uscite del percorso Arduino di Coddy. Lezione 5 di 24.
Una manopola fornisce a analogRead() un numero da 0 a 1023, mentre analogWrite() accetta valori da 0 a 255. I due intervalli non corrispondono, quindi converti un intervallo nell’altro con map():
int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);Quando la manopola è al minimo, il valore è 0 e il LED è spento; quando è al massimo, il valore è 1023, che diventa 255, quindi il LED è completamente acceso. Ogni posizione intermedia corrisponde a un livello di luminosità intermedio.
Scrivere direttamente la lettura sul LED non funziona: analogWrite() accetta solo valori da 0 a 255, quindi una lettura come 600 produce una luminosità sbagliata.
Sfida
FacileLa manopola è collegata ad A0 e il LED al pin 9. Fai in modo che la manopola imposti la luminosità:
- leggi la manopola
- converti la lettura in un valore da 0 a 255 con
map() - scrivi il valore sul LED, poi attendi 10 ms
Premi Run e gira la manopola, poi Check.
Provalo tu
const int knobPin = A0;
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// leggi la manopola, mappa il valore nell'intervallo 0..255 e invialo al LED
}
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