Koble LCD 1602 til Arduino: beskrivelse, funksjoner, instruksjoner, funksjoner, problemer og løsninger

Innholdsfortegnelse:

Koble LCD 1602 til Arduino: beskrivelse, funksjoner, instruksjoner, funksjoner, problemer og løsninger
Koble LCD 1602 til Arduino: beskrivelse, funksjoner, instruksjoner, funksjoner, problemer og løsninger
Anonim

Hver radioamatør, etter litt enkelt gjør-det-selv-arbeid, kommer til målet om å konstruere noe stort ved hjelp av sensorer og knapper. Tross alt er det mye mer interessant å vise data på skjermen enn på portmonitoren. Men så oppstår spørsmålet: hvilken skjerm skal du velge? Og generelt, hvordan koble den til, hva trengs for å koble til? Svarene på disse spørsmålene vil bli diskutert i denne artikkelen.

LCD 1602-skjerm for tilkobling til arduino
LCD 1602-skjerm for tilkobling til arduino

LCD 1602

Blant de mange alternativene blant skjermer, vil jeg gjerne skille ut LCD1602-skjermen basert på HD4478-kontrolleren. Det er denne skjermen i to farger: hvite bokstaver på blå bakgrunn, svarte bokstaver på gul bakgrunn. Å koble LCD 1602 til Arduino vil heller ikke forårsake noen problemer, siden det er et innebygd bibliotek, og du trenger ikke å laste ned noe ekstra. Skjermer varierer ikke bare i pris, men også i størrelse. Radioamatører bruker ofte 16x 2, dvs. 2 linjer med 16 tegn. Men det er også 20 x 4, hvor det er 4 linjer med 20 tegn. Dimensjoner og farger spiller ingen rolle for å koble LCD 1602-skjermen til Arduno, de er koblet på samme måte. Synsvinkelen er 35 grader, skjermens responstid er 250 ms. Kan arbeide ved temperaturer fra -20 til 70 grader Celsius. Når den jobber bruker den 4 mA for skjermen og 120 mA for bakgrunnsbelysningen.

LCD 1602 skjerm pinout
LCD 1602 skjerm pinout

Hvor brukes det?

Denne skjermen har sin popularitet ikke bare blant radioamatører, men også blant store produsenter. For eksempel bruker skrivere, kaffemaskiner også LCD1602. Dette er på grunn av den lave prisen, denne skjermen koster 200-300 rubler på kinesiske nettsteder. Det er verdt å kjøpe der, siden i våre butikker er marginene for denne skjermen veldig høye.

Koble til Arduino

Å koble LCD 1602 til Arduino Nano og Uno er ikke annerledes. Du kan jobbe med skjermen i to moduser: 4 bits og 8. Når du arbeider med en 8-bits skjerm, brukes både de lavere og høyere bitene, og med en 4-bits bare de lavere. Det er ikke noe spesielt poeng å jobbe med 8-bit, siden 4 flere kontakter vil bli lagt til for å koble til, noe som ikke er tilrådelig, fordi hastigheten ikke vil være høyere, grensen for skjermoppdatering er 10 ganger per sekund. Generelt brukes mange ledninger for å koble lcd 1602 til Arduino, noe som forårsaker noen ulemper, men det er spesielle skjold, men mer om det senere. Bildet viser tilkoblingen av skjermen til Arduino Uno:

Kobler skjermen til arduino
Kobler skjermen til arduino

Kodeeksempel:


include //Legg til det nødvendige biblioteket LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Sett skjermdimensjon lcd.setCursor(0, 0); // Sett markøren til begynnelsen av linje 1 lcd.print("Hei, verden!"); // Vis tekst lcd setCursor(0, 1); // Sett markøren til begynnelsen av linje 2 lcd.print("fb.ru"); // Output text } void loop(){ }

Hva gjør koden? Først av alt er biblioteket for å jobbe med skjermen tilkoblet. Som nevnt ovenfor er dette biblioteket allerede inkludert i Arduino IDE, og du trenger ikke å laste ned og installere det i tillegg. Deretter defineres kontaktene som er koblet til pinnene: henholdsvis RS, E, DB4, DB5, DB6, DB7. Deretter settes skjermstørrelsen. Siden vi jobber med en versjon med 16 tegn og 2 linjer, skriver vi slike verdier. Vi setter markøren til begynnelsen av den første linjen og viser vår første tekst Hello World. Deretter setter du markøren på den andre linjen og viser navnet på nettstedet. Det er alt! Det ble vurdert å koble lcd 1602 til Arduino Uno.

Hva er I2C og hvorfor trengs det?

Som nevnt ovenfor krever det mange pinner å koble til skjermen. For eksempel, når du arbeider med flere sensorer og en LCD-skjerm, kan 1602 kontakter rett og slett ikke være nok. Ofte bruker radioamatører Uno- eller Nano-versjonene, der det ikke er mange kontakter. Så kom folk med spesielle skjold. For eksempel I2C. Den lar deg koble til skjermen med bare 4 pinner. Dette er to ganger mindre. I2C-modulen selges både separat, hvor du må lodde den selv, og allerede loddet tilLCD-skjerm 1602.

I2C-modul for LCD-skjerm 1602
I2C-modul for LCD-skjerm 1602

Tilkobling med I2C-modul

