Indholdsfortegnelse:

1602 LCD -kontraststyring fra Arduino: 5 trin
1602 LCD -kontraststyring fra Arduino: 5 trin

Video: 1602 LCD -kontraststyring fra Arduino: 5 trin

Video: 1602 LCD -kontraststyring fra Arduino: 5 trin
Video: Измерьте постоянный ток до 500A с помощью шунтирующего резистора и Arduino - дисплей на LCD1602 2024, Juli
Anonim
Image
Image
Typisk brugssag
Typisk brugssag

Mens jeg arbejdede på et nyt projekt, stødte jeg på et problem, hvor jeg ville kontrollere baggrundslyset og kontrasten på et 1602 LCD -display gennem en Arduino, men displayet var virkelig flimmer.

Trin 1: Typisk brugssag

Typisk brugssag
Typisk brugssag

I en typisk brugstilpasning justeres skærmkontrasten via en variabel modstand i henhold til databladet. I sådanne tilfælde kan vi gennem modstanden justere spændingen, der ses på V0 -stiften, og kontrasten justeres i overensstemmelse hermed. Med Arduino er det bedste, vi kan udsende, et PWM -signal med en anden cyklus, men modulet er desværre ikke glad for at vise det.

Trin 2: Kode brugt i eksemplet

Kode brugt på eksemplet
Kode brugt på eksemplet
Kode brugt på eksemplet
Kode brugt på eksemplet

Inden jeg går ind i skematisk, hvordan vi kan løse dette, lad mig forklare dig den kode, jeg bruger.

Den første ting, vi skal gøre, er at inkludere Liquid Crystal -biblioteket, så vi kan oprette forbindelse til skærmen. Derefter opsætter vi LCD'en med de ben, som vi har vores display tilsluttet, og derudover definerer vi de ben, vi har vores baggrundslys og kontraststifter tilsluttet. Kontrastkontrollen på displayet er V0, og den er forbundet til pin 6 på Arduino, og baggrundsbelysningskontrollen er markeret som A, og da dette grundlæggende er en LED, er den forbundet via en 220 Ohm modstand til pin 10 på Arduino.

I opsætningsfunktionen indstiller vi først lysstyrken på displayet til max, og derefter starter vi kommunikationen med LCD'et. For at sikre, at det fungerer korrekt, viser vi en meddelelse om "hej verden", og vi venter i cirka et halvt sekund, så vi kan kontrollere, at output er OK.

Meget ofte, afhængigt af V0 -pinens tilstand, kan du stå over for problemet med ikke at få vist noget, selvom forventningen var en anden. Årsagen til dette er kontrastnålværdien. Hvis kontrasten er indstillet for højt, er displayet næsten ikke synligt, så vi skal reducere det.

I loop -sektionen af koden rydder vi først indholdet på LCD -displayet, og da vi programmatisk vil ændre kontrasten, viser vi en tekst, og i en loop opdaterer vi pinoutput og viser den aktuelle værdi til displayet på den anden række.

Trin 3: Implementér lavpas RC -filter

Implementér lavpas RC -filter
Implementér lavpas RC -filter
Implementér lavpas RC -filter
Implementér lavpas RC -filter
Implementér lavpas RC -filter
Implementér lavpas RC -filter

Som du kan se, ser dette ud til at fungere, men displayet flimrer alt sammen. Grunden til dette er, at displayet forventer en fast spænding, men i stedet får det et PWM -signal fra Arduino. For at løse dette tilføjer vi et meget simpelt lavpas RC -filter, så udgangsspændingen kan filtreres, og vi får et relativt stabilt output.

Lavpasfilteret består af en 1 kOhm modstand, der på den ene side er forbundet til stiften 6 på Arduino og derefter til V0 på displayet. 10 uF kondensatoren er forbundet med sin negative side til jorden, og den positive er forbundet til V0 -stiften. Modstanden oplader kondensatoren med PWM -impulser, og afhængigt af driftscyklusserne oplades den til en anden spænding.

Trin 4: Kontroller programlyset baggrundslyset

Programmatisk styre baggrundslyset
Programmatisk styre baggrundslyset

I lighed med hvordan vi indstiller kontrasten, kan vi gøre det samme med baggrundsbelysningstappen, men uden behov for at tilføje et lavpasfilter, da baggrundsbelysningens LED ikke er synlig, mens den tændes og slukkes så hurtigt.

Trin 5: God fornøjelse

God fornøjelse!
God fornøjelse!

Jeg håber, at dette meget enkle trick hjælper dig med dit næste projekt. Hvis du kunne lide denne instruks, så overvej at følge mig og abonnere på min YouTube -kanal.

Smag koden på YouTube!

Skål!

Anbefalede: