Menu
CoddyTech

Schemi delle cifre nei byte

Fa parte della sezione Display e sensori del percorso Arduino di Coddy. Lezione 2 di 24.

Sette righe digitalWrite() per ogni cifra sono tante righe di codice. Memorizza ogni cifra come schema: un bit per segmento, 1 per acceso e 0 per spento.

Un byte è un numero intero da 0 a 255 composto da otto bit. Scrivilo in binario con 0b davanti. Leggi i bit da destra: l'ultimo bit è il segmento a, quello precedente è b e così via fino a g.

//           gfedcba
byte one = 0b0000110;  // b e c: un 1

Dieci schemi entrano in un array, quindi digits[3] è lo schema del 3. bitRead(), dal contatore binario, legge un bit alla volta, contando da destra e iniziando da 0:

bitRead(0b0000110, 0)  // 0: il segmento a è spento
bitRead(0b0000110, 1)  // 1: il segmento b è acceso

Una funzione può scorrere i sette bit con un ciclo for e impostare ogni pin del segmento, così per visualizzare qualsiasi cifra basta una chiamata: showDigit(7);

challenge icon

Sfida

Medio

Il codice iniziale contiene tutti i pattern tranne 4 e 7, e loop() mostra 1, 4 e 7.

  • completa 4 (segmenti b, c, f, g) e 7 (a, b, c)
  • scrivi showDigit(n): per ogni i da 0 a 6, imposta segmentPins[i] su LOW quando il bit i di digits[n] è 1, e su HIGH quando è 0

Premi Run, poi Check.

Provalo tu

const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8};  // a, b, c, d, e, f, g

// Un pattern per ogni cifra, da leggere da destra: l'ultimo bit corrisponde al segmento a.
//                     gfedcba
const byte digits[10] = {
  0b0111111,  // 0
  0b0000110,  // 1
  0b1011011,  // 2
  0b1001111,  // 3
  0b0000000,  // 4: da completare
  0b1101101,  // 5
  0b1111101,  // 6
  0b0000000,  // 7: da completare
  0b1111111,  // 8
  0b1101111   // 9
};

void showDigit(int n) {
  // accendi i segmenti di digits[n], spegni gli altri
}

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

void loop() {
  showDigit(1);
  delay(1000);
  showDigit(4);
  delay(1000);
  showDigit(7);
  delay(1000);
}
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 Display e sensori

Esercitati da solo: Playground Arduino