» elektronikk »Benk for å studere HD44780 på et lavt nivå

HD44780 studiebenk på lavt nivå



Du skrev i programmet for Arduino noe som:

lcd.print ("Hei, verden!")


Styret utførte lydig kommandoen, og teksten dukket opp på displayet. Men hvordan “enhet” sa noe, og den andre “hørte” og “forstå”? Dette er som å be artisten lage portrettet ditt, men ikke se hvordan han jobber med det. Forfatteren av Instructsbles under kallenavnet indoorgeek kom med et stativ som vil hjelpe deg å føle deg i skoene til den "levende Arduino" og styre HD44780 på et lavt nivå. I en av konkurransene, dette hjemmelaget produkt vant førstepremien.

Den trenger en liten detalj: hvilken som helst modul (LCD, VLI eller PMOLED) på HD44780-kontrolleren eller kompatibel, åtte vippebrytere, en ikke-låseknapp, en skyvebryter, en 1 kΩ variabel motstand, et kort med en Micro USB-kontakt og et etui.








Fra det som ikke er vist på bildet, trenger vi: en motstand på 10 kOhm og en kondensator på 100 μF og minst 6,3 V.

Indoorgeek tok selv en modul av den vanligste typen: LCD, 16 tegn per linje, to linjer. Men resten av modulene har samme kontrollprinsipp, bare pinout kan avvike noe, så ikke vær for lat til å se i databladet.

I alle tilfeller tilsvarer tilkoblingen til fellestråden logisk null, og tilkoblingen til +5 volt strømbussen tilsvarer enhet.

Pinnene 1 og 2 er beregnet for å slå på modulen. Den første av dem er alltid koblet til en vanlig ledning, og den andre er alltid med en kraftbuss.

Pin 3 er for justering av kontrast. Når en spenning på 0 til 5 volt påføres den i forhold til fellestråden, endres kontrasten fra null til maksimum.

Pin 4 lar deg velge mellom et dataregister og et instruksjonsregister. Vi gir en logisk null - registeret over instruksjoner (med andre ord kommandoer) er valgt, enheten er dataregisteret.

Instruksjoner kan for eksempel være følgende: initialiser kontrolleren, fjern skjermen osv., Og dataene inkluderer tegn som du vil vise på indikatoren.

Du kan tvert imot lese data fra et eller annet register. For å gjøre dette, må du bruke et høyt nivå på pinne 5, og skjermen går over i informasjonsutgangsmodus tilbake til mikrokontrolleren. For å begynne å skrive data fra mikrokontrolleren til skjermkontrolleren igjen, må du sende lavt nivå 5 til pinne 5. Ganske ofte brukes ikke lesemodus i det hele tatt, som for eksempel i dette hjemmelagde produktet.

I henhold til pinnene 7 til 14 kan displayet utveksle kommandoer og data i 8-bits koding. Det laveste nivået tilsvarer pinne 7, det høyeste - 14.

Pinne 6 er nødvendig for porter.Du setter sakte data på pinnene 7 til 14, men mens pinne 6 er en logisk null, svarer ikke modulen i det hele tatt. Så, uten å endre tilstanden til pinnene 7 til 14, sender du en kortvarig puls på høyt nivå til pinne 7 - og dataene blir overført.

Konklusjoner 15 og 16 - ernæring av bakgrunnsbelysningen, hvis noen. 15 - pluss, 16 - minus.

Tilgjengelig for indorgeek, saken viste seg å være 200x150x40 millimeter i størrelse. Denne saken ble hentet fra en annen, demontert hjemmelaget, og det var allerede hull i den. Mesteren brukte dem i den nye designen maksimalt for å gjøre så lite som mulig tilleggsutstyr.



Han satte åtte vippebrytere for å endre tilstanden til data- / kommandobusslinjene, en bryter for å velge mellom registre (se over), en knapp for porting, en variabel motstand for kontinuerlig justering av kontrast.

Stigekortet med en Micro USB-kontakt har praktiske pinner som gjør det enkelt å koble til kabler. Her trengs bare to av dem: +5 V og en felles ledning. Hvis du ikke har et slikt brett, og en Micro USB-stikk loddet fra et sted virker upraktisk for lodding, kan du bare ta en ledning med en USB-kontakt. La oss i alle fall gjenta etter masteren og lodde en slik ordning:



