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+

ESP32 Starter Kit

Vous pouvez également les acheter séparément aux liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

ESP32 carte

Acheter

Extension de caméra ESP32

ACHETER

Plaque d’essai

Acheter

Fils de connexion

Acheter

Résistance

Acheter

LED

Acheter

74HC595

Acheter

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

../../_images/circuit_2.4_74hc595_led.png
  • 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

../../_images/2.4_74hc595_bb.png

Code

Note

  • Ouvrez le fichier 2.4_74hc595.ino sous le chemin esp32-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.

  • Toujours afficher « Unknown COMxx » ?

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 ?

  1. 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};
    
  2. 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) et digitalWrite(STcp, HIGH) verrouillent les données dans le registre de stockage.

    • La fonction shiftOut() envoie les valeurs binaires de datArray[] au registre à décalage en utilisant la broche de données (DS) et la broche d’horloge du registre à décalage (SHcp). MSBFIRST signifie déplacer à partir des bits de poids fort.

    • Ensuite, créez une pause d’une seconde entre chaque mise à jour du motif LED.