Hver radioamatør kommer efter noget simpelt gør-det-selv-arbejde til målet om at konstruere noget storslået ved hjælp af sensorer og knapper. Det er trods alt meget mere interessant at vise data på skærmen end på portmonitoren. Men så opstår spørgsmålet: hvilken skærm skal man vælge? Og generelt, hvordan forbinder man det, hvad er nødvendigt for at forbinde? Svarene på disse spørgsmål vil blive diskuteret i denne artikel.
LCD 1602
Blandt de mange muligheder blandt skærme vil jeg gerne fremhæve LCD1602-skærmen baseret på HD4478-controlleren. Der er dette display i to farver: hvide bogstaver på en blå baggrund, sorte bogstaver på en gul baggrund. At tilslutte LCD 1602 til Arduino vil heller ikke give problemer, da der er et indbygget bibliotek, og du behøver ikke at downloade noget ekstra. Skærme adskiller sig ikke kun i pris, men også i størrelse. Ofte bruger radioamatører 16x 2, dvs. 2 linjer med 16 tegn. Men der er også 20 x 4, hvor der er 4 linjer á 20 tegn. Dimensioner og farve spiller ingen rolle i forbindelse med tilslutning af lcd 1602-skærmen til Arduno, de er forbundet på samme måde. Betragtningsvinklen er 35 grader, displayets responstid er 250 ms. Kan arbejde ved temperaturer fra -20 til 70 grader Celsius. Når den arbejder, bruger den 4 mA til skærmen og 120 mA til baggrundslyset.
Hvor bruges det?
Denne skærm har sin popularitet ikke kun blandt radioamatører, men også blandt store producenter. For eksempel bruger printere, kaffemaskiner også LCD1602. Dette skyldes den lave pris, denne skærm koster 200-300 rubler på kinesiske websteder. Det er værd at købe der, da marginerne for denne skærm er meget høje i vores butikker.
Opret forbindelse til Arduino
Tilslutning af LCD 1602 til Arduino Nano og Uno er ikke anderledes. Du kan arbejde med skærmen i to tilstande: 4 bit og 8. Når du arbejder med en 8-bit skærm, bruges både de lavere og højere bits, og med en 4-bit kun de lavere. Der er ingen særlig mening i at arbejde med 8-bit, da der vil blive tilføjet yderligere 4 kontakter for at forbinde, hvilket ikke er tilrådeligt, fordi hastigheden ikke vil være højere, skærmopdateringsgrænsen er 10 gange i sekundet. Generelt bruges der en del ledninger til at forbinde lcd 1602 til Arduino, hvilket giver nogle gener, men der er specielle skjolde, men mere om det senere. Billedet viser skærmens forbindelse til Arduino Uno:
Kodeeksempel:
include //Tilføj det nødvendige bibliotek LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Indstil skærmdimension lcd.setCursor(0, 0); // Sæt markøren til begyndelsen af linje 1 lcd.print("Hej, verden!"); // Vis tekst lcd.setCursor(0, 1); // Sæt markøren til begyndelsen af linje 2 lcd.print("fb.ru"); // Output tekst } void loop(){ }
Hvad gør koden? Først og fremmest er biblioteket til at arbejde med skærmen tilsluttet. Som nævnt ovenfor er dette bibliotek allerede inkluderet i Arduino IDE, og du behøver ikke at downloade og installere det yderligere. Dernæst defineres de kontakter, der er forbundet til benene: henholdsvis RS, E, DB4, DB5, DB6, DB7. Derefter indstilles skærmstørrelsen. Da vi arbejder med en version med 16 tegn og 2 linjer, skriver vi sådanne værdier. Vi sætter markøren til begyndelsen af den første linje og viser vores første tekst Hello World. Sæt derefter markøren på den anden linje og vis navnet på webstedet. Det er alt! Det blev overvejet at tilslutte lcd 1602 til Arduino Uno.
Hvad er I2C, og hvorfor er det nødvendigt?
Som nævnt ovenfor kræver det mange ben at tilslutte skærmen. For eksempel, når du arbejder med flere sensorer og et LCD-display, kan 1602 kontakter simpelthen ikke være nok. Ofte bruger radioamatører Uno- eller Nano-versionerne, hvor der ikke er mange kontakter. Så kom folk med specielle skjolde. For eksempel I2C. Det giver dig mulighed for at tilslutte skærmen med kun 4 ben. Dette er to gange mindre. I2C modulet sælges både separat, hvor du selv skal lodde det, og allerede loddet tilLCD-skærm 1602.
Forbindelse med I2C-modul
Tilslutning af LCD 1602 til Arduino Nano med I2C fylder lidt, kun 4 ben: jord, strøm og 2 dataudgange. Vi tilslutter strøm og jord til henholdsvis 5V og GND på Arduino. De resterende to kontakter: SCL og SDA er forbundet til eventuelle analoge ben. På billedet kan du se et eksempel på tilslutning af lcd 1602 til arduino med I2C-modul:
Programkode
Hvis det var nødvendigt kun at bruge ét bibliotek til at arbejde med en skærm uden et modul, så er der brug for to biblioteker for at arbejde med et modul. En af dem er allerede i Arduino IDE - Wire. Et andet bibliotek, LiquidCrystal I2C, skal downloades separat og installeres. For at installere biblioteket i Arduino skal indholdet af det downloadede arkiv uploades til bibliotekets rodmapp. Kodeeksempel ved hjælp af I2C:
include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Indstil display void setup() { lcd.init(); lcd.backlight();// Tænd for skærmens baggrundslys lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Sæt markøren til anden linje og nultegn. lcd.setCursor(0, 1); // Udskriv antallet af sekunder siden arduino startede lcd.print(millis()/1000); }
Som du kan se, er koden næsten den samme.
Hvordan tilføjer jeg mit eget symbol?
Problemet med disse skærme er, at der ikke er nogenunderstøttelse af kyrillisk og symboler. For eksempel skal du indlæse et eller andet tegn i displayet, så det kan afspejle det. For at gøre dette giver displayet dig mulighed for at oprette op til 7 af dine karakterer. Præsenter 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 - der er intet der, hvis 1 - det er et skraveret område. I eksemplet ovenfor kan du se skabelsen af "smilende smiley"-karakteren. Ved at bruge et eksempelprogram i Arduino ville det se sådan ud:
include include // Inkluder det påkrævede bibliotek // 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); // Indstil skærmdimension lcd.createChar(1, smil); // Opret tegn nummer 1 lcd.setCursor(0, 0); // Sæt markøren til begyndelsen af linje 1 lcd.print("\1"); // Vis smileyen (tegn nummer 1) - "\1" } void loop(){ }
Som du kan se, blev oprettetbitmasken er den samme som tabellen. Når den er oprettet, kan den udsendes som en variabel til displayet. Husk, at der kun kan gemmes 7 tegn i hukommelsen. I princippet er dette nok. For eksempel, hvis du vil vise gradsymbolet.
Problemer, hvor skærmen muligvis ikke fungerer
Der er tidspunkter, hvor displayet ikke virker. For eksempel tænder den, men viser ikke tegn. Eller den tænder slet ikke. Se først, om du har tilsluttet kontakterne korrekt. Hvis du tidligere har tilsluttet lcd 1202 til Arduino uden I2C, så er det meget nemt at blive viklet ind i ledningerne, hvilket kan få displayet til at virke forkert. Du bør også sørge for, at skærmens kontrast øges, da det ved minimum kontrast ikke engang er synligt, om LCD 1602 er tændt eller ej. Hvis dette ikke hjælper, så kan problemet måske ligge i lodningen af kontakterne, det er ved brug af I2C-modulet. En almindelig årsag til, at skærmen muligvis ikke fungerer, er også den forkerte indstilling af I2C-adressen. Faktum er, at der er mange producenter, og de kan indstille en anden adresse, du skal rette den her:
LiquidCrystal_I2C lcd(0x27, 16, 2);
I parentes kan du se to værdier, 0x27 og 16, 2 (16, 2 er skærmstørrelsen, og 0x27 er kun I2C-adressen). I stedet for disse værdier kan du prøve at sætte 0x37 eller 0x3F. Nå, en anden grund er simpelthen en defekt LCD 1602. I betragtning af, at næsten alt til Arduino er lavet i Kina, kan du ikke være 100% sikker på, at den købteproduktet er ikke defekt.
LCD 1602 fordele og ulemper
Lad os se på fordele og ulemper ved LCD 1602.
Fordele
- Pris. Dette modul kan købes til en meget overkommelig pris i kinesiske butikker. Prisen er 200-300 rubler. Nogle gange endda solgt med et I2C-modul.
- Nem at forbinde. Sandsynligvis er der ingen, der forbinder en LCD 1602 uden I2C i disse dage. Og med dette modul tager forbindelsen kun 4 ben, der vil ikke være nogen "væv" af ledninger.
- Programmering. Takket være færdige biblioteker er det nemt at arbejde med dette modul, alle funktioner er allerede registreret. Og hvis du har brug for at tilføje din karakter, tager det kun et par minutter.
Ulemper
I den tid, hvor tusindvis af radioamatører er blevet brugt, er der ikke identificeret store minusser, kun der er tilfælde af køb af et ægteskab, da kinesiske visningsmuligheder hovedsageligt bruges
Denne artikel diskuterede, hvordan man tilslutter LCD 1602-skærmen til Arduino, og præsenterede også eksempler på programmer til at arbejde med denne skærm. Det er virkelig en af de bedste i sin kategori, det er ikke kun, at tusindvis af radioamatører vælger det til deres projekter!