» elektronik »Bænk til studier af HD44780 på et lavt niveau

HD44780 studiebenk med lavt niveau



Du skrev i programmet til Arduino noget som:

lcd.print ("Hej, verden!")


Tavlen udførte lydigt kommandoen, og tekst dukkede op på displayet. Men hvordan “sagde” en enhed noget, og den anden “hørte” og “forstå”? Dette er som at bede kunstneren om at tegne dit portræt, men ikke se, hvordan han fungerer på det. Forfatteren af ​​Instructsbles under kaldenavnet indoorgeek kom med et stativ, der kan hjælpe dig med at føle dig i skoene fra den "levende Arduino" og styre HD44780 på et lavt niveau. I en af ​​konkurrencerne, dette hjemmelavet produkt vandt den første præmie.

Det har brug for en lille detalje: ethvert modul (LCD, VLI eller PMOLED) på HD44780-controlleren eller kompatibel, otte vippekontakter, en ikke-låseknap, en glidekontakt, en 1 kΩ variabel modstand, et kort med en Micro USB-stik og et etui.








Fra det, der ikke er vist på billedet, har vi brug for: en modstand på 10 kOhm og en kondensator på 100 μF og mindst 6,3 V.

Indoorgeek tog selv et modul af den mest almindelige type: LCD, 16 tegn pr. Linje, to linjer. Men resten af ​​modulerne har det samme kontrolprincip, kun pinout kan afvige lidt, så vær ikke for doven til at kigge ind i databladet.

I alle tilfælde svarer forbindelsen til den fælles ledning på logisk nul, og forbindelsen til +5 volt strømbussen svarer til enhed.

Pin 1 og 2 er beregnet til at tænde modulet. Den første af dem er altid forbundet til en fælles ledning, og den anden er altid med en el-bus.

Pin 3 er til justering af kontrast. Når en spænding på 0 til 5 volt påføres den i forhold til den fælles ledning, ændres kontrasten fra nul til maksimal.

Pin 4 giver dig mulighed for at vælge mellem et dataregister og et instruktionsregister. Vi giver et logisk nul - instruktionsregisteret (med andre ord kommandoer) vælges, enheden er dataregisteret.

Instruktioner kan for eksempel være følgende: initialiser controlleren, ryd skærmen osv., Og dataene inkluderer tegn, som du vil vise på indikatoren.

Du kan tværtimod læse data fra et eller andet register. For at gøre dette skal du anvende et højt niveau på pin 5, og skærmen går i informationsudgangstilstand tilbage til din mikrocontroller. For at begynde at skrive data fra din mikrocontroller til skærmcontrolleren igen, skal du sende lavt niveau 5 til pin 5. Ganske ofte bruges ikke læsningstilstanden overhovedet, som for eksempel i dette hjemmelavede produkt.

I henhold til stifterne 7 til 14 kan displayet udveksle kommandoer og data i 8-bit kodning. Det laveste niveau svarer til pin 7, det højeste - 14.

Pin 6 er nødvendig til portene.Du indstiller langsomt data på stifterne 7 til 14, men mens stift 6 er en logisk nul, svarer modulet overhovedet ikke på dette. Derefter sender du en korttidsimpuls på højt niveau til pin 7 - uden at ændre stifterne 7 til 14 - og dataene transmitteres.

Konklusion 15 og 16 - ernæring af baggrundsbelysningen, hvis nogen. 15 - plus, 16 - minus.

Tilgængelig for indorgeek, det viste sig at være 200x150x40 millimeter i størrelse. Denne sag blev taget fra en anden, adskilt hjemmelavet, og der var allerede huller i den. Skibsføreren brugte dem maksimalt i det nye design for at gøre så lidt som muligt yderligere.



Han satte otte skifter til at ændre status for data / kommandobuslinier, en switch til at vælge mellem registre (se ovenfor), en knap til port, en variabel modstand til kontinuerlig justering af kontrast.

Stigerørskortet med et Micro USB-stik har praktiske stifter, der gør det nemt at tilslutte ledninger. Kun to af dem er nødvendige her: +5 V og en fælles ledning. Hvis du ikke har et sådant bræt, og et Micro USB-stik, der er loddet et eller andet sted, synes at være upraktisk til lodning, kan du bare tage en ledning med et USB-stik. Lad os under alle omstændigheder gentage efter masteren og lodde en sådan ordning:



