Note
Bonjour, bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi & Arduino & ESP32 sur Facebook ! Plongez plus profondément dans Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre & Partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux avant-premières.
Réductions spéciales : Profitez de réductions exclusives sur nos derniers produits.
Promotions festives et cadeaux : Participez à des cadeaux et des promotions de fêtes.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !
2.4 Microchip - 74HC595¶
Bienvenue dans ce projet excitant ! Dans ce projet, nous utiliserons la puce 74HC595 pour contrôler un affichage défilant de 8 LEDs.
Imaginez déclencher ce projet et assister à un flux lumineux captivant, comme un arc-en-ciel scintillant sautant entre les 8 LEDs. Chaque LED s’allume une par une et s’éteint rapidement, tandis que la LED suivante continue de briller, créant un effet dynamique et magnifique.
En utilisant intelligemment la puce 74HC595, nous pouvons contrôler les états de marche et d’arrêt de plusieurs LEDs pour obtenir l’effet de défilement. Cette puce a plusieurs broches de sortie qui peuvent être connectées en série pour contrôler la séquence d’illumination des LEDs. De plus, grâce à l’extensibilité de la puce, nous pouvons facilement ajouter plus de LEDs à l’affichage défilant, créant des effets encore plus spectaculaires.
Composants nécessaires
Pour ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
|---|---|---|
Kit de démarrage ESP32 |
320+ |
Vous pouvez également les acheter séparément aux liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
Broches disponibles
Voici une liste des broches disponibles sur la carte ESP32 pour ce projet.
Broches disponibles |
IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23 |
Schéma
Lorsque MR (pin10) est au niveau haut et CE (pin13) est au niveau bas, les données sont entrées sur le front montant de SHcp et vont au registre de mémoire par le front montant de SHcp.
Si les deux horloges sont connectées ensemble, le registre à décalage est toujours une impulsion plus tôt que le registre de mémoire.
Il y a une broche d’entrée de décalage série (DS), une broche de sortie série (Q7”) et un bouton de réinitialisation asynchrone (niveau bas) dans le registre de mémoire.
Le registre de mémoire produit un bus avec un parallèle 8 bits et dans trois états.
Lorsque OE est activé (niveau bas), les données du registre de mémoire sont sorties sur le bus (Q0 ~ Q7).
Câblage
Code
Note
Ouvrez le fichier
2.4_74hc595.inosous le cheminesp32-starter-kit-main\c\codes\2.4_74hc595.Après avoir sélectionné la carte (ESP32 Dev Module) et le port approprié, cliquez sur le bouton Téléverser.
Une fois que vous avez terminé de téléverser le code sur la carte ESP32, vous pouvez voir les LEDs s’allumer une par une.
Comment ça marche ?
Déclarez un tableau, stockez plusieurs nombres binaires de 8 bits qui sont utilisés pour changer l’état de fonctionnement des huit LEDs contrôlées par 74HC595.
int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};
Fonction
loop().void loop() { for(int num = 0; num <10; num++) { digitalWrite(STcp,LOW); //Réglez ST_CP et maintenez-le bas aussi longtemps que vous transmettez shiftOut(DS,SHcp,MSBFIRST,datArray[num]); digitalWrite(STcp,HIGH); //Tirez le ST_CP pour sauvegarder les données delay(1000); } }
Parcourt le tableau
datArray[], en envoyant séquentiellement les valeurs binaires au registre à décalage.Les commandes
digitalWrite(STcp, LOW)etdigitalWrite(STcp, HIGH)verrouillent les données dans le registre de stockage.La fonction
shiftOut()envoie les valeurs binaires dedatArray[]au registre à décalage en utilisant la broche de données (DS) et la broche d’horloge du registre à décalage (SHcp).MSBFIRSTsignifie déplacer à partir des bits de poids fort.Ensuite, créez une pause d’une seconde entre chaque mise à jour du motif LED.