Å koble LCD 1602 til Arduino Nano med I2C tar liten plass, bare 4 pinner: jord, strøm og 2 datautganger. Vi kobler strøm og jord til henholdsvis 5V og GND på Arduinoen. De resterende to kontaktene: SCL og SDA kobles til eventuelle analoge pinner. På bildet kan du se et eksempel på å koble lcd 1602 til arduino med I2C-modul:

Vis tilkoblinger ved hjelp av I2C-modulen
Vis tilkoblinger ved hjelp av I2C-modulen

Programkode

Hvis det var nødvendig å bruke bare ett bibliotek for å jobbe med en skjerm uten modul, så trengs to biblioteker for å jobbe med en modul. En av dem er allerede i Arduino IDE - Wire. Et annet bibliotek, LiquidCrystal I2C, må lastes ned separat og installeres. For å installere biblioteket i Arduino, må innholdet i det nedlastede arkivet lastes opp til bibliotekets rotmapp. Kodeeksempel med I2C:


include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Sett opp displayet void setup() { lcd.init(); lcd.backlight();// Slå på skjermens bakgrunnsbelysning lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Sett markøren til andre linje og nulltegn. lcd.setCursor(0, 1); // Skriv ut antall sekunder siden arduino startet lcd.print(millis()/1000); }

Som du kan se, er koden nesten den samme.

Hvordan legger jeg til mitt eget symbol?

Problemet med disse skjermene er at det ikke er noenstøtte for kyrilliske og symboler. For eksempel må du laste inn et tegn i displayet slik at det kan reflektere det. For å gjøre dette lar skjermen deg lage opptil 7 av karakterene dine. Presenter bordet:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Hvis 0 - det er ingenting der, hvis 1 - er det et skyggelagt område. I eksemplet ovenfor kan du se opprettelsen av "smilende smiley"-karakteren. Ved å bruke et eksempelprogram i Arduino, vil det se slik ut:


include include // Inkluder det nødvendige biblioteket // Smile symbol bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Angi skjermdimensjon lcd.createChar(1, smil); // Lag tegn nummer 1 lcd.setCursor(0, 0); // Sett markøren til begynnelsen av linje 1 lcd.print("\1"); // Vis smileyen (tegn nummer 1) - "\1" } void loop(){ }

Som du kan se, ble opprettetbitmasken er den samme som tabellen. Når den er opprettet, kan den sendes ut som en variabel til skjermen. Husk at kun 7 tegn kan lagres i minnet. I prinsippet er dette nok. Hvis du for eksempel vil vise gradsymbolet.

Legge til egendefinerte tegn til LCD 1602
Legge til egendefinerte tegn til LCD 1602

Problemer der skjermen kanskje ikke fungerer

Det er tider når skjermen ikke fungerer. Den slår seg for eksempel på, men viser ikke tegn. Eller den slår seg ikke på i det hele tatt. Først, se om du koblet kontaktene riktig. Hvis du pleide å koble lcd 1202 til Arduino uten I2C, så er det veldig lett å bli viklet inn i ledningene, noe som kan føre til at skjermen fungerer feil. Du bør også sørge for at displaykontrasten økes, siden ved minimum kontrast er det ikke engang synlig om LCD 1602 er på eller ikke. Hvis dette ikke hjelper, så kan problemet ligge i loddingen av kontaktene, dette er ved bruk av I2C-modulen. En vanlig årsak til at skjermen kanskje ikke fungerer er feil innstilling av I2C-adressen. Faktum er at det er mange produsenter, og de kan angi en annen adresse, du må rette den her:


LiquidCrystal_I2C lcd(0x27, 16, 2);

I parentes kan du se to verdier, 0x27 og 16, 2 (16, 2 er skjermstørrelsen, og 0x27 er bare I2C-adressen). I stedet for disse verdiene kan du prøve å sette 0x37 eller 0x3F. Vel, en annen grunn er ganske enkelt en defekt LCD 1602. Tatt i betraktning at nesten alt for Arduino er laget i Kina, kan du ikke være 100% sikker på at den kjøpteproduktet er ikke defekt.

LCD 1602 fordeler og ulemper

La oss se på fordelene og ulempene med LCD 1602.

Pros

  • Pris. Denne modulen kan kjøpes til en svært rimelig pris i kinesiske butikker. Prisen er 200-300 rubler. Noen ganger selges til og med med en I2C-modul.
  • Enkelt å koble til. Sannsynligvis er det ingen som kobler til en LCD 1602 uten I2C i disse dager. Og med denne modulen tar tilkoblingen bare 4 pinner, det vil ikke være noen "vev" av ledninger.
  • Programmering. Takket være ferdige biblioteker er det enkelt å jobbe med denne modulen, alle funksjoner er allerede registrert. Og hvis du trenger å legge til karakteren din, tar det bare et par minutter.

Ulemper

I løpet av brukstiden av tusenvis av radioamatører, har ingen store minuser blitt identifisert, bare det er tilfeller av å kjøpe et ekteskap, siden kinesiske visnings alternativer hovedsakelig brukes

Denne artikkelen diskuterte hvordan du kobler LCD 1602-skjermen til Arduino, og presenterte også eksempelprogrammer for å arbeide med denne skjermen. Den er virkelig en av de beste i sin kategori, det er ikke bare at tusenvis av radioamatører velger den for sine prosjekter!

Anbefalt: