Motifs de chiffres en octets
Fait partie de la section Écrans et capteurs du Journey Arduino de Coddy. Leçon 2 sur 24.
Sept lignes digitalWrite() pour chaque chiffre, cela fait beaucoup de code. Stocke chaque chiffre sous forme de motif : un bit par segment, 1 pour allumé et 0 pour éteint.
Un byte est un nombre entier compris entre 0 et 255, composé de huit bits. Écris-le en binaire en plaçant 0b devant. Lis les bits de droite à gauche : le dernier bit correspond au segment a, celui qui le précède à b, et ainsi de suite jusqu’à g.
// gfedcba
byte one = 0b0000110; // b et c : à 1Dix motifs tiennent dans un tableau ; ainsi, digits[3] est le motif du chiffre 3. bitRead(), issu du compteur binaire, lit l’un de ses bits, en comptant depuis la droite à partir de 0 :
bitRead(0b0000110, 0) // 0 : le segment a est éteint
bitRead(0b0000110, 1) // 1 : le segment b est alluméUne fonction peut parcourir les sept bits avec une boucle for et définir chaque broche de segment : afficher n’importe quel chiffre se fait alors en un seul appel : showDigit(7);
Défi
MoyenLe code de départ contient tous les motifs sauf 4 et 7, et loop() affiche 1, 4 et 7.
- complète 4 (segments
b,c,f,g) et 7 (a,b,c) - écris
showDigit(n): pour chaqueide 0 à 6, définissegmentPins[i]surLOWlorsque le bitidedigits[n]vaut 1, et surHIGHlorsqu’il vaut 0
Appuie sur Run, puis sur Check.
Essayez vous-même
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// Un motif par chiffre, à lire de droite à gauche : le dernier bit correspond au segment a.
// gfedcba
const byte digits[10] = {
0b0111111, // 0
0b0000110, // 1
0b1011011, // 2
0b1001111, // 3
0b0000000, // 4 : à compléter
0b1101101, // 5
0b1111101, // 6
0b0000000, // 7 : à compléter
0b1111111, // 8
0b1101111 // 9
};
void showDigit(int n) {
// allumer les segments de digits[n] et éteindre les autres
}
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);
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Écrans et capteurs
1Afficheurs à sept segments
Afficheur à sept segmentsMotifs de chiffres en octetsCompter sur l’afficheurCompte à rebours jusqu’à zéroLanceur de désEntraînez-vous par vous-même : Playground Arduino