Search Code

Èkọ́ ESP32 10/55 - Kọ̀ǹtà oní nọ́ńbà pẹ̀lú Seven Segment Display 74HC595 -ESP32 IoT Learning kit

Èkọ́ ESP32 10/55 - Kọ̀ǹtà oní nọ́ńbà pẹ̀lú Seven Segment Display 74HC595 -ESP32 IoT Learning kit

Nínú ẹ̀kọ́ yìí, a óò ṣẹ̀dá kọ́ǹtà oní nọ́ńbà nípa lílo àfihàn abala méje tí ẹ̀rọ̀ ESP32 ń darí. Kọ́ǹtà náà yóò pọ̀ sí i láti 0 sí 9, lẹ́yìn náà yóò dín kù padà sí 0, tí yóò fún wa ní ìríran tí ó ṣe kedere nípa ìlànà kíkà. A óò tún ṣàwárí bí a ṣe ń tan abala kọ̀ọ̀kan àti bí a ṣe ń fi àwọn lẹ́tà hàn lórí àfihàn abala méje náà.

ESP32_Animte7Segment-segments

Ìṣẹ̀mí yìí ń lo 74HC595 shift register láti darí àfihàn náà, tí yóò jẹ́ kí a ṣàkóso àwọn abala náà dáradára láìlo ọ̀pọ̀lọpọ̀ GPIO pins lórí ESP32. Nípa fífi àwọn iye binary ránṣẹ́ sí shift register, a lè tan àwọn abala tí ó bá wọn mu láti ṣàfihàn àwọn nọ́ńbà àti lẹ́tà. Fún òye tí ó jinlẹ̀ sí i nípa ìlànà náà, o lè wo fídíò náà (nínú fídíò ní 03:15).

ESP32_Animte7Segment-letters

Àlàyé Ohun Èlò

Àwọn ohun pàtàkì tí ó wà nínú ìṣẹ̀mí yìí ni ESP32 microcontroller, 74HC595 shift register, àti àfihàn abala méje. ESP32 jẹ́ microcontroller alágbára tí ó ní Wi-Fi àti Bluetooth nínú rẹ̀, tí ó sì mú un dára fún àwọn ìṣẹ̀mí IoT. 74HC595 jẹ́ shift register tí ó gbà wá láyè láti darí ọ̀pọ̀lọpọ̀ àbájáde nípa lílo àwọn pin ìfidánilẹ́kọ̀ọ́ díẹ̀ péré. Ó ń ṣiṣẹ́ nípa gbígbà data serial tí ó sì ń yí i padà sí àbájáde parallel, èyí tí ó dára pátápátá fún dídarí àfihàn abala méje.

Àfihàn abala méje náà ní àwọn LED méje ọ̀tọ̀ọ̀tọ̀ tí a tò ní ìrísí eeya mẹ́jọ. Abala kọ̀ọ̀kan ni a lè tan tàbí pa nípa fífi iye binary tí ó bá wọn mu ránṣẹ́ sí shift register. Fún àpẹẹrẹ, láti ṣàfihàn nọ́ńbà 0, gbogbo àwọn abala àyàfi àárín (G) ni a ní láti tan.

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

Àwọn Àlàyé Datasheet

Olùṣẹ̀dá Texas Instruments
Nọ́ńbà apá 74HC595
Folti Logic/IO 2 V sí 6 V
Folti ìpèsè 2 V sí 6 V
Ìṣàn àbájáde (fún ikanni kọ̀ọ̀kan) 6 mA
Ìṣàn tí ó ga jùlọ (fún ikanni kọ̀ọ̀kan) 35 mA
Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM Títí dé 1 kHz
Àwọn ìpele ìfidánilẹ́kọ̀ọ́ ìwọ̀n 0.3 VCC sí 0.7 VCC
Ìdìndì folti / RDS(on) / ìkún 0.2 V tí ó pọ̀ jùlọ
Àwọn ìwọ̀n ooru 125 °C
Àpò DIP-16
Àwọn àkíyèsí / oríṣiríṣi Ó wà ní ọ̀pọ̀lọpọ̀ àwọn àpò

 

  • Rí i dájú pé folti ìpèsè tó tọ́ wà (2 V sí 6 V).
  • Dín ìṣàn àbájáde kù láti yẹra fún gbígbóná janjan.
  • Lo àwọn resistor ọ̀tọ̀ọ̀tọ̀ fún abala kọ̀ọ̀kan fún ìmọ́lẹ̀ tí ó dára jùlọ.
  • Ṣọ́ra nípa ìsopọ̀ láti yẹra fún àwọn ìsopọ̀ kúkúrú àti àìtọ́.
  • Tẹ̀lé pinout náà dáradára láti yẹra fún àìtọ́ ìtòlẹ́sẹẹsẹ.

Àwọn Ìtọ́sọ́nà Ìsopọ̀

ESP32-10-seven-segment-wiring

