Menu
CoddyTech

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.

challenge icon

Sfida

Facile

La 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
}
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