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 !
6.2 Dé de Numérique¶
Ici, nous utilisons un bouton, un afficheur 7 segments et un 74hc595 pour créer un dé électronique. Chaque fois que le bouton est pressé, un nombre aléatoire compris entre 1 et 6 est généré et affiché sur l’afficheur 7 segments.
Composants requis
Pour ce projet, nous aurons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DE CE KIT |
LIEN |
|---|---|---|
3 in 1 Starter Kit |
380+ |
Vous pouvez également les acheter séparément via les liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
Schéma
Câblage
Code
Note
Ouvrez le fichier
6.2.electronic_dice.inositué dans le dossier3in1-kit\basic_project\6.2.electronic_dice.Ou copiez ce code dans Arduino IDE.
Ou téléversez le code via l”Éditeur Web Arduino.
Lorsque le code est téléversé avec succès, l’afficheur 7 segments affichera 0-7 dans un défilement rapide, et lorsque vous appuierez sur le bouton, il affichera un nombre aléatoire et arrêtera de défiler. L’affichage défilant recommence lorsque vous appuyez à nouveau sur le bouton.
Comment ça fonctionne ?
Ce projet est basé sur 5.10 ShiftOut(Affichage à segments) avec un bouton pour démarrer/pauser l’affichage défilant sur l’afficheur 7 segments.
Initialisez chaque broche et lisez la valeur du bouton.
void setup () { ... attachInterrupt(digitalPinToInterrupt(buttonPin), rollDice, FALLING); }
L’interruption est utilisée ici pour lire l’état du bouton. La valeur par défaut de
buttonPinest basse, qui change de bas à haut lorsque le bouton est pressé.rollDicereprésente la fonction à appeler lorsque l’interruption est déclenchée, elle est utilisée pour basculer la valeur de la variablestate.FALLINGsignifie que l’interruption est déclenchée lorsque lebuttonPinpasse de bas à haut.
Lorsque la variable
stateest à 0, la fonctionshowNumber()est appelée pour faire afficher aléatoirement un nombre entre 1 et 7 sur l’afficheur 7 segments.void loop() { if (state == 0) { showNumber((int)random(1, 7)); delay(50); } }
À propos de la fonction
rollDice().void rollDice() { state = !state; }
Lorsque cette fonction est appelée, elle bascule la valeur de state, par exemple 1 la dernière fois et 0 cette fois.
À propos de la fonction
showNumber().void showNumber(int num) { digitalWrite(STcp, LOW); //ground ST_CP and hold low for as long as you are transmitting shiftOut(DS, SHcp, MSBFIRST, datArray[num]); //return the latch pin high to signal chip that it //no longer needs to listen for information digitalWrite(STcp, HIGH); //pull the ST_CPST_CP to save the data }
Ceci est le code à l’intérieur de
loop()dans le projet 5.10 ShiftOut(Affichage à segments) intégré dans la fonctionshowNumber().