ESP32 Оқулық 10/55 - Жеті сегментті индикатор 74HC595 көмегімен сандық есептегіш - ESP32 IoT оқу жинағы
Бұл оқулықта біз ESP32 микроконтроллерімен басқарылатын жеті сегментті индикаторды пайдаланып сандық есептегіш жасаймыз. Есептегіш 0-ден 9-ға дейін өсіп, содан кейін 0-ге дейін кеміп, санау процесінің айқын көрінісін қамтамасыз етеді. Сондай-ақ жеке сегменттерді қосу және жеті сегментті индикаторда әріптерді көрсету жолдарын қарастырамыз.

Бұл жоба индикаторды басқару үшін 74HC595 ауыстыру регистрін пайдаланады, бұл ESP32-де тым көп GPIO түйреуіштерін қолданбай-ақ сегменттерді тиімді басқаруға мүмкіндік береді. Ауыстыру регистріне екілік мәндерді жіберу арқылы сандар мен әріптерді көрсету үшін сәйкес сегменттерді жағамыз. Процесті тереңірек түсіну үшін бейнені көре аласыз (бейнеде 03:15).
Аппараттық құрал түсіндірмесі
Бұл жобаның негізгі компоненттеріне ESP32 микроконтроллері, 74HC595 ауыстыру регистрі және жеті сегментті индикатор кіреді. ESP32 - кірістірілген Wi-Fi және Bluetooth мүмкіндіктері бар қуатты микроконтроллер, оны IoT жобаларына қолайлы етеді. 74HC595 - бірнеше кіріс түйреуіштерін пайдаланып көптеген шығыстарды басқаруға мүмкіндік беретін ауыстыру регистрі. Ол сериялық деректерді қабылдап, оны параллель шығысқа түрлендіру арқылы жұмыс істейді, бұл жеті сегментті индикаторды басқаруға өте ыңғайлы.
Жеті сегментті индикатор сегіздік пішінде орналасқан жеті жеке жарықдиодтан тұрады. Әр сегментті ауыстыру регистріне тиісті екілік мәнді жіберу арқылы қосуға немесе өшіруге болады. Мысалы, 0 санын көрсету үшін ортаңғы сегменттен (G) басқа барлық сегменттер жағу керек.
Деректер парағының мәліметтері
| Өндіруші | Texas Instruments |
|---|---|
| Бөлшек нөмірі | 74HC595 |
| Логика/IO кернеуі | 2 В - 6 В |
| Қоректендіру кернеуі | 2 В - 6 В |
| Шығыс тогы (арнаға) | 6 мА |
| Ең жоғары ток (арнаға) | 35 мА |
| ШИМ жиілігі бойынша нұсқау | 1 кГц-ке дейін |
| Кіріс логика шектері | 0.3 ВCC - 0.7 ВCC |
| Кернеу төмендеуі / RDS(on) / қанығу | 0.2 В макс |
| Жылулық шектер | 125 °C |
| Қаптама | DIP-16 |
| Ескертулер / нұсқалар | Әртүрлі қаптамаларда қолжетімді |
- Тиісті қоректендіру кернеуін қамтамасыз етіңіз (2 В - 6 В).
- Қызып кетуді болдырмау үшін шығыс тогын шектеңіз.
- Оңтайлы жарықтық үшін әр сегментке бөлек резисторлар қолданыңыз.
- Қысқа тұйықталу мен қате қосылымдарды болдырмау үшін сымдарды мұқият жалғаңыз.
- Қате конфигурацияны болдырмау үшін түйреуіштердің орналасуын мұқият қадағалаңыз.
Сымдарды жалғау нұсқаулары

Макет тақтасын дайындаудан бастаңыз. Жерге тұйықтау шинасын (көк сызық) және қоректендіру шинасын (қызыл сызық) қосыңыз. Жерге тұйықтау макет тақтасының бір жағындағы көк сызыққа, ал қоректендіру қарама-қарсы жағындағы қызыл сызыққа қосылуы керек. ESP32-нің жерге тұйықтауын жерге тұйықтау шинасына қосу үшін қара сымды, ал ESP32-нің 3.3В түйреуішін қоректендіру шинасына қосу үшін қызыл сымды пайдаланыңыз.
Әрі қарай, 74HC595 ауыстыру регистрін макет тақтасына салыңыз, ойықтың дұрыс бағытталғанына көз жеткізіңіз. 11-түйреуішті (DS) ESP32-дегі 25-түйреуішке, 12-түйреуішті (SH_CP) 26-түйреуішке және 14-түйреуішті (ST_CP) 27-түйреуішке қосыңыз. Ауыстыру регистрінің жерге тұйықтауын (8-түйреуіш) жерге тұйықтау шинасына және 10-түйреуішті (MR) белсендіру үшін қоректендіру шинасына қосыңыз.
Жеті сегментті индикатор үшін сегменттерге (a-g) сәйкес түйреуіштерді ауыстыру регистрінің шығыс түйреуіштеріне қосыңыз. Токты шектеу үшін әр сегментке тізбектей резисторды (220 Ом) қолданыңыз. Индикатор түріне байланысты ортақ түйреуіштің дұрыс қосылымын қамтамасыз етіңіз, ол ортақ анод немесе ортақ катод болуы мүмкін.
Код мысалдары және түсіндірме
Орнату функциясында біз ауыстыру регистріне қосылған түйреуіштерді шығыс ретінде анықтаудан бастаймыз. Бұл біздің ESP32-нің индикаторға жіберілетін деректерді басқара алуын қамтамасыз етеді.
void setup ()
{
//түйреуіштерді шығысқа орнату
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 әріптерін көрсету
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
Ресурстар мен сілтемелер
-
ҚұжаттамаESP32 Tutorial 10/55 - SunFounder page for Seven Segmentdocs.sunfounder.com
Файлдар📁
Файлдар жоқ.