- Nødvendigt materiale:
- Skiftregister:
- Interface LCD med ESP12 uden brug af Shift Register:
- KODE:
- Interface LCD med ESP12 ved hjælp af Shift Register SN74HC595N:
- KODE:
I denne vejledning vil vi se, hvordan man interagerer NodeMCU med 16x2 LCD uden at bruge I2C-kommunikation. Her vil vi interface 16x2 LCD ved hjælp af skiftregister SN74HC595. Vi kan også interface det selv uden brug af skiftregister. Vi vil se begge slags grænseflader i denne vejledning. Hovedforskellen mellem begge grænseflader er antallet af ben, der bruges i NodeMCU.
Nødvendigt materiale:
- NodeMCU ESP12E
- SN74HC595 Skiftregister IC
- 16x2 LCD-modul
- Potentiometre
- Han-hun ledninger
- Brødbræt
Skiftregister:
I digitale systemer er et skiftregister en kombination af flip-flops, der er kaskadede i serie og deler det samme ur. I denne kaskadepakke fungerer data-out fra en flip-flop som data-in til næste flip-flop, hvilket resulterer i et kredsløb, der skifter bit-arrayet, der er gemt i den ene position.
IC'en, som vi skal bruge, er SN74HC595N. Det er en simpel 8-bit serie i parallel ud shift register IC. Med enkle ord tillader denne IC yderligere input eller output, der skal føjes til en mikrocontroller ved at konvertere data mellem parallelle og serielle formater. Vores mikrocontroller bruger 3 ben på denne IC til at sende data serielt. Faktisk kommer 8-bit output på 8 ben efter at have fået 8-bit information fra input pins. Lær mere om skiftregistre her.
PIN-diagram og PIN-funktioner for IC SN74HC595N er angivet nedenfor:
Du finder interface på 74HC595N med Arduino og med Raspberry pi her.
Interface LCD med ESP12 uden brug af Shift Register:
Hvis du har brugt 16x2 LCD med Arduino-kortet, bliver det meget let. Du skal bare tilslutte stifter i NodeMCU på samme måde som du har gjort med Arduino-kortet.
Der er 16 GPIO-ben i NodeMCU, og vi har brug for 6 ben og GND, vcc. Forbind benene i henhold til kredsløbsdiagrammet nedenfor:
Vi bruger 4 datapinde og RS, EN af LCD, som er forbundet som:
d7 pin af LCD == D8 pin af NodeMCU
d6 pin af LCD == D7 pin af NodeMCU
d5 pin af LCD == D6 pin af NodeMCU
d4 pin af LCD == D5 pin af NodeMCU
RS-pin på LCD == D2-pin i NodeMCU
En pin på LCD == D3 pin i NodeMCU
Du kan bruge enhver GPIO til disse forbindelser.
Upload nu koden ved hjælp af Arduino IDE som forklaret tidligere. Koden er den samme som for Arduino-kort, som kan findes i Liquidcrystal-eksemplet. Programmet er enkelt og let forståeligt, hvis du vil lære mere om programmet, se vores LCD-interface til Arduino-programmet.
KODE:
#omfatte
Som vi så, brugte vi allerede 6 ben af NodeMCU. Der er allerede færre stifter til rådighed til dette lille bord, og vi har få stifter tilbage til interface til andre sensorer.
Så for at overvinde dette problem bruger vi shift register IC, som minimerer nej. af ben, der bruges på NodeMCU.
Interface LCD med ESP12 ved hjælp af Shift Register SN74HC595N:
Der er 8 output og 3 input pins tilgængelige i skiftregister IC. Vi bruger 6 outputstifter til at forbinde til LCD og 3 inputstifter til NodeMCU.
Forbindelser mellem LCD og IC gives som:
D7 pin på LCD == pin 1 i IC
D6 pin på LCD == pin 2 i IC
D5 pin på LCD == pin 3 i IC
D4 pin på LCD == pin 4 i IC
RS-pin på LCD == pin 7 på IC
En pin på LCD == pin 15 i IC
Forbindelse af NodeMCU med IC:
D6 pin af NodeMCU == pin 14 af IC, DATA PIN for IC
D7 pin af NodeMCU == pin 12 af IC, LATCH PIN for IC
D8 pin af NodeMCU == pin 11 af IC, CLOCK PIN for IC
Forbind PIN 16 og PIN 10 af IC til Vcc.
Forbind PIN 8 og PIN 13 af IC til GND.
Lav kredsløb omhyggeligt i henhold til nedenstående diagram:
Nu er vores hardware klar til programmering.
Nu har vi brug for et bibliotek " LiquidCrystal595 ", som kan downloades fra dette link https://github.com/tehniq3/LiquidCrystal595 ved at følge nedenstående trin:
1. Gå til skitse- menu i Arduino IDE.
2. Klik på Inkluder bibliotek .
3. Klik nu på Tilføj.zip-bibliotek. Vælg zip-fil, du har downloadet fra det givne link, og det er gjort.
Upload nu koden nedenfor, og du vil se en meddelelse, der udskriver LCD-skærmen.
KODE:
#omfatte
Koden er enkel, da vi bare skal give datapind, låsepind og urpind som argument i LiquidCrystal595 lcd (); og resten af koden er den samme som vi tidligere har gjort.
På denne måde har du lige gemt 3 ben af NodeMCU ved hjælp af Shift Register.
Kontroller også 16x2 LCD-interface med andre mikrocontrollere:
- LCD-grænseflade med PIC-mikrocontroller
- 16x2 LCD-grænseflade med Raspberry Pi ved hjælp af Python
- Interfacing LCD med ATmega32 Microcontroller
- LCD-grænseflade med 8051 mikrokontroller