- Необходим материал:
- Регистриране на смяна:
- Интерфейс LCD с ESP12 без използване на Shift Register:
- КОД:
- Интерфейс LCD с ESP12 с използване на Shift Register SN74HC595N:
- КОД:
В този урок ще видим как да свържем NodeMCU с 16x2 LCD, без да използваме I2C комуникация. Тук ще свържем 16x2 LCD, използвайки регистър за смяна SN74HC595. Също така можем да го свържем дори без да използваме регистър за смяна. Ще видим и двата вида взаимодействия в този урок. Основната разлика между двете взаимодействия е броят на изводите, използвани в NodeMCU.
Необходим материал:
- NodeMCU ESP12E
- SN74HC595 IC регистър за смяна
- 16x2 LCD модул
- Потенциометри
- Мъжко-женски проводници
- Макет
Регистриране на смяна:
В цифровите системи регистърът за смяна е комбинация от джапанки, които са каскадни последователно и споделят един и същ часовник. В този каскаден пакет излизането на данни от един тригер действа като въвеждане на данни за следващия тригер, което води до схема, която измества с една позиция битовия масив, съхраняван в него.
IC, който ще използваме, е SN74HC595N. Това е обикновен 8-битов последователен IC с паралелен изходен регистър. С прости думи, този IC позволява да се добавят допълнителни входове или изходи към микроконтролер чрез преобразуване на данни между паралелни и серийни формати. Нашият микроконтролер използва 3 щифта от този IC за серийно изпращане на данни. Всъщност 8-битовият изход ще идва на 8 пина след получаване на 8-битова информация от входните щифтове. Научете повече за регистрите за смяна тук.
ПИН диаграма и PIN функции на IC SN74HC595N са дадени по-долу:
Тук ще намерите взаимодействие на 74HC595N с Arduino и с Raspberry pi.
Интерфейс LCD с ESP12 без използване на Shift Register:
Ако сте използвали 16x2 LCD с платката Arduino, ще бъде много лесно. Трябва само да закачите щифтове в NodeMCU, точно както сте направили с платката Arduino.
В NodeMCU има 16 GPIO пина и ни трябват 6 пина и gnd, vcc. Свържете щифтовете съгласно схемата, дадена по-долу:
Ще използваме 4 щифта за данни и RS, EN на LCD, които са свързани като:
d7 пин на LCD == D8 пин на NodeMCU
d6 пин на LCD == D7 пин на NodeMCU
d5 пин на LCD == D6 пин на NodeMCU
d4 щифт на LCD == D5 пин на NodeMCU
RS пин на LCD == D2 пин на NodeMCU
En щифт на LCD == D3 щифт на NodeMCU
Можете да използвате всеки GPIO за тези връзки.
Сега качете кода с помощта на Arduino IDE, както е обяснено по-рано. Кодът е същият като за платката Arduino, който може да се намери в примера Liquidcrystal. Програмата е проста и лесно разбираема, ако искате да научите повече за програмата, проверете нашия LCD интерфейс с програма Arduino.
КОД:
#include
Както видяхме, вече използвахме 6 щифта NodeMCU. Вече има по-малко налични щифтове за тази малка дъска и ни остават малко щифтове за свързване с други сензори.
Така че, за да се преодолеем с този проблем , ще използваме IC регистър за смяна, който ще минимизира не. на изводи, използвани на NodeMCU.
Интерфейс LCD с ESP12 с използване на Shift Register SN74HC595N:
Има 8 изходни и 3 входни щифта в IC регистър на смяна. Ще използваме 6 изходни щифта за свързване с LCD и 3 входни щифта към NodeMCU.
Връзките на LCD с IC са дадени като:
D7 щифт на LCD == пин 1 на IC
D6 щифт на LCD == пин 2 на IC
D5 щифт на LCD == пин 3 на IC
D4 щифт на LCD == пин 4 на IC
RS щифт на LCD == пин 7 на IC
En щифт на LCD == щифт 15 на IC
Свързване на NodeMCU с IC:
D6 пин на NodeMCU == пин 14 на IC, DATA PIN на IC
D7 пин на NodeMCU == пин 12 на IC, LATCH PIN на IC
D8 пин на NodeMCU == пин 11 на IC, ЧАСОВ ПИН на IC
Свържете ПИН 16 и ПИН 10 на IC към Vcc.
Свържете ПИН 8 и ПИН 13 на IC към GND.
Направете веригата внимателно съгласно долната диаграма:
Сега нашият Хардуер е готов за програмиране.
Сега се нуждаем от библиотека „ LiquidCrystal595 “, която може да бъде изтеглена от тази връзка https://github.com/tehniq3/LiquidCrystal595, като следвате стъпките по-долу:
1. Отидете в менюто Sketch на Arduino IDE.
2. Щракнете върху Включване на библиотека .
3. Сега кликнете върху Добавяне на.zip библиотека. Изберете zip файл, който сте изтеглили от дадена връзка и го направите.
Сега качете кода, даден по-долу, и ще видите съобщение, което отпечатва LCD дисплея.
КОД:
#include
Кодът е прост, тъй като трябва просто да дадем пин за данни, щифт за заключване и щифт за часовник като аргумент в LiquidCrystal595 lcd (); и останалата част от кода е същата, както направихме по-рано.
По този начин току-що сте запазили 3 щифта на NodeMCU, като използвате Shift Register.
Също така проверете 16x2 LCD взаимодействие с други микроконтролери:
- LCD взаимодействие с PIC микроконтролер
- 16x2 LCD взаимодействие с Raspberry Pi с помощта на Python
- Свързване на LCD с микроконтролер ATmega32
- LCD взаимодействие с микроконтролер 8051