Tutoriel ESP32 33/55 - Dés numériques avec le kit d'apprentissage IoT ESP32 de SunFounder

Tutoriel ESP32 33/55 - Dés numériques avec le kit d'apprentissage IoT ESP32 de SunFounder

Dans ce tutoriel, nous allons créer un dé numérique en utilisant un affichage à sept segments et l'ESP32 du kit d'apprentissage IoT de SunFounder. Le projet vous permettra de lancer un dé virtuel, générant des nombres de 1 à 6 à la pression d'un bouton. C'est une excellente façon d'explorer les capacités de l'ESP32 tout en apprenant à interfacer avec des affichages et des boutons. Pour une clarté supplémentaire, assurez-vous de consulter la vidéo à (dans la vidéo à 0:00).

ESP32-33_dés-numériques-principal

Matériel expliqué

Les principaux composants de ce projet comprennent le microcontrôleur ESP32, un registre à décalage 74HC595, un affichage à sept segments et un bouton poussoir. L'ESP32 est un microcontrôleur puissant qui intègre le Wi-Fi et le Bluetooth, ce qui le rend adapté aux applications IoT. Le registre à décalage 74HC595 nous permet de contrôler l'affichage à sept segments en utilisant moins de broches que si nous connectons chaque segment directement.

L'affichage à sept segments montre des chiffres et est contrôlé en envoyant des données depuis le registre à décalage. Le bouton poussoir est utilisé pour déclencher le lancer de dés, générant un numéro aléatoire qui sera affiché. Lorsqu'il est pressé, le bouton se connecte à la broche 13 de l'ESP32, qui a une résistance de maintien interne pour le garder dans un état haut lorsqu'il n'est pas pressé.

Détails de la fiche technique

Fabricant Texas Instruments
Numéro de pièce 74HC595
Tension logique/IO 2 V à 6 V
Tension d'alimentation 4,5 V à 5,5 V
Courant de sortie (par canal) 6 mA max
Courant de crête (par canal) 35 mA max
Directive sur la fréquence PWM Non applicable
Seuils logiques d'entrée VIH≥ 2 V, VIL≤ 0,8 V
Chute de tension / RDS(on)/ saturation 0,5 V max
Limites thermiques 150 °C
Colis DIP-16
Remarques / variantes Souvent utilisé dans les écrans numériques

  • Assurez-vous de niveaux de tension appropriés (4,5 V à 5,5 V) pour un fonctionnement fiable.
  • Limiter le courant de sortie pour éviter d'endommager le registre à décalage.
  • Utilisez des condensateurs de découplage près des broches d'alimentation pour stabiliser la tension.
  • Connectez correctement l'afficheur à sept segments pour éviter une mauvaise représentation des chiffres.
  • Vérifiez le câblage pour des connexions lâches qui peuvent entraîner un comportement inattendu.

Instructions de câblage

ESP32-33_digital-dice-wiring

Pour câbler les dés numériques, commencez par établir les connexions d'alimentation. Connectez la masse (ligne bleue) sur votre plaque d'essai à la broche de masse sur l'ESP32 et assurez-vous que tous les points de masse sont interconnectés. Ensuite, connectez une broche de 3,3 V de l'ESP32 au rail d'alimentation (ligne rouge) de la plaque d'essai.

ESP32-33_schéma_de_dés_numériques

Pour le registre à décalage 74HC595, assurez-vous que la broche 1 est connectée au rail de 3,3 V et que la broche 8 est connectée à la terre. Connectez la broche de sortie de données (DS) à la broche 25 sur l'ESP32, la broche de l'horloge de décalage (SHCP) à la broche 26, et la broche de l'horloge de stockage (STCP) à la broche 27. Le bouton-poussoir doit être connecté entre la broche 13 sur l'ESP32 et la terre, permettant ainsi de tirer la broche vers le bas lorsqu'il est enfoncé.

Exemples de code et guide étape par étape

Dans le code, nous définissons d'abord les broches utilisées pour le registre à décalage et le bouton. La broche du bouton est définie commebuttonPinet est connecté à la broche 13 sur l'ESP32. Le tableau de donnéesdatArraycontient les représentations binaires des chiffres 0-9 pour l'affichage à sept segments.


const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP 
const int DS = 25; //DS 
const int buttonPin = 13;
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

Dans lesetup()fonction, nous définissons la broche du bouton en mode d'entrée et les broches du registre à décalage en mode de sortie. Cela prépare les broches à lire les informations du bouton et à envoyer des données à l'affichage.


void setup ()
{
  pinMode(buttonPin,INPUT); 
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}

La logique principale du programme se trouve dans leloop()fonction. Elle vérifie si le bouton est pressé, génère un nombre aléatoire et appelle leshow_number()fonction pour afficher le nombre sur l'afficheur à sept segments.


void loop()
{
  if(digitalRead(buttonPin) == LOW)
  {
    int diceNumber = random(1, 7);
    show_number(diceNumber);
    delay(50);
  }
}

Leshow_number()la fonction envoie la valeur appropriée du tableau de données au registre à décalage, qui contrôle ensuite les segments de l'affichage pour montrer le numéro généré. Cette fonction est cruciale pour le retour visuel lorsque le bouton est pressé.

Affichage LED 74HC595 : Explication du sept segments
Affichage LED 74HC595 : Explication du sept segments

Démonstration / À quoi s'attendre

Lorsque la configuration est terminée et que le code est chargé, appuyer sur le bouton générera un nombre aléatoire entre 1 et 6, qui sera affiché sur l'afficheur à sept segments. Si tout est correctement câblé, l'afficheur devrait montrer un nombre chaque fois que le bouton est pressé. Faites attention aux entrées flottantes ; assurez-vous que le bouton est correctement connecté à la terre pour éviter un comportement erratique (dans la vidéo à 1:30).

Horodatages vidéo

  • 00:00 Début
  • 1:48 Introduction au projet
  • 3:40 Câblage pour dés numériques expliqué
  • Code Arduino pour le dé numérique expliqué :16
  • 19:19 Sélection de la carte ESP32 et du port COM dans l'IDE Arduino
  • 21:00 Démonstration de dés numériques
  • 22:15 Correction du code Arduino

Images

Affichage LED 74HC595 : explication du sept segments
Affichage LED 74HC595 : explication du sept segments
ESP32-33_digital-dice-wiring
ESP32-33_digital-dice-wiring
ESP32-33_digital-dice-main
ESP32-33_digital-dice-main
ESP32-33_digital-dice-schematic
ESP32-33_digital-dice-schematic
834-ESP32 Tutorial 33/55- Arduino code for digital dice
Langue: C++
Copié !

Ressources et références

Fichiers📁

Aucun fichier disponible.