top of page
Rechercher

16.1 - 7 Led et 74HC95

  • L C
  • 28 sept. 2024
  • 1 min de lecture

Dernière mise à jour : 29 nov. 2024

Objectif


Faire clignoter 7 Led à tour de rôle en utilisant un registre à décalage 74hc595 pour n'utiliser que 3 broches sur la carte Arduino (au lieu de 7 pour les 7 Led).


Matériel


  • 1 carte Arduino

  • 1 breadboard

  • 7 Led

  • 7 résistances 220 Ω

  • 1 registre à décalage 74hc595

  • Fils de connexion


Montage



⚠️ le registre à décalage à un sens, la petite marque est du côté opposé aux Led.


Sketch


#define data 10

#define verrou 11

#define horloge 12


byte byteToSend = 0;


void setup() {

pinMode(verrou, OUTPUT);

pinMode(horloge, OUTPUT);

pinMode(data, OUTPUT);

digitalWrite(verrou, HIGH);

}


void loop() {

for (byte i = 0; i < 8; i++) {

byteToSend = 0;

bitWrite(byteToSend, i, HIGH);

digitalWrite(verrou, LOW);

shiftOut(data, horloge, LSBFIRST, byteToSend);

digitalWrite(verrou, HIGH);

delay(100);

}

}


Explications


Dans la boucle for, la variable i passe de 0 à 8.

La fonction bitWrite(byteToSend, bitPos, HIGH); modifie l’octet sous forme binaire et l’envoie au registre. Si le bitPos=0 on obtient B00000001, si le bitPos=1 on obtient B00000010, si le bitPos=2 on obtient B00000100, etc;

MSBFIRST et LSBFIRST change la direction du signal.


Réalisation



bottom of page