د ESP32 ټیوټوریل 33/55 - د سان فاونډر د ESP32 IoT زده کړې کټ په کارولو سره ډیجیټل ډایس
په دې ټیوټوریل کې به موږ د اوو-برخو ښودونکي (seven-segment display) او د SunFounder د IoT زده کړې کټ څخه د ESP32 په کارولو سره ډیجیټل ډایس جوړ کړو. دا پروژه به تاسو ته اجازه درکړي چې مجازی ډایس وګرځوئ، چې د تڼۍ په فشارولو سره له 1 څخه تر 6 پورې شمیرې تولیدوي. دا د ESP32 د وړتیاوو د سپړلو لپاره یوه ښه لار ده، پداسې حال کې چې د ښودونکو او تڼیو سره د اړیکې په اړه زده کړه کوئ. د نورو روښانتیا لپاره، ډاډ ترلاسه کړئ چې ویډیو وګورئ (په ویډیو کې په 0:00).
هارډویر تشریح شوی
د دې پروژې اصلي برخې د ESP32 مایکروکنټرولر، د 74HC595 شفټ راجستر، د اوو-برخو ښودونکی، او یوه فشارونکې تڼۍ شامل دي. ESP32 یو پیاوړی مایکروکنټرولر دی چې Wi-Fi او Bluetooth مدغم کوي، چې دا د IoT غوښتنلیکونو لپاره مناسب کوي. د 74HC595 شفټ راجستر موږ ته اجازه راکوي چې د اوو-برخو ښودونکی د هرې برخې په مستقیم ډول له نښلولو څخه د کم پنونو په کارولو سره کنټرول کړو.
د اوو-برخو ښودونکی شمیرې ښیې او د شفټ راجستر څخه د معلوماتو په لیږلو سره کنټرول کیږي. فشارونکې تڼۍ د ډایس د ګرځولو لپاره کارول کیږي، چې یوه تصادفي شمیره تولیدوي چې به ښودل کیږي. کله چې فشار ورکړل شي، تڼۍ په ESP32 کې پن 13 سره نښلوي، کوم چې داخلي پل-اپ ریزسټر لري ترڅو دا په لوړ حالت کې وساتي کله چې فشار نه وي ورکړل شوی.
ډیټاشیټ تفصیلات
| جوړونکی | Texas Instruments |
|---|---|
| د برخې شمیره | 74HC595 |
| منطق/IO ولټاژ | 2 V څخه تر 6 V |
| د بریښنا ولټاژ | 4.5 V څخه تر 5.5 V |
| د تولید جریان (په هر چینل) | اعظمي 6 mA |
| د لوړ جریان (په هر چینل) | اعظمي 35 mA |
| د PWM فریکونسۍ لارښود | د تطبیق وړ نه دی |
| د داخلیدو منطق حدونه | VIH ≥ 2 V, VIL ≤ 0.8 V |
| د ولټاژ کمښت / RDS(on) / سنتریت | اعظمي 0.5 V |
| حرارتي حدونه | 150 °C |
| بسته | DIP-16 |
| یادښتونه / ډولونه | په ډیجیټل ښودونکو کې په عام ډول کارول کیږي |
- د باوري عملیاتو لپاره د مناسب ولټاژ کچې (4.5 V څخه تر 5.5 V) ډاډ ترلاسه کړئ.
- د شفټ راجستر د زیان رسولو څخه مخنیوي لپاره د تولید جریان محدود کړئ.
- د ولټاژ د ثبات لپاره د بریښنا پنونو ته نږدې د ډیکپلینګ کپاسیټرونه وکاروئ.
- د شمیرو د غلط ښودلو څخه مخنیوي لپاره د اوو-برخو ښودونکی په سمه توګه وصل کړئ.
- د نرمو اړیکو لپاره تارونه وګورئ چې ممکن غیر متوقع چلند رامینځته کړي.
د تارونو نښلولو لارښوونې

