Mafunzo ya ESP32 10/55 - Kikaunta cha dijiti kwa kutumia Seven Segment Display 74HC595 - Kifurushi cha Kujifunza cha ESP32 IoT
Katika mafunzo haya, tutaunda kikokotoo cha dijitali kwa kutumia onyesho la sehemu saba linalodhibitiwa na microcontroller ya ESP32. Kikokotoo kitaongezeka kutoka 0 hadi 9 na kisha kupungua kurudi 0, kikitoa mwonekano wazi wa mchakato wa kuhesabu. Pia tutachunguza jinsi ya kuwasha sehemu binafsi na kuonyesha herufi kwenye onyesho la sehemu saba.

Mradi huu unatumia rejista ya mabadiliko ya 74HC595 kudhibiti onyesho, ikituruhusu kusimamia sehemu kwa ufanisi bila kutumia pini nyingi za GPIO kwenye ESP32. Kwa kutuma thamani za binary kwenye rejista ya mabadiliko, tunaweza kuwasha sehemu zinazolingana kuwakilisha nambari na herufi. Kwa uelewa wa kina wa mchakato, unaweza kurejelea video (katika video saa 03:15).
Vifaa Vimeelezwa
Vipengele vikuu vya mradi huu vinajumuisha microcontroller ya ESP32, rejista ya mabadiliko ya 74HC595, na onyesho la sehemu saba. ESP32 ni microcontroller yenye nguvu yenye uwezo wa Wi-Fi na Bluetooth uliojengewa ndani, na kuifanya kufaa kwa miradi ya IoT. 74HC595 ni rejista ya mabadiliko inayoturuhusu kudhibiti matokeo mengi kwa kutumia pini chache tu za kuingiza. Inafanya kazi kwa kuchukua data ya mfululizo na kuibadilisha kuwa matokeo sambamba, ambayo ni bora kwa kuendesha onyesho la sehemu saba.
Onyesho la sehemu saba lina LED saba binafsi zilizopangwa katika muundo wa nane. Kila sehemu inaweza kuwashwa au kuzimwa kwa kutuma thamani sahihi ya binary kwenye rejista ya mabadiliko. Kwa mfano, kuonyesha nambari 0, sehemu zote isipokuwa ya katikati (G) zinahitaji kuwashwa.
Maelezo ya Datasheet
| Mtengenezaji | Texas Instruments |
|---|---|
| Nambari ya sehemu | 74HC595 |
| Voltage ya Logic/IO | 2 V hadi 6 V |
| Voltage ya usambazaji | 2 V hadi 6 V |
| Mkondo wa pato (kwa kila chaneli) | 6 mA |
| Mkondo wa kilele (kwa kila chaneli) | 35 mA |
| Mwongozo wa mzunguko wa PWM | Hadi 1 kHz |
| Vizingiti vya mantiki ya kuingiza | 0.3 VCC hadi 0.7 VCC |
| Kushuka kwa voltage / RDS(on) / kueneza | 0.2 V max |
| Mipaka ya joto | 125 °C |
| Kifurushi | DIP-16 |
| Vidokezo / lahaja | Inapatikana katika vifurushi mbalimbali |
- Hakikisha usambazaji sahihi wa voltage (2 V hadi 6 V).
- Punguza mkondo wa pato ili kuzuia joto kupita kiasi.
- Tumia resistors tofauti kwa kila sehemu kwa mwangaza bora.
- Kuwa makini na wiring ili kuepuka mfupi na miunganisho isiyo sahihi.
- Fuata pinout kwa uangalifu ili kuepuka usanidi usio sahihi.
Maagizo ya Wiring

