SunuMake
Tous les projets
Intermédiaire35 minKit Découverte

Le compteur binaire

Quatre LED qui comptent de 0 à 15 en binaire. Tu vois enfin, de tes yeux, comment un ordinateur stocke un nombre.

Tout ce que fait ton téléphone - photos, musique, messages - est stocké exactement comme ça : des suites de 0 et de 1.

Tu auras besoin du

SunuMake Découverte

Tes premiers pas avec Arduino - 8 composants inclus.

7 500 FCFAVoir le kit
Matériel

Ce qu'il faut sortir du kit

Prépare tout avant de commencer : c'est plus agréable que de fouiller la boîte au milieu du câblage.

  • 1Carte Arduino UNO
  • 1Plaque d'essai (breadboard)
  • 4LEDmême couleur de préférence, pour bien lire le nombre
  • 4Résistances 220 Ω
  • 5Fils de connexion
Câblage

Le schéma des branchements

Débranche toujours l'USB avant de modifier un câblage, et vérifie ce tableau ligne par ligne avant de rebrancher.

On relieàen passant par
LED n°1 (poids 1) — patte longueBroche 2Résistance 220 Ω
LED n°2 (poids 2) — patte longueBroche 3Résistance 220 Ω
LED n°3 (poids 4) — patte longueBroche 4Résistance 220 Ω
LED n°4 (poids 8) — patte longueBroche 5Résistance 220 Ω
Toutes les pattes courtesGNDRail bleu (−)
Pas à pas

Les étapes

  1. 1

    Matériel

    4 LED, 4 résistances 220 Ω, 5 fils. Aligne les LED côte à côte sur la breadboard : ce sera plus lisible.

  2. 2

    Câble les quatre LED

    De droite à gauche : broche 2, broche 3, broche 4, broche 5. Chaque patte longue passe par sa résistance, chaque patte courte va au rail bleu (−), relié à GND. L'ordre compte : la LED de droite représente le chiffre le plus petit.

  3. 3

    Téléverse et compte

    Copie le code et téléverse. Les LED affichent 0, puis 1, puis 2... jusqu'à 15, puis reviennent à 0. Regarde bien la LED de droite : elle change à chaque étape. Celle de gauche ne change qu'une fois sur huit.

  4. 4

    Décode toi-même

    Chaque LED vaut un nombre : la première 1, la deuxième 2, la troisième 4, la quatrième 8. Une LED allumée = on ajoute sa valeur. Allumées : 8 et 2 ? Le nombre affiché est 10. Essaie de lire quelques valeurs avant qu'elles ne changent.

  5. 5

    Ralentis pour mieux voir

    Passe le `delay(600)` à `1500`. Tu as le temps de décoder chaque nombre. C'est un excellent exercice pour ancrer le binaire.

Code Arduino

Le programme à téléverser

Copie ce code dans l'IDE Arduino, branche ta carte en USB et clique sur le bouton « Téléverser » (la flèche en haut à gauche).

sketch.ino
// Le compteur binaire - SunuMake
// 4 LED = 4 bits = 16 valeurs possibles (de 0 à 15).
const int LEDS[] = {2, 3, 4, 5}; // LEDS[0] = poids 1, LEDS[3] = poids 8
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(LEDS[i], OUTPUT);
}
}
void loop() {
for (int nombre = 0; nombre < 16; nombre++) {
afficher(nombre);
delay(600);
}
}
// Allume les LED correspondant à l'écriture binaire du nombre.
void afficher(int nombre) {
for (int i = 0; i < 4; i++) {
// bitRead(nombre, i) vaut 1 si le bit numéro i est à 1, sinon 0.
digitalWrite(LEDS[i], bitRead(nombre, i));
}
}
Mini-cours

Comment ça marche ?

Nous comptons en base 10 parce que nous avons dix doigts. Un ordinateur n'a que deux états possibles (courant / pas de courant), alors il compte en base 2.

En base 10, les colonnes valent 1, 10, 100, 1000... En base 2, elles valent 1, 2, 4, 8, 16... - des puissances de deux. Le nombre 10 s'écrit donc 1010 en binaire : une fois 8, zéro fois 4, une fois 2, zéro fois 1.

Chacune de ces colonnes s'appelle un bit. Avec 4 bits on écrit 16 valeurs (2⁴), avec 8 bits 256 valeurs (2⁸) - d'où le 255 maximum qu'on a croisé dans analogWrite() du projet « La LED qui respire ». Tout est lié.

bitRead(nombre, i) demande simplement : « le bit numéro i de ce nombre vaut-il 1 ? ». Comme digitalWrite() attend justement un 1 ou un 0, on peut brancher directement l'un dans l'autre. Élégant.

Continuer

D'autres projets à essayer