Kontakterne på vippekontakterne svarer til den øverste position, indorgeek forbundet sammen og arkiveret et plus på dem. Han gjorde det samme med kontakterne på vippekontakterne svarende til den nederste position, kun han gav dem et minus. Han tilsluttede bevægelige kontakter fra vippekontakterne ikke med hinanden, men med konklusionerne fra databus / modulkommandoer i overensstemmelse med “vægten” af begge (D0 - pin 7 - lav orden, D7 - pin 14 - høj). Hvis mestrene ikke havde bidt rasende pull-up-modstande i barndommen, ville han være i stand til at bruge enklere vippekontakter - ikke skifte, men normalt åben.

Men de samme modstande, men i undertrykkelseskredsløbet for kontaktudspring blev han aldrig fornærmet. Her er dette kredsløb nødvendigt, så skærmkontrollen ikke tager et enkelt tryk på strobeknappen i flere. Andre kontroller kræver ikke chatterundertrykkelse, da så længe strobeimpulser ikke modtages, kan dataene på de resterende linjer ændres mange gange, som du vil. Det vigtigste er ikke at røre ved afbryderkontakten og kontakten med knappen nede. Så med en modstand på 10 kOhm trak masteren pin 6 til den fælles ledning og med knappen til plusbussen. Da knapens modstand er meget lavere, når den trykkes, "trækker den". Når den frigøres, bliver dens modstand tæt på uendelig, og modstanderen "trækker" den allerede. En kondensator på 100 uF (ikke vist i diagrammet), der er forbundet med et plus til plusbussen, og med et minus til modstanden og det sjette output på displayet, undertrykker chatter. Det er naturligvis bedre at undertrykke snakken med en switch-knap og RS-trigger.

Ved glidekontakten er udgangene fra de faste kontakter forbundet på samme måde som for vippekontakterne, og den bevægelige kontakt er forbundet til udgangen fra modulet 6. Her viste udvikleren igen en frygt for pull-up modstande. Denne switch er nødvendig for at vælge mellem transmissionstilstande af kommandoer (nul) og data (enhed).

Indoorgeek tilsluttede udgangen fra den variable modstand svarende til minimumskontrasten til den fælles ledning, det modsatte af plusbussen og midten (motor) til modulets tredje udgang.

Konklusion 1, 5 og 16 (henholdsvis minus strøm, skriv / læse og minus baggrundsbelysning) masteren er tilsluttet en fælles ledning, således er optagelsestilstand konstant valgt. Konklusion 2 og 15 (henholdsvis plus strøm og plus baggrundsbelysning), han tilsluttede sig til den fem-volt bus. En strømbegrænsende modstand gennem baggrundslys-LED'er er integreret i displaymodulet.

Hvis du har samlet alt dette foran dig nu - noget i denne retning:



Indvendigt frontpanel designet, så du kan gøre det samme:



Du kan lære HD44780-controller-kommandoer, og hvordan du styrer dem ved datablad. Du kan også se færdige scripteksempler til simulatoren. Til at begynde med gentager vi trinnene bag indoorgeek for at vise HELLO!

Tænd for enheden. Baggrundsbelysningen lyser. Flyt glidekontakten til den position, der svarer til den logiske nul, så indikatoren skifter til tilstanden for modtagelse af kommandoer. Indstil det binære nummer 00001111 på kommandoen / databussen med tumblerne, og tryk kort på strobe-knappen. Denne kommando betyder: tænd for displayet, gør markøren synlig og blinkende, hvilket vil ske. På samme måde udsteder vi kommandoen 00110000, som betyder: modtag data i 8-bit format, vælg den første linje og skrifttype 5 med 8 pixels. Visuelt vil der ikke ske noget, men et sted inde i skærmkontrollen foretages de nødvendige kontakter. Du kan overføre data. Vi oversætter glidekontakten til den position, der svarer til den logiske enhed, nu er indikatormodulet klar til at acceptere dem. Indstil ASCII-koden for bogstavet H, dvs. 01001000, skift vippekontakterne på bussen og tryk på knappen for strobe. Det tilsvarende bogstav vises på skærmen, og markøren flytter en position til højre. Tilsvarende passerer vi bogstaverne E, L, L, O og et udråbstegn: 01000101, 01001100, 01001100, 01001111, 00100001. Hvis du gjorde den samme ting, betyder det ikke noget på det stativ, du lige har samlet eller i simulatoren, vil du se HELLO-inskriptionen ! Kan du lide dette:



Sådan forstod du, hvor meget Arduino gør for kun at få få tegn. Og der er hold til at udføre mere komplekse handlinger, når man har mestret hvilke, du kan få interessante effekter, definere ikke-standardtegn ...

Din udflugt til "køkkenet" på Arduino-biblioteket LiquidCrystal er lige begyndt, og lad det være sjovt!
7.5
7.5
7.5

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt

Vi råder dig til at læse:

Giv den til smartphonen ...