Menu
CoddyTech

Contatore binario con LED

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

Quattro LED possono mostrare qualsiasi numero da 0 a 15 in binario, il modo in cui i computer memorizzano i numeri. Ogni LED rappresenta un posto che vale il doppio di quello precedente: 1, 2, 4 e 8. Un LED acceso aggiunge il proprio valore:

  • 5 è 4 + 1: i LED che valgono 4 e 1 sono accesi
  • 10 è 8 + 2
  • 15 sono tutti e quattro

Ogni posto è chiamato bit, numerato a partire da 0, quello che vale 1. bitRead(number, n) restituisce il bit n di un numero, 1 o 0:

bitRead(5, 0);  // 1: 5 contiene l'1
bitRead(5, 1);  // 0: 5 non contiene il 2
bitRead(5, 2);  // 1: 5 contiene il 4

Poiché 1 è HIGH e 0 è LOW, il bit i può essere collegato direttamente al LED i:

for (int i = 0; i < 4; i++) {
  digitalWrite(ledPins[i], bitRead(count, i));
}

Qui ledPins[0], il pin 2, è il LED a destra, che vale 1, come l'ultima cifra di un numero.

challenge icon

Sfida

Medio

Fai contare i quattro LED in binario:

  • inizia count da 0
  • mostralo sui LED con bitRead(), il bit i su ledPins[i]
  • attendi 250 ms, aggiungi 1 e, dopo 15, ricomincia da 0

Premi Run, poi Check.

Provalo tu

int ledPins[] = {2, 3, 4, 5};  // valgono 1, 2, 4, 8
int count = 0;

void setup() {
  for (int i = 0; i < 4; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  // mostra count in binario, attendi 250 ms, poi incrementa count (torna a 0 dopo 15)
}
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