Search Code

Tutoriel ESP32 33/55 - Dé numérique utilisant le kit d'apprentissage IoT ESP32 de SunFounder

Tutoriel ESP32 33/55 - Dé numérique utilisant le kit d'apprentissage IoT ESP32 de SunFounder

Na boyekoli oyo, tokosala dési ya digital na kosalela display ya ba segments sambo mpe ESP32 oyo ewuti na kit ya SunFounder ya koyekola IoT. Projɛ oyo ekopesa yo nzela ya kobwaka dési ya virtuel, kobimisa ba nombres longwa na 1 kino na 6 ntango okonyata bouton. Oyo ezali nzela ya kitoko ya koyekola makoki ya ESP32 ntango ozali koyekola kosangisa ba displays mpe ba boutons. Mpo na bososoli ya koleka, tala vidéo na (na vidéo na 0:00).

ESP32-33_digital-dice-main

Makambo ya Matériel

Ba composants ya liboso mpo na projɛ oyo ezali na microcontrôleur ESP32, registre ya décalage 74HC595, display ya ba segments sambo, mpe bouton ya kopusa. ESP32 ezali microcontrôleur ya makasi oyo esangisi Wi-Fi mpe Bluetooth, oyo esalaka ete ekoka mpo na ba applications ya IoT. Registre ya décalage 74HC595 esalaka ete tokoka kokamba display ya ba segments sambo na ba pins mingi te koleka kosangisa segment na segment.

Display ya ba segments sambo emonisaka ba nombres mpe ekambamaka na kotinda ba données longwa na registre ya décalage. Bouton ya kopusa esalelamaka mpo na kobandisa kobwaka dési, kobimisa nombre ya libaku oyo ekomonisama. Ntango epusami, bouton esangisaka na pin 13 na ESP32, oyo ezali na résistance ya kokatisa oyo ezali kati na kati mpo na kokeba ete ezala na état ya likolo ntango epusami te.

Biloko ya Datasheet

Mosali Texas Instruments
Numéro ya partie 74HC595
Tension ya logique/IO 2 V kino 6 V
Tension ya alimentation 4.5 V kino 5.5 V
Courant ya sortie (na canal) 6 mA max
Courant ya pointe (na canal) 35 mA max
Gidans ya fréquence PWM Esengeli te
Ba seuils ya logique ya entrée VIH ≥ 2 V, VIL ≤ 0.8 V
Chute ya tension / RDS(on) / saturation 0.5 V max
Ba limites ya température 150 °C
Paquet DIP-16
Ba notes / ba variantes Esalelamaka mingi na ba displays ya numérique

 

  • Kokamba ete ba niveaux ya tension ezala ya malamu (4.5 V kino 5.5 V) mpo na fonctionnement ya semba.
  • Kokitisa courant ya sortie mpo na kobatela registre ya décalage.
  • Salela ba condensateurs ya découplage pembeni ya ba pins ya puissance mpo na kokitisa tension.
  • Kosangisa display ya ba segments sambo na ndenge ya malamu mpo na kokima koyebisa ba nombres na ndenge ya mabe.
  • Kotala ba connexions mpo na ba connexions ya semba te oyo ekoki komema na bizaleli ya kozanga.

Ba Instructions ya Câblage

ESP32-33_digital-dice-wiring

Mpo na kosala câblage ya dési ya digital, banda na kosala ba connexions ya puissance. Sangisa terre (ligne ya bleu) na breadboard na pin ya terre na ESP32 mpe kokamba ete ba points nyonso ya terre esangisama. Na sima, sangisa pin ya 3.3V longwa na ESP32 na rail ya puissance (ligne ya motane) na breadboard.

ESP32-33_digital-dice-schematic

Mpo na registre ya décalage 74HC595, kokamba ete pin 1 esangisama na rail ya 3.3V, mpe pin 8 na terre. Sangisa pin ya sortie ya données (DS) na pin 25 na ESP32, pin ya horloge ya décalage (SHCP) na pin 26, mpe pin ya horloge ya stockage (STCP) na pin 27. Bouton ya kopusa esengeli kosangisama kati na pin 13 na ESP32 mpe terre, mpo na kokitisa pin na état ya basi ntango epusami.

Ba Exemples ya Code & Explication

Na code, liboso tosengeli koyeba ba pins oyo esalelamaka mpo na registre ya décalage mpe bouton. Pin ya bouton ekomami buttonPin mpe esalelami na pin 13 na ESP32. Tableau ya données datArray ezali na ba représentations binaires ya ba nombres 0-9 mpo na display ya ba segments sambo.


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};

Na fonction setup(), tosengeli kotia pin ya bouton na mode ya entrée mpe ba pins ya registre ya décalage na mode ya sortie. Oyo esalelamaka mpo na kobongisa ba pins mpo na kotanga entrée longwa na bouton mpe mpo na kotinda données na display.


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

Logique ya liboso ya programme ezali na fonction loop(). Ezali kotala soki bouton epusami, kobimisa nombre ya libaku, mpe kobenga fonction show_number() mpo na komonisa nombre na display ya ba segments sambo.


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

Fonction show_number() etindaka valeur ya malamu longwa na tableau ya données na registre ya décalage, oyo na sima ekambaka ba segments ya display mpo na komonisa nombre oyo ebimisami. Fonction oyo ezali ya ntina mingi mpo na réaction ya visual ntango bouton epusami.

74HC595 LED Display: Seven-Segment Explained
74HC595 LED Display: Seven Segment explained

Démonstration / Nini Okoki Kozela

Ntango bobongoli esili mpe code ekomi na yango, kobeta bouton yango ekobimisa motángo moko na kati ya 1 téé 6, oyo ekomonisama na display ya ba segments sambo. Soki nyonso esangisami malamu, display esengeli komonisa motángo moko na mokolo nyonso oyo bouton ebukami. Kozala na bokébi na ba entrées oyo ezangi kozala na valeur; sɔ́lɔ́kɔ́tɔ́ ete bouton esangisami malamu na mabele mpo na kokima makambo ya mabe (na vidéo na 1:30).

Biloko ya ntango na Vidéo

  • 00:00 Ebandeli
  • 1:48 Bolakisi ya projɛ
  • 3:40 Bosangisi ya ba fils mpo na Digital Dice
  • 13:16 Code ya Arduino mpo na Digital Dice
  • 19:19 Kopona board ya ESP32 mpe port ya COM na Arduino IDE
  • 21:00 Bomekoli ya Digital Dice
  • 22:15 Kobongisa Code ya Arduino

Images

74HC595 LED Display: Seven-Segment Explained
74HC595 LED Display: Seven Segment explained
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++
// Define the pins used for the 74hc595 and button
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP 
const int DS = 25; //DS 
const int buttonPin = 13;

// Define an array of values to display numbers on a 7-segment display
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int buttonState = false;

void setup ()
{
  // Set the button pin to input mode
  pinMode(buttonPin,INPUT); 

  //Set pins to 74hc595
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}

void loop()
{
  // Check if the button is pressed
  if(digitalRead(buttonPin) == LOW)
  {
    // Generate a random number between 1 and 6
    int diceNumber = random(1, 7);

     // Display the number on the 7-segment display
    show_number(diceNumber);

    // Delay for 50 milliseconds
    delay(50);
  }
}

// Function to display a number on a 7-segment display
void show_number(int num)
{
  // Ground ST_CP and hold low for as long as you are transmitting
  digitalWrite(STcp, LOW);

  // Send the data for the number to the shift register
  shiftOut(DS, SHcp, MSBFIRST, datArray[num]);

  // Pull the ST_CP to save the data
  digitalWrite(STcp, HIGH);
}

Mokili na bisika

Fichiers📁

Aucun fichier disponible.