Bonjour à tous,
Je me suis récemment lancé dans quelques séances pratiques d'électronique, et j'en suis venu à affronter un composant avec un nom des plus barbares, le 74HC595.
Je pensais avoir compris son fonctionnement, j'ai donc fait le montage sur ma breadboard et ma carte UNO, en branchant une LED sur Qb et une sur Qe.
J'ai ensuite programmé le pavé suivant, qui je le sais manque de méthode, mais je ne comprends pas pourquoi cela ne fonctionne pas comme je le comprenais, tout de suite, le problème :
int SER = 4;
int VCC = 2;
int RCLK = 5;
int SRCLK = 6;
void setup() {
// put your setup code here, to run once:
pinMode(SER,OUTPUT);
pinMode(VCC, OUTPUT);
pinMode(RCLK,OUTPUT);
pinMode(SRCLK,OUTPUT);
digitalWrite(VCC,HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(SER,HIGH); //Envoi d'un signal dans Qa
digitalWrite(SER,LOW);
digitalWrite(SRCLK,HIGH); //Décalage à droite dans Qb, ma première LED
digitalWrite(SRCLK,LOW);
digitalWrite(RCLK,HIGH); //Enregistrement du changement
digitalWrite(RCLK,LOW);
delay(500); //Délai pour voir la LED s'allumer
digitalWrite(SRCLK,HIGH); //Deux décalages à droite pour arriver à Qd
digitalWrite(SRCLK,LOW);
digitalWrite(SRCLK,HIGH);
digitalWrite(SRCLK,LOW);
digitalWrite(SER,HIGH); //Envoi d'un signal dans Qa
digitalWrite(SER,LOW);
digitalWrite(SRCLK,HIGH); // Deux décalages à droite, donc premier signal dans Qe, sur ma deuxième LED, et premier signal dans Qb, première LED.
digitalWrite(SRCLK,LOW);
digitalWrite(RCLK,HIGH);
digitalWrite(RCLK,LOW);
delay(1000);
}
Ci-joint une image du composant en question :
Donc quand je lance mon programme, je compte ici faire allumer ma première LED, puis que le "signal" de la première, en se décalant "à droite", se retrouve dans ma deuxième LED, en ayant au préalable relancé un autre signal, on aurait en quelque sorte à la suite: (Qa à Qh)
10000000 Rien
01000000 LED Allumée
00100000 Rien
00010000 Rien
10010000 LED 1 allumée
01001000 Deux LED allumées
Mon idée était ici que la première LED s'allume, puis les deux en même temps, puis la première, puis les deux en même temps etc
Or la première LED s'allume, puis s'éteint, puis la deuxième s'allume, puis s'éteint, et puis rien.
Si quelqu'un a une réponse à mon problème, toujours dans cet esprit de gérer "manuellement" (Je sais que mon code est pas terrible, mais je cherche à comprendre le mécanisme exacte de ce composant) les décalages, merci d'avance !
