ኮድ ይፈልጉ

ESP32 ቱቶሪያል 10/55 - ዲጂታል ቆጣሪ በሰቨን ሰግመንት ዲስፕሌይ 74HC595 -ESP32 IoT መማሪያ ኪት

ESP32 ቱቶሪያል 10/55 - ዲጂታል ቆጣሪ በሰቨን ሰግመንት ዲስፕሌይ 74HC595 -ESP32 IoT መማሪያ ኪት

በዚህ መማሪያ ውስጥ፣ በESP32 ማይክሮ መቆጣጠሪያ የሚቆጣጠረውን ባለ ሰባት ክፍል ማሳያ በመጠቀም ዲጂታል ቆጣሪ እንፈጥራለን። ቆጣሪው ከ0 እስከ 9 ይጨምራል ከዚያም ወደ 0 ይመለሳል፣ ይህም የመቁጠር ሂደቱን ግልጽ እይታ ይሰጣል። እንዲሁም በባለ ሰባት ክፍል ማሳያ ላይ የግለሰብ ክፍሎችን እንዴት ማብራት እና ፊደላትን ማሳየት እንደምንችል እንመረምራለን።

ESP32_Animte7Segment-segments

ይህ ፕሮጀክት ማሳያውን ለመቆጣጠር 74HC595 ሺፍት ሬጂስተር ይጠቀማል፣ ይህም በESP32 ላይ ብዙ GPIO ፒኖችን ሳንጠቀም ክፍሎቹን በብቃት እንድናስተዳድር ያስችለናል። ሁለትዮሽ እሴቶችን ወደ ሺፍት ሬጂስተር በመላክ፣ ቁጥሮችን እና ፊደላትን ለመወከል ተጓዳኝ ክፍሎችን ማብራት እንችላለን። ስለ ሂደቱ ጥልቅ ግንዛቤ ለማግኘት፣ ቪዲዮውን መመልከት ይችላሉ (በቪዲዮው በ03:15)።

ESP32_Animte7Segment-letters

ሃርድዌር ተብራርቷል

የዚህ ፕሮጀክት ዋና ዋና ክፍሎች ESP32 ማይክሮ መቆጣጠሪያ፣ 74HC595 ሺፍት ሬጂስተር እና ባለ ሰባት ክፍል ማሳያ ያካትታሉ። ESP32 አብሮ የተሰራ ዋይ ፋይ እና ብሉቱዝ አቅም ያለው ኃይለኛ ማይክሮ መቆጣጠሪያ ነው፣ ለIoT ፕሮጀክቶች ተስማሚ ያደርገዋል። 74HC595 ጥቂት የግቤት ፒኖችን ብቻ በመጠቀም ብዙ ውጤቶችን እንድንቆጣጠር የሚያስችለን ሺፍት ሬጂስተር ነው። ተከታታይ ዳታ ወስዶ ወደ ትይዩ ውጤት በመቀየር ይሰራል፣ ይህም ባለ ሰባት ክፍል ማሳያን ለማሽከርከር ፍጹም ነው።

ባለ ሰባት ክፍል ማሳያው በስምንት ቅርጽ የተደረደሩ ሰባት የግለሰብ LEDs ያካትታል። እያንዳንዱ ክፍል ተገቢውን ሁለትዮሽ እሴት ወደ ሺፍት ሬጂስተር በመላክ ማብራት ወይም ማጥፋት ይቻላል። ለምሳሌ፣ ቁጥር 0ን ለማሳየት፣ ከመካከለኛው ክፍል (G) በስተቀር ሁሉም ክፍሎች መብራት አለባቸው።

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

የዳታሼት ዝርዝሮች

አምራች ቴክሳስ ኢንስትሩመንትስ
የክፍል ቁጥር 74HC595
የሎጂክ/IO ቮልቴጅ 2 ቪ እስከ 6 ቪ
የአቅርቦት ቮልቴጅ 2 ቪ እስከ 6 ቪ
የውጤት ኤሌክትሪክ (በአንድ ቻናል) 6 ሜአ
ከፍተኛ ኤሌክትሪክ (በአንድ ቻናል) 35 ሜአ
የPWM ድግግሞሽ መመሪያ እስከ 1 ኪሎሄርትዝ
የግቤት ሎጂክ ገደቦች 0.3 ቪCC እስከ 0.7 ቪCC
የቮልቴጅ ጠብታ / RDS(on) / ሳቹሬሽን 0.2 ቪ ከፍተኛ
የሙቀት ገደቦች 125 °C
ፓኬጅ DIP-16
ማስታወሻዎች / ልዩነቶች በተለያዩ ፓኬጆች ይገኛል

 

  • ትክክለኛ የቮልቴጅ አቅርቦትን ያረጋግጡ (2 ቪ እስከ 6 ቪ)።
  • ከመጠን በላይ ሙቀትን ለመከላከል የውጤት ኤሌክትሪክን ይገድቡ።
  • ለተመቻቸ ብሩህነት ለእያንዳንዱ ክፍል የተለየ ሬዚስተር ይጠቀሙ።
  • አጭር ዑደት እና የተሳሳተ ግንኙነትን ለማስቀረት በሽቦ አያያዝ ላይ ይጠንቀቁ።
  • የተሳሳተ ውቅርን ለማስቀረት ፒን አውት በጥንቃቄ ይከተሉ።

የሽቦ መጫኛ መመሪያዎች

ESP32-10-seven-segment-wiring

