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.