Note

Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi 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 et 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 aperçus.

  • Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.

  • Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.

👉 Prêt à explorer et à créer avec nous ? Cliquez [ ici ] et rejoignez-nous aujourd’hui !

5.9 ShiftOut(LED)

La fonction shiftOut() permet au 74HC595 de produire 8 signaux numériques. Elle émet le dernier bit du nombre binaire sur Q0, et la sortie du premier bit sur Q7. En d’autres termes, écrire le nombre binaire « 00000001 » fera que Q0 émette un niveau haut et que Q1~Q7 émettent un niveau bas.

Dans ce projet, vous apprendrez à utiliser le 74HC595. Le 74HC595 comprend un registre de décalage de 8 bits et un registre de stockage avec des sorties parallèles à trois états. Il convertit une entrée série en sortie parallèle, vous permettant ainsi d’économiser des ports IO d’un MCU.

Plus précisément, le 74hc595 peut remplacer 8 broches pour la sortie de signal numérique en écrivant un nombre binaire de 8 bits.

Composants requis

Dans ce projet, nous avons besoin des composants suivants.

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ARTICLES DANS CE KIT

LIEN

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

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

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

Carte SunFounder R3

ACHETER

Plaque d’essai

ACHETER

Fils de Cavalier

ACHETER

Résistance

ACHETER

LED

ACHETER

74HC595

ACHETER

Schéma

../_images/circuit_6.4_74hc595.png
  • Lorsque MR (broche 10) est au niveau haut et OE (broche 13) au niveau bas, les données sont entrées sur le bord montant de SHcp et vont au registre mémoire via le bord montant de SHcp.

  • Si les deux horloges sont connectées ensemble, le registre de décalage est toujours un pulse en avance sur le registre mémoire.

  • Il y a une broche d’entrée de décalage série (Ds), une broche de sortie série (Q) et un bouton de réinitialisation asynchrone (niveau bas) dans le registre mémoire.

  • Le registre mémoire émet un bus avec un 8 bits parallèle et en trois états.

  • Lorsque OE est activé (niveau bas), les données dans le registre mémoire sont émises vers le bus(Q0 ~ Q7).

Câblage

../_images/74hc595_bb.jpg

Code

Note

  • Ouvrez le fichier 5.9.shiftout_led.ino se trouvant dans 3in1-kit\basic_project\5.9.shiftout_led.

  • Ou copiez ce code dans Arduino IDE.

  • Ou téléchargez le code via Arduino Web Editor.

Une fois les codes téléchargés sur la carte R3, vous pouvez voir les LED s’allumer l’une après l’autre.

Comment ça fonctionne ?

Déclarez un tableau, stockez plusieurs nombres binaires de 8 bits utilisés pour changer l’état de fonctionnement des huit LED contrôlées par le 74HC595.

int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};

Mettez STcp à un niveau bas puis à un niveau haut. Cela générera une impulsion de bord montant sur STcp.

digitalWrite(STcp, LOW);

shiftOut() est utilisé pour décaler un octet de données bit par bit, ce qui signifie décaler un octet de données dans datArray[num] vers le registre de décalage avec la broche DS. MSBFIRST indique de déplacer les bits du plus significatif au moins significatif.

shiftOut(DS,SHcp,MSBFIRST,datArray[num]);

Après l’exécution de digitalWrite(STcp, HIGH), STcp sera sur un bord montant. À ce moment, les données dans le registre de décalage seront transférées vers le registre mémoire.

digitalWrite(STcp,HIGH);

Un octet de données sera transféré dans le registre mémoire après 8 opérations. Ensuite, les données du registre mémoire sont envoyées au bus (Q0-Q7). Par exemple, un shiftOut de B00000001 allumera la LED contrôlée par Q0 et éteindra les LED contrôlées par Q1 à Q7.