ብሬድቦርድዎን በማዘጋጀት ይጀምሩ። የመሬት ሀዲዱን (ሰማያዊ መስመር) እና የኃይል ሀዲዱን (ቀይ መስመር) ያገናኙ። መሬቱ በአንደኛው የብሬድቦርድ ጎን ካለው ሰማያዊ መስመር ጋር መገናኘት አለበት፣ ኃይሉ ደግሞ በተቃራኒው ጎን ካለው ቀይ መስመር ጋር መገናኘት አለበት። የESP32ን መሬት ከመሬት ሀዲዱ ጋር ለማገናኘት ጥቁር ሽቦ እና የESP32ን 3.3V ፒን ከኃይል ሀዲዱ ጋር ለማገናኘት ቀይ ሽቦ ይጠቀሙ።

በመቀጠል፣ 74HC595 ሺፍት ሬጂስተሩን ወደ ብሬድቦርዱ ያስገቡ፣ ኖቹው በትክክል መዞሩን ያረጋግጡ። ፒን 11 (DS) ከESP32 ፒን 25 ጋር፣ ፒን 12 (SH_CP) ከፒን 26 ጋር፣ እና ፒን 14 (ST_CP) ከፒን 27 ጋር ያገናኙ። የሺፍት ሬጂስተሩን መሬት (ፒን 8) ከመሬት ሀዲዱ ጋር እና ፒን 10 (MR) ለማግበር ከኃይል ሀዲዱ ጋር ያገናኙ።

ለባለ ሰባት ክፍል ማሳያው፣ ከክፍሎቹ (a-g) ጋር የሚዛመዱትን ፒኖች ከሺፍት ሬጂስተሩ የውጤት ፒኖች ጋር ያገናኙ። ኤሌክትሪክን ለመገደብ ለእያንዳንዱ ክፍል ሬዚስተር (220 ኦም) በተከታታይ ይጠቀሙ። እንደ ማሳያዎ አይነት የጋራ አኖድ ወይም ካቶድ ሊሆን የሚችለውን የጋራ ፒን ትክክለኛ ግንኙነት ያረጋግጡ።

የኮድ ምሳሌዎች እና ማብራሪያ

በሴትአፕ ተግባር ውስጥ፣ ከሺፍት ሬጂስተሩ ጋር የተገናኙትን ፒኖች እንደ ውጤት በመግለጽ እንጀምራለን። ይህ የእኛ ESP32 ወደ ማሳያው የሚላከውን ዳታ መቆጣጠር እንደሚችል ያረጋግጣል።

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

እዚህ፣ STcpSHcp እና DSን ከሺፍት ሬጂስተሩ ST_CP፣ SH_CP እና DS ጋር የተገናኙ ፒኖች እንደሆኑ እንገልጻለን። እነዚህን ፒኖች እንደ ውጤት ማዘጋጀት ሺፍት ሬጂስተሩን እንድንቆጣጠር ያስችለናል።

የፕሮግራሙ ዋና ሉፕ ከ0 እስከ 9 ይቆጥራል፣ ተጓዳኝ እሴቶችን shiftOut ተግባር በመጠቀም ወደ ማሳያው ይልካል።

ለ(int num = 0; num <10; num++)
{
    digitalWrite(STcp,LOW); //ST_CPን መሬት ያድርጉ እና እስከሚያስተላልፉ ድረስ ዝቅ አድርገው ይያዙ
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); //ውሂቡን ለማስቀመጥ ST_CPን ወደ ላይ ይጎትቱ
    delay(1000);
}

ይህ loop የnum ተለዋዋጭን ይጨምራል፣ ተጓዳኝ እሴቱን ከdatArray በየሰከንዱ ወደ ማሳያው ይልካል። የshiftOut ተግባር ውሂቡን ወደ shift register ያስተላልፋል፣ ከዚያም ተገቢውን ክፍሎች ያበራል።

ማሳያ / ምን እንደሚጠበቅ

ሽቦው ከተጠናቀቀ እና ኮዱ ከተጫነ በኋላ፣ ባለ ሰባት-ክፍል ማሳያው ከ0 እስከ 9 ሲቆጥር ማየት አለብዎት፣ ወደ 0 ከመመለሱ በፊት በአጭሩ ይቆማል። እያንዳንዱ ቁጥር ለአንድ ሰከንድ ይታያል። ቆጠራውን ማፋጠን ከፈለጉ፣ በloop ውስጥ ያለውን delay ማስተካከል ይችላሉ (በቪዲዮው በ15:30)።

ክፍሎቹን በተናጠል ሲቆጣጠሩ፣ ፊደሎችን ወይም የተወሰኑ ክፍሎችን ለማሳየት ትክክለኛውን ሁለትዮሽ እሴቶች መላክ እንዳለብዎት ያስታውሱ። ማሳያው ደብዛዛ ከሆነ፣ በማሳያው ላይ ወጥ የሆነ ብሩህነት ለማረጋገጥ ለእያንዳንዱ ክፍል የተለየ resistors ማከል ያስቡበት።

የቪዲዮ ጊዜ ምልክቶች

  • 00:00 መጀመሪያ
  • 1:53 የሰባት ክፍል መግቢያ
  • 4:38 ሽቦ ማያያዝ ተብራርቷል
  • 13:15 Arduino ኮድ-1
  • 17:01 COM ወደብ እና ESP32 ቦርድ መምረጥ
  • 18:43 ማሳያ-1
  • 20:13 አንድ አሃዝ ብቻ ማሳየት
  • 21:38 ወደላይ እና ወደታች ቆጣሪ
  • 23:07 እያንዳንዱን ክፍል ማብራት/ማጥፋት
  • 24:53 A፣ B፣ C፣ D፣ E እና F ማሳየት

ምስሎች

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

ምንጮች እና ምንጮች

ፋይሎች📁

አንድ ፋይል የለም።