Bẹ̀rẹ̀ nípa ṣíṣètò breadboard rẹ. Sopọ̀ ìlà ilẹ̀ (ọ̀nà bulúù) àti ìlà agbára (ọ̀nà pupa). Ilẹ̀ yẹ kí ó sopọ̀ sí ọ̀nà bulúù ní ẹ̀gbẹ́ kan ti breadboard, nígbà tí agbára yóò sopọ̀ sí ọ̀nà pupa ní ẹ̀gbẹ́ òmíràn. Lo wáìà dúdú láti sopọ̀ ilẹ̀ ti ESP32 sí ìlà ilẹ̀ àti wáìà pupa láti sopọ̀ pin 3.3V ti ESP32 sí ìlà agbára.

Lẹ́yìn náà, fi 74HC595 shift register sínú breadboard, rí i dájú pé notch náà dojúkọ ọ̀nà tí ó tọ́. Sopọ̀ pin 11 (DS) sí pin 25 lórí ESP32, pin 12 (SH_CP) sí pin 26, àti pin 14 (ST_CP) sí pin 27. Sopọ̀ ilẹ̀ (pin 8) ti shift register sí ìlà ilẹ̀ àti pin 10 (MR) sí ìlà agbára fún ìmúṣẹ.

Fún àfihàn abala méje, sopọ̀ àwọn pin tí ó bá àwọn abala (a-g) mu sí àwọn pin àbájáde ti shift register. Lo resistor (220 ohm) ní ọ̀nà fún abala kọ̀ọ̀kan láti dín ìṣàn kù. Rí i dájú pé o ní àwọn ìsopọ̀ tí ó tọ́ fún pin àpapọ̀, èyí tí ó lè jẹ́ common anode tàbí cathode dá lórí irú àfihàn rẹ.

Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà

Nínú ìṣiṣẹ́ ìṣètò, a bẹ̀rẹ̀ nípa ṣíṣọ̀tọ̀ àwọn pin tí a sopọ̀ sí shift register gẹ́gẹ́ bí àwọn àbájáde. Èyí rí i dájú pé ESP32 wa lè darí data tí a ń rán sí àfihàn náà.

void setup ()
{
  //set pins to output
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}

Níbí, a ṣàlàyé STcp, SHcp, àti DS gẹ́gẹ́ bí àwọn pin tí a sopọ̀ sí ST_CP, SH_CP, àti DS ti shift register, ní ọ̀kọ̀ọ̀kan. Ṣíṣètò àwọn pin wọ̀nyí gẹ́gẹ́ bí àwọn àbájáde gbà wá láyè láti darí shift register.

Lúùpù àkọ́kọ́ ti ètò náà ń kà láti 0 sí 9, tí ó ń fi àwọn iye tí ó bá wọn mu ránṣẹ́ sí àfihàn náà nípa lílo ìṣiṣẹ́ shiftOut.

for(int num = 0; num <10; num++)
{
    digitalWrite(STcp,LOW); // fi ST_CP mu wa si wa fun igba ti o ba n gbejade
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); // fa ST_CPST_CP soke lati fi data pamọ
    delay(1000);
}

Yi lupu ṣe alekun num oniyipada, fifiranṣẹ iye ti o baamu lati inu datArray si ifihan ni gbogbo iṣẹju-aaya. Iṣẹ shiftOut n gbe data ranṣẹ si iforukọsilẹ iyipada, eyiti o tan awọn apakan ti o yẹ.

Ifihan / Ohun ti O Ṣe Reti

Ni kete ti okun waya ba ti pari ati pe koodu ti gbe soke, o yẹ ki o rii ifihan oni-nọmba meje ti n ka lati 0 si 9, ti o duro ni ṣoki ṣaaju ki o to tun ka pada si 0. Nọmba kọọkan yoo han fun iṣẹju-aaya kan. Ti o ba fẹ mu kika yara, o le ṣatunṣe idaduro ninu lupu (ninu fidio ni 15:30).

Nigbati o ba n ṣiṣẹ awọn apakan kọọkan lọtọ, ranti lati fi awọn iye alakomeji ti o tọ ranṣẹ lati ṣe afihan awọn lẹta tabi awọn apakan kan pato. Ti ifihan ba han ṣokunkun, ronu fifi awọn resistors kọọkan kun fun apakan kọọkan lati rii daju imọlẹ deede kọja ifihan naa.

Awọn Akoko Fidio

  • 00:00 Ibẹrẹ
  • 1:53 Ifihan si oni-nọmba meje
  • 4:38 Okun waya ṣalaye
  • 13:15 Arduino Koodu-1
  • 17:01 Yiyan ibudo COM ati bọọdi ESP32
  • 18:43 Ifihan-1
  • 20:13 Ifihan nọmba kan ṣoṣo
  • 21:38 Kika soke ati isalẹ
  • 23:07 Titari apakan kọọkan ON/OFF
  • 24:53 Ifihan A, B, C, D, E ati F

Aworan

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
Ede: 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);
  }
}

Orisun & itọkasi

Fáìlìs📁

Ko si awọn faili ti o wa.