Anza kwa kuweka breadboard yako. Unganisha reli ya ardhi (mstari wa bluu) na reli ya nguvu (mstari mwekundu). Ardhi inapaswa kuunganishwa kwenye mstari wa bluu upande mmoja wa breadboard, wakati nguvu inapaswa kuunganishwa kwenye mstari mwekundu upande wa kinyume. Tumia waya mweusi kuunganisha ardhi ya ESP32 kwenye reli ya ardhi na waya nyekundu kuunganisha pini ya 3.3V ya ESP32 kwenye reli ya nguvu.
Ifuatayo, ingiza rejista ya mabadiliko ya 74HC595 kwenye breadboard, uhakikishe notch imeelekezwa kwa usahihi. Unganisha pini 11 (DS) kwa pini 25 kwenye ESP32, pini 12 (SH_CP) kwa pini 26, na pini 14 (ST_CP) kwa pini 27. Unganisha ardhi (pini 8) ya rejista ya mabadiliko kwenye reli ya ardhi na pini 10 (MR) kwenye reli ya nguvu kwa uanzishaji.
Kwa onyesho la sehemu saba, unganisha pini zinazolingana na sehemu (a-g) kwenye pini za pato za rejista ya mabadiliko. Tumia resistor (220 ohm) katika mfululizo kwa kila sehemu ili kupunguza mkondo. Hakikisha una miunganisho sahihi kwa pini ya kawaida, ambayo inaweza kuwa anode ya kawaida au cathode ya kawaida kulingana na aina ya onyesho lako.
Mifano ya Msimbo & Maelezo ya Hatua kwa Hatua
Katika kazi ya setup, tunaanza kwa kufafanua pini zilizounganishwa kwenye rejista ya mabadiliko kama matokeo. Hii inahakikisha kwamba ESP32 yetu inaweza kudhibiti data inayotumwa kwenye onyesho.
void setup ()
{
//set pins to output
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
Hapa, tunafafanua STcp, SHcp, na DS kama pini zilizounganishwa kwenye ST_CP, SH_CP, na DS za rejista ya mabadiliko, mtawalia. Kuweka pini hizi kama matokeo huturuhusu kudhibiti rejista ya mabadiliko.
Kitanzi kikuu cha programu kinahesabu kutoka 0 hadi 9, kikituma thamani zinazolingana kwenye onyesho kwa kutumia kazi ya shiftOut.
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //weka ST_CP chini na ushikilie chini kwa muda wote unaposambaza
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //vuta ST_CP juu ili kuhifadhi data
delay(1000);
}
Kitanzi hiki kinaongeza kigezo cha num, kikituma thamani inayolingana kutoka datArray kwenye skrini kila sekunde. Kazi ya shiftOut husambaza data kwenye rejista ya mabadiliko, ambayo kisha huwasha sehemu zinazofaa.
Maonyesho / Nini cha Kutarajia
Mara tu wiring inapokamilika na msimbo kupakiwa, unapaswa kuona skrini ya sehemu saba ikihesabu kutoka 0 hadi 9, ikisimama kwa muda mfupi kabla ya kuhesabu kurudi chini hadi 0. Kila nambari itaonyeshwa kwa sekunde moja. Ikiwa unataka kuharakisha kuhesabu, unaweza kurekebisha delay kwenye kitanzi (katika video saa 15:30).
Unapodhibiti sehemu moja moja, kumbuka kutuma thamani sahihi za binary kuonyesha herufi au sehemu maalum. Ikiwa skrini inaonekana hafifu, zingatia kuongeza resistors za kila sehemu ili kuhakikisha mwangaza sawa kwenye skrini nzima.
Vidokezo vya Muda wa Video
- 00:00 Mwanzo
- 1:53 Utangulizi wa sehemu saba
- 4:38 Wiring imeelezewa
- 13:15 Arduino Code-1
- 17:01 Kuchagua COM port na bodi ya ESP32
- 18:43 Maonyesho-1
- 20:13 Kuonyesha tarakimu moja tu
- 21:38 Kihesabu cha juu na chini
- 23:07 Kuwasha/kuzima kila sehemu
- 24:53 Kuonyesha A, B, C, D, E na F
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP
const int DS = 25; //DS
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void setup ()
{
//set pins to output
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
void loop()
{
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
delay(1000);
}
}
Common Course Links
Common Course Files
Resurser och referenser
-
DokumentationESP32 Tutorial 10/55 - SunFounder page for Seven Segmentdocs.sunfounder.com
Filer📁
Inga filer tillgängliga.