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+

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

Bouton

ACHETER

74HC595

ACHETER

Affichage 7 segments

ACHETER

Schéma

../_images/circuit_8.9_eeprom.png

Câblage

../_images/wiring_electronic_dice.png

Code

Note

  • Ouvrez le fichier 6.2.electronic_dice.ino situé dans le dossier 3in1-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.

  1. 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 buttonPin est basse, qui change de bas à haut lorsque le bouton est pressé.

    • rollDice représente la fonction à appeler lorsque l’interruption est déclenchée, elle est utilisée pour basculer la valeur de la variable state.

    • FALLING signifie que l’interruption est déclenchée lorsque le buttonPin passe de bas à haut.

  2. Lorsque la variable state est à 0, la fonction showNumber() 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);
        }
    }
    
  3. À 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.

  4. À 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 fonction showNumber().