کوډ ولټوئ

د ESP32 ټیوټوریل 10/55 - د اوو برخو ښودونکي 74HC595 په کارولو سره ډیجیټل شمېرونکی - ESP32 IoT د زده کړې کټ

د ESP32 ټیوټوریل 10/55 - د اوو برخو ښودونکي 74HC595 په کارولو سره ډیجیټل شمېرونکی - ESP32 IoT د زده کړې کټ

په دې ټیوټوریل کې به موږ د اوه-برخې نندارې (seven-segment display) په کارولو سره یو ډیجیټل کاونټر جوړ کړو چې د ESP32 مایکروکنټرولر لخوا کنټرولیږي. کاونټر به له 0 څخه تر 9 پورې لوړیږي او بیا بیرته 0 ته راټیټیږي، چې د شمېرنې پروسې روښانه لید وړاندې کوي. موږ به دا هم وپلټو چې څنګه انفرادي برخې فعالې کړو او په اوه-برخې نندارې باندې توري ښکاره کړو.

ESP32_Animte7Segment-segments

دا پروژه د 74HC595 شېفټ راجسټر څخه کار اخلي ترڅو نندارې کنټرول کړي، چې موږ ته اجازه راکوي پرته له دې چې د ESP32 ډیر GPIO پنونه وکاروو، برخې په مؤثره توګه اداره کړو. د شېفټ راجسټر ته د بائنري ارزښتونو په لیږلو سره، موږ کولی شو اړونده برخې روښانه کړو ترڅو شمېرې او توري ښکاره کړو. د دې پروسې ژورې پوهې لپاره، تاسو کولی شئ ویډیو ته مراجعه وکړئ (په ویډیو کې په 03:15 کې).

ESP32_Animte7Segment-letters

هارډویر تشریح شوی

د دې پروژې اصلي برخې عبارت دي له ESP32 مایکروکنټرولر، 74HC595 شېفټ راجسټر، او اوه-برخې نندارې. ESP32 یو پیاوړی مایکروکنټرولر دی چې په کې جوړ شوي Wi-Fi او بلوتوت وړتیاوې لري، چې دا د IoT پروژو لپاره مناسب کوي. 74HC595 یو شېفټ راجسټر دی چې موږ ته اجازه راکوي یوازې د څو انپټ پنونو په کارولو سره ډیری آوټ پوټونه کنټرول کړو. دا د سیریل ډیټا په اخیستلو او په موازي آوټ پوټ بدلولو سره کار کوي، کوم چې د اوه-برخې نندارې چلولو لپاره مناسب دی.

د اوه-برخې نندارې له اوو انفرادي LEDs څخه جوړه ده چې د اتو شکل په بڼه ترتیب شوي دي. هر برخه د شېفټ راجسټر ته د مناسب بائنري ارزښت په لیږلو سره فعاله یا غیر فعاله کیدی شي. د مثال په توګه، د 0 شمېرې ښودلو لپاره، ټولې برخې پرته له منځنۍ برخې (G) څخه باید روښانه شي.

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

ډیټاشیټ تفصیلات

جوړونکی Texas Instruments
د پرزې شمېره 74HC595
منطق/IO ولټاژ 2 V تر 6 V
د برېښنا ولټاژ 2 V تر 6 V
د آوټ پوټ جریان (په هر چینل) 6 mA
د لوړ جریان (په هر چینل) 35 mA
د PWM فریکونسي لارښود تر 1 kHz پورې
د انپټ منطق حدونه 0.3 VCC تر 0.7 VCC
د ولټاژ کمښت / RDS(on) / سنتریشن 0.2 V اعظمي
حرارتي حدونه 125 °C
بسته بندي DIP-16
یادښتونه / بڼې په مختلفو بسته بندیو کې شتون لري

 

  • د مناسب ولټاژ رسولو ډاډ ترلاسه کړئ (2 V تر 6 V).
  • د ډیر تودوخې مخنیوي لپاره د آوټ پوټ جریان محدود کړئ.
  • د غوره روښانتیا لپاره د هرې برخې لپاره جلا رزیسټرونه وکاروئ.
  • د شارټ سرکټ او غلط اړیکو مخنیوي لپاره د تارونو په اړه محتاط اوسئ.
  • د غلط تنظیم مخنیوي لپاره پن آوټ په دقت سره تعقیب کړئ.

د تارونو د نښلولو لارښوونې

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 ohms) وکاروئ. ډاډ ترلاسه کړئ چې د عام پن لپاره سمې اړیکې لرئ، کوم چې ستاسو د نندارې ډول پر بنسټ عام انوډ یا عام کیتوډ کیدی شي.

د کوډ مثالونه او تفصیل

په سیټ اپ فنکشن کې، موږ د شېفټ راجسټر سره تړلي پنونه د آوټ پوټ په توګه تعریف کوو. دا ډاډ ورکوي چې زموږ ESP32 کولی شي نندارې ته لیږل شوي ډیټا کنټرول کړي.

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

دلته، موږ STcp، SHcp، او DS د پنونو په توګه تعریف کوو چې په ترتیب سره د شېفټ راجسټر د ST_CP، SH_CP، او DS سره تړلي دي. دا پنونه د آوټ پوټ په توګه ټاکل موږ ته اجازه راکوي چې شېفټ راجسټر کنټرول کړو.

د پروګرام اصلي لوپ له 0 څخه تر 9 پورې شمېرل کیږي، د shiftOut فنکشن په کارولو سره اړونده ارزښتونه نندارې ته لیږي.

for(int num = 0; num <10; num++)
{
    digitalWrite(STcp,LOW); // ST_CP ځمکې ته ورسوئ او تر هغه وخته پورې ټیټ وساتئ چې لیږد کوئ
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); // ST_CP پورته کړئ ترڅو ډاټا خوندي شي
    delay(1000);
}

دا لوپ د num متغیر زیاتوي، او هره ثانیه د datArray څخه اړوند ارزښت ښودونکي ته لیږي. د shiftOut فنکشن ډاټا شفټ راجسټر ته لیږدوي، کوم چې بیا مناسب برخې روښانه کوي.

ښودنه / څه تمه وکړو

یوځل چې تارونه بشپړ شي او کوډ پورته شي، تاسو باید وګورئ چې د اوو برخو ښودونکی له 0 څخه تر 9 پورې شمېرل کوي، لنډه وقفه کوي او بیا بیرته 0 ته راګرځي. هره شمېره به د یوې ثانیې لپاره ښودل کیږي. که تاسو غواړئ شمېرنه ګړندۍ کړئ، تاسو کولی شئ په لوپ کې ځنډ تنظیم کړئ (په ویډیو کې په 15:30 کې).

کله چې برخې په جلا توګه اداره کوئ، په یاد ولرئ چې د تورو یا ځانګړو برخو ښودلو لپاره سم بائنري ارزښتونه واستوئ. که ښودونکی ډنګر ښکاري، د هرې برخې لپاره جلا ریزسټرونه اضافه کړئ ترڅو د ښودونکي په اوږدو کې ثابت روښانتیا ډاډمنه شي.

د ویډیو وختونه

  • 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);
  }
}

سرچینې او حوالې

فایلونه📁

هیڅ فایل شتون نلري.