د ډیجیټل ډایس د تارونو د نښلولو لپاره، د بریښنا اړیکو په جوړولو سره پیل وکړئ. په خپل بریډبورډ کې ځمکه (نیلي کرښه) د ESP32 په ځمکني پن سره وصل کړئ او ډاډ ترلاسه کړئ چې ټول ځمکني ټکي سره تړلي دي. بیا، د ESP32 څخه یو 3.3V پن د بریډبورډ په بریښنا ریل (سور کرښه) سره وصل کړئ.
د 74HC595 شفټ راجستر لپاره، ډاډ ترلاسه کړئ چې پن 1 د 3.3V ریل سره وصل دی، او پن 8 ځمکې ته. د معلوماتو د تولید پن (DS) د ESP32 په پن 25 سره وصل کړئ، د شفټ کلاک پن (SHCP) په پن 26 سره، او د ذخیره کولو کلاک پن (STCP) په پن 27 سره. فشارونکې تڼۍ باید د ESP32 په پن 13 او ځمکې ترمنځ وصل شي، چې کله فشار ورکړل شي پن ټیټ کړي.
د کوډ مثالونه او تشریح
په کوډ کې، موږ لومړی د شفټ راجستر او تڼۍ لپاره کارول شوي پنونه تعریف کوو. د تڼۍ پن د buttonPin په توګه تعریف شوی او د ESP32 په پن 13 ټاکل شوی. د معلوماتو ارې datArray د اوو-برخو ښودونکي لپاره د 0-9 شمیرو بائنری نمایشونه لري.
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};
په setup() فنکشن کې، موږ د تڼۍ پن د داخلیدو حالت ته او د شفټ راجستر پنونه د تولید حالت ته ټاکو. دا پنونه د تڼۍ څخه د داخلیدو لوستلو او ښودونکي ته د معلوماتو لیږلو لپاره چمتو کوي.
void setup ()
{
pinMode(buttonPin,INPUT);
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
د پروګرام اصلي منطق په loop() فنکشن کې موندل کیږي. دا ګوري چې ایا تڼۍ فشار شوې ده، یوه تصادفي شمیره تولیدوي، او د show_number() فنکشن غږوي ترڅو شمیره د اوو-برخو په ښودونکي کې وښیې.
void loop()
{
if(digitalRead(buttonPin) == LOW)
{
int diceNumber = random(1, 7);
show_number(diceNumber);
delay(50);
}
}
د show_number() فنکشن د معلوماتو ارې څخه مناسب ارزښت شفټ راجستر ته لیږي، کوم چې بیا د ښودونکي برخې کنټرولوي ترڅو تولید شوې شمیره وښیې. دا فنکشن د بصری فیډبیک لپاره خورا مهم دی کله چې تڼۍ فشارول کیږي.
ښودنه / هغه څه چې تمه یې لرئ
کله چې تنظیم بشپړ شي او کوډ اپلوډ شي، د تڼۍ فشارول به د 1 او 6 ترمنځ یوه تصادفي شمېره تولید کړي، کومه چې به په اووه-برخې نندارې کې ښکاره شي. که هر څه په سمه توګه تار شوي وي، ننداره باید هر ځل چې تڼۍ فشارول شي یوه شمېره وښیې. د تېروونکو داخلونو څخه محتاط اوسئ؛ ډاډ ترلاسه کړئ چې تڼۍ په سمه توګه ځمکې (ګراونډ) سره وصل ده ترڅو له بې نظمۍ څخه مخنیوی وشي (په ویډیو کې په 1:30 کې).
د ویډیو وخت نښې
- 00:00 پیل
- 1:48 د پروژې پېژندنه
- 3:40 د ډیجیټل ډایس لپاره د تارونو تشریح
- 13:16 د ډیجیټل ډایس لپاره د آردوینو کوډ تشریح
- 19:19 په آردوینو IDE کې د ESP32 بورډ او COM پورټ انتخاب
- 21:00 د ډیجیټل ډایس ننداره
- 22:15 د آردوینو کوډ سمول
// 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
سرچینې او حوالې
-
اسنادESP32 Tutorial 33/55- SunFounder doc page for digital dicedocs.sunfounder.com
فایلونه📁
هیڅ فایل شتون نلري.