Search Code

Mafunzo ya ESP32 10/55 - Kikaunta cha dijiti kwa kutumia Seven Segment Display 74HC595 - Kifurushi cha Kujifunza cha ESP32 IoT

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.

ESP32_Animte7Segment-segments

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).

ESP32_Animte7Segment-letters

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.

ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-counter-1

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

ESP32-10-seven-segment-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

Bilder

ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32-10-seven-segment-wiring
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment
Språk: C++
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);
  }
}

Resurser och referenser

Filer📁

Inga filer tillgängliga.