Kontaktene til vippebryterne tilsvarer den øvre posisjonen, indorgeek koblet sammen og satte et pluss på dem. Han gjorde det samme med kontaktene til vippebryterne tilsvarende den nedre posisjonen, bare han ga dem et minus. Han koblet de bevegelige kontaktene til bryterbryterne ikke med hverandre, men med konklusjonene fra databuss / modulkommandoene i samsvar med “vekten” til begge (D0 - pinne 7 - lav ordre, D7 - pinne 14 - høy). Hvis mestrene ikke hadde bitt rasende opptrekksmotstander i barndommen, ville han kunne bruke enklere vippebrytere - ikke bytte, men normalt åpen.

Men de samme motstandene, men i undertrykkelseskretsene for kontakt, ble han aldri fornærmet. Her trengs denne kretsen slik at skjermkontrolleren ikke tar ett trykk på strobeknappen for flere. Andre kontroller krever ikke undertrykkelse av skravling, siden så lenge strobeimpulsene ikke mottas, kan dataene på de resterende linjene endres mange ganger du vil. Det viktigste er ikke å berøre vippebryterne og bryteren med knappen nede. Så, med en motstand på 10 kOhm, trakk master 6 pinnen til fellestråden, og med knappen til plussbussen. Siden motstanden til knappen er mye lavere, når den trykkes, "trekkes den". Når den frigjøres, blir dens motstand nær uendelig, og motstanden "drar" den allerede. En kondensator på 100 uF (ikke vist i diagrammet), koblet med et pluss til plussbussen, og med et minus til motstanden og den sjette utgangen på skjermen, undertrykker skravlingen. Det er selvfølgelig bedre å undertrykke skravlingen med en bryterknapp og RS-trigger.

Ved skyvebryteren er utgangene fra de faste kontaktene koblet på samme måte som for vippebryterne, og den bevegelige bryteren er koblet til utgangen fra modulen 6. Her viste utvikleren igjen frykt for opptrekksmotstander. Denne bryteren er nødvendig for å velge mellom overføringsmodus for kommandoer (null) og data (enhet).

Indoorgeek koblet utgangen fra den variable motstanden som tilsvarer minimumskontrasten til fellestråden, motsatt av plussbussen, og midten (motoren) til modulens tredje utgang.

Konklusjoner 1, 5 og 16 (henholdsvis minus strøm, skrive / lese og minus bakgrunnsbelysning) master koblet til en felles ledning, slik at opptaksmodus velges kontinuerlig. Konklusjon 2 og 15 (henholdsvis pluss strøm og pluss bakgrunnsbelysning) koblet han til fem-volt-bussen. En strømbegrensende motstand gjennom bakgrunnsbelysning-LEDene er integrert i skjermmodulen.

Hvis du har samlet alt dette, foran deg nå - noe som dette:



Innendekselet på frontpanelet er designet slik at du kan gjøre det samme:



Du kan lære HD44780-kontrollerkommandoer og hvordan du kontrollerer dem ved å dataark. Du kan også se ferdige skripteksempler for simulator. Til å begynne med vil vi gjenta trinnene bak indoorgeek for å vise HELLO!

Slå på enheten. Baklyset lyser. Flytt skyvebryteren til posisjonen som tilsvarer logisk null, slik at indikatoren bytter til modus for mottak av kommandoer. Still det binære nummeret 00001111 på kommandoen / databussen med vippebryterne og trykk kort på strobe-knappen. Denne kommandoen betyr: slå på skjermen, gjør markøren synlig og blinkende, noe som vil skje. På samme måte vil vi utstede 00110000-kommandoen, som betyr: motta data i 8-bits format, velg den første linjen og font 5 med 8 piksler. Visuelt vil ingenting skje, men et sted inne i skjermkontrolleren vil de nødvendige bryterne oppstå. Du kan overføre data. Vi oversetter skyvebryteren til posisjonen som tilsvarer den logiske enheten, nå er indikatormodulen klar til å godta dem. Angi ASCII-koden for bokstaven H, dvs. 01001000, slå vippebryterne på bussen og trykk på strobe-knappen. Den tilsvarende bokstaven vises på skjermen, og markøren flytter en posisjon til høyre. Tilsvarende passerer vi bokstavene E, L, L, O og et utropstegn: 01000101, 01001100, 01001100, 01001111, 00100001. Hvis du gjorde det samme, spiller det ingen rolle på stativet du nettopp satt sammen eller i simulatoren, vil du se HELLO-inskripsjonen ! Liker dette:



Slik forsto du hvor mye Arduino gjør for bare noen få tegn. Og det er team som utfører mer komplekse handlinger, etter å ha mestret hvilke du kan få interessante effekter, definere ikke-standardtegn ...

Utflukten din til "kjøkkenet" på Arduino-biblioteket LiquidCrystal er akkurat begynt, og la det være morsomt!
7.5
7.5
7.5

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...