Koyarwar ESP32 33/55 - Dige na Dijital ta amfani da kayan koyon IoT na SunFounder ESP32
A cikin wannan koyawa, za mu ƙirƙiri dice na dijital ta amfani da nuni mai kashi bakwai da ESP32 daga kayan aikin IoT na SunFounder. Aikin zai ba ka damar mirgina dice na kama-da-wane, yana samar da lambobi daga 1 zuwa 6 a danna maɓalli. Wannan hanya ce mai ban sha'awa don gano iyawar ESP32 yayin koyo game da haɗawa da nunin da maɓallai. Don ƙarin haske, tabbatar da duba bidiyon a (a cikin bidiyo a 0:00).
Bayanin Kayan Aiki
Babban kayan aikin wannan aikin sun haɗa da microcontroller na ESP32, rijistar motsi ta 74HC595, nuni mai kashi bakwai, da maɓalli. ESP32 microcontroller ne mai ƙarfi wanda ya haɗa Wi-Fi da Bluetooth, yana sa ya dace da aikace-aikacen IoT. Rijistar motsi ta 74HC595 tana ba mu damar sarrafa nuni mai kashi bakwai ta amfani da ƙananan filogi fiye da haɗa kowane sashi kai tsaye.
Nuni mai kashi bakwai yana nuna lambobi kuma ana sarrafa shi ta hanyar aika bayanai daga rijistar motsi. Ana amfani da maɓalli don kunna mirgina dice, yana samar da lambar da za a nuna. Lokacin da aka danna, maɓallin yana haɗawa da filogi 13 akan ESP32, wanda ke da resistor na ciki don kiyaye shi a matsayi mai girma lokacin da ba a danna ba.
Bayanan Datasheet
| Mai ƙera | Texas Instruments |
|---|---|
| Lambar sashi | 74HC595 |
| Wutar Logic/IO | 2 V zuwa 6 V |
| Wutar samarwa | 4.5 V zuwa 5.5 V |
| Fitarwa na yanzu (kowane tashar) | 6 mA max |
| Kololuwar yanzu (kowane tashar) | 35 mA max |
| Jagorar mitar PWM | Ba ya aiki |
| Ƙofofin logic na shigarwa | VIH ≥ 2 V, VIL ≤ 0.8 V |
| Ragewar wutar / RDS(on) / saturation | 0.5 V max |
| Iyakokin zafi | 150 °C |
| Kunshin | DIP-16 |
| Bayanan kula / bambance-bambance | Ana amfani da shi sosai a nunin dijital |
- Tabbatar da matakan wutar da suka dace (4.5 V zuwa 5.5 V) don aiki mai inganci.
- Ƙuntata fitarwa na yanzu don guje wa lalata rijistar motsi.
- Yi amfani da capacitors na decoupling kusa da filogin wutar don daidaita wutar.
- Haɗa nuni mai kashi bakwai daidai don guje wa kuskuren nuna lambobi.
- Duba wayoyi don haɗin da ba su da ƙarfi waɗanda zasu iya haifar da halin da ba a zata ba.
Umarnin Haɗin Waya

Don haɗa dice na dijital, fara da saita haɗin wutar. Haɗa ƙasa (layin shuɗi) akan breadboard ɗinka zuwa filogin ƙasa akan ESP32 kuma tabbatar da cewa duk wuraren ƙasa sun haɗu. Na gaba, haɗa filogi na 3.3V daga ESP32 zuwa layin wutar (layin ja) akan breadboard.
Don rijistar motsi ta 74HC595, tabbatar da cewa filogi 1 an haɗa shi da layin 3.3V, kuma filogi 8 zuwa ƙasa. Haɗa filogin fitarwa na bayanai (DS) zuwa filogi 25 akan ESP32, filogin agogon motsi (SHCP) zuwa filogi 26, da filogin agogon ajiya (STCP) zuwa filogi 27. Maɓallin ya kamata a haɗa shi tsakanin filogi 13 akan ESP32 da ƙasa, yana ba shi damar jawo filogi ƙasa lokacin da aka danna.
Misalan Lamba & Bayani
A cikin lambar, mun fara ayyana filogin da aka yi amfani da su don rijistar motsi da maɓallin. Filogin maɓallin an ayyana shi azaman buttonPin kuma an saita shi zuwa filogi 13 akan ESP32. Tsarin bayanai datArray ya ƙunshi wakilcin binary na lambobi 0-9 don nuni mai kashi bakwai.
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};
A cikin aikin setup(), mun saita filogin maɓallin zuwa yanayin shigarwa da filogin rijistar motsi zuwa yanayin fitarwa. Wannan yana shirya filogin don karanta shigarwa daga maɓallin da kuma aika bayanai zuwa nuni.
void setup ()
{
pinMode(buttonPin,INPUT);
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
Babban dabaru na shirin ana samunsa a cikin aikin loop(). Yana duba idan an danna maɓallin, yana samar da lambar da ba a sani ba, kuma yana kiran aikin show_number() don nuna lambar akan nuni mai kashi bakwai.
void loop()
{
if(digitalRead(buttonPin) == LOW)
{
int diceNumber = random(1, 7);
show_number(diceNumber);
delay(50);
}
}
Aikin show_number() yana aika ƙimar da ta dace daga tsarin bayanai zuwa rijistar motsi, wanda ke sarrafa sassan nuni don nuna lambar da aka samar. Wannan aikin yana da mahimmanci don amsawar gani lokacin da aka danna maɓallin.
Nuni / Abin da za ka Yi Tsammani
Lokacin da aka gama saitin kuma aka ɗora lambar, danna maɓallin zai samar da lambar da ba a sani ba tsakanin 1 zuwa 6, wanda za a nuna shi akan nunin sassan bakwai. Idan an haɗa komai daidai, nunin ya kamata ya nuna lamba a duk lokacin da aka danna maɓallin. Yi hattara da shigarwar da ke iyo; tabbatar da cewa an haɗa maɓallin da kyau zuwa ƙasa don guje wa ɗabi'a mara kyau (a cikin bidiyo a 1:30).
Lokutan Bidiyo
- 00:00 Fara
- 1:48 Gabatarwar aikin
- 3:40 Haɗin Waya don Digital Dice An Bayyana
- 13:16 Lambar Arduino don Digital Dice an bayyana
- 19:19 Zaɓin Board na ESP32 da tashar COM a cikin Arduino IDE
- 21:00 Nunin Digital Dice
- 22:15 Gyaran Lambar Arduino
// 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);
}
Common Course Links
Common Course Files
Albarkatun da kuma shafukan da za a duba
-
TakarduESP32 Tutorial 33/55 - SunFounder doc page for digital dicedocs.sunfounder.com
Fayiloli📁
Babu fayiloli da ake da su.