Koppel LCD 1602 aan Arduino: beskrywing, funksies, instruksies, kenmerke, probleme en oplossings

INHOUDSOPGAWE:

Koppel LCD 1602 aan Arduino: beskrywing, funksies, instruksies, kenmerke, probleme en oplossings
Koppel LCD 1602 aan Arduino: beskrywing, funksies, instruksies, kenmerke, probleme en oplossings
Anonim

Elke radio-amateur, na 'n paar eenvoudige selfdoen-werk, kom tot die doel om iets groots te bou deur sensors en knoppies te gebruik. Dit is immers baie interessanter om data op die skerm te vertoon as op die poortmonitor. Maar dan ontstaan die vraag: watter skerm om te kies? En in die algemeen, hoe om dit aan te sluit, wat is nodig om aan te sluit? Die antwoorde op hierdie vrae sal in hierdie artikel bespreek word.

LCD 1602-skerm vir verbinding met arduino
LCD 1602-skerm vir verbinding met arduino

LCD 1602

Onder die vele opsies onder skerms, wil ek graag die LCD1602-skerm uitsonder wat op die HD4478-beheerder gebaseer is. Daar is hierdie vertoning in twee kleure: wit letters op 'n blou agtergrond, swart letters op 'n geel agtergrond. Om die LCD 1602 aan die Arduino te koppel, sal ook geen probleme veroorsaak nie, aangesien daar 'n ingeboude biblioteek is, en jy hoef niks ekstra af te laai nie. Uitstallings verskil nie net in prys nie, maar ook in grootte. Dikwels gebruik radioamateurs 16x 2, dit wil sê 2 reëls van 16 karakters. Maar daar is ook 20 x 4, waar daar 4 reëls van 20 karakters is. Afmetings en kleur speel geen rol in die koppeling van die lcd 1602-skerm aan Arduno nie, hulle is op dieselfde manier verbind. Die kykhoek is 35 grade, die skermreaksietyd is 250 ms. Kan werk by temperature van -20 tot 70 grade Celsius. Wanneer dit werk, gebruik dit 4 mA vir die skerm en 120 mA vir die agtergrond.

LCD 1602 vertoon pinout
LCD 1602 vertoon pinout

Waar word dit gebruik?

Hierdie skerm het sy gewildheid nie net onder radioamateurs nie, maar ook onder groot vervaardigers. Byvoorbeeld, drukkers, koffiemasjiene gebruik ook LCD1602. Dit is as gevolg van die lae prys, hierdie vertoning kos 200-300 roebels op Chinese webwerwe. Dit is die moeite werd om daar te koop, want in ons winkels is die marges vir hierdie vertoning baie hoog.

Koppel aan Arduino

Die koppeling van LCD 1602 aan Arduino Nano en Uno is nie anders nie. Jy kan in twee modusse met die skerm werk: 4 bisse en 8. Wanneer met 'n 8-bis-skerm gewerk word, word beide die laer en hoër bisse gebruik, en met 'n 4-bis een, slegs die onderste. Daar is geen spesifieke punt om met 8-bis te werk nie, aangesien nog 4 kontakte bygevoeg sal word om aan te sluit, wat nie raadsaam is nie, want die spoed sal nie hoër wees nie, die skermopdateringslimiet is 10 keer per sekonde. Oor die algemeen word baie drade gebruik om die lcd 1602 aan die Arduino te koppel, wat 'n mate van ongerief veroorsaak, maar daar is spesiale skilde, maar later meer daaroor. Die foto toon die verbinding van die skerm aan die Arduino Uno:

Verbind skerm aan arduino
Verbind skerm aan arduino

Kodevoorbeeld:


sluit in //Voeg die vereiste biblioteek LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Stel skermafmeting lcd.setCursor(0, 0); // Stel die wyser na die begin van reël 1 lcd.print("Hallo, wêreld!"); // Vertoon teks lcd. setCursor(0, 1); // Stel die wyser na die begin van reël 2 lcd.print("fb.ru"); // Voer teks } void lus(){ }

Wat doen die kode? Eerstens is die biblioteek om met die skerm te werk gekoppel. Soos hierbo genoem, is hierdie biblioteek reeds by die Arduino IDE ingesluit en jy hoef dit nie bykomend af te laai en te installeer nie. Vervolgens word die kontakte wat aan die penne gekoppel is, gedefinieer: RS, E, DB4, DB5, DB6, DB7, onderskeidelik. Dan word die skermgrootte ingestel. Aangesien ons met 'n weergawe met 16 karakters en 2 reëls werk, skryf ons sulke waardes. Ons stel die wyser na die begin van die eerste reël en vertoon ons eerste teks Hallo Wêreld. Plaas dan die wyser op die tweede reël en vertoon die naam van die webwerf. Dis al! Dit is oorweeg om lcd 1602 aan Arduino Uno te koppel.

Wat is I2C en hoekom is dit nodig?

Soos hierbo genoem, verg dit baie penne om die skerm te koppel. Byvoorbeeld, wanneer daar met veelvuldige sensors en 'n LCD-skerm gewerk word, kan 1602 kontakte eenvoudig nie genoeg wees nie. Dikwels gebruik radioamateurs die Uno- of Nano-weergawes, waar daar nie baie kontakte is nie. Toe het mense met spesiale skilde vorendag gekom. Byvoorbeeld, I2C. Dit laat jou toe om die skerm met net 4 penne te koppel. Dit is twee keer minder. Die I2C-module word beide afsonderlik verkoop, waar jy dit self moet soldeer, en reeds aan gesoldeerLCD-skerm 1602.

I2C-module vir LCD-skerm 1602
I2C-module vir LCD-skerm 1602

Verbinding met I2C-module

Die koppeling van LCD 1602 aan Arduino Nano met I2C neem min spasie op, net 4 penne: grond, krag en 2 data-uitsette. Ons koppel krag en grond aan onderskeidelik 5V en GND op die Arduino. Die oorblywende twee kontakte: SCL en SDA is gekoppel aan enige analoog penne. Op die foto kan jy 'n voorbeeld sien van die koppeling van lcd 1602 aan arduino met I2C module:

Vertoon verbindings deur die I2C-module te gebruik
Vertoon verbindings deur die I2C-module te gebruik

Programkode

As dit nodig was om net een biblioteek te gebruik om met 'n skerm sonder 'n module te werk, dan is twee biblioteke nodig om met 'n module te werk. Een van hulle is reeds in die Arduino IDE - Wire. Nog 'n biblioteek, LiquidCrystal I2C, moet apart afgelaai en geïnstalleer word. Om die biblioteek in Arduino te installeer, moet die inhoud van die afgelaaide argief na die Libraries-hoofmap opgelaai word. Kodevoorbeeld wat I2C gebruik:


include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Stel die display void setup() op { lcd.init(); lcd.backlight();// Skakel die skerm se agtergrond aan lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void lus() { // Stel wyser na tweede reël en nulkarakter. lcd.setCursor(0, 1); // Druk die aantal sekondes uit sedert die arduino begin het lcd.print(millis()/1000); }

Soos jy kan sien, is die kode amper dieselfde.

Hoe voeg ek my eie simbool by?

Die probleem met hierdie uitstallings is dat daar geenondersteuning vir Cyrilliese en simbole. Byvoorbeeld, jy moet een of ander karakter in die skerm laai sodat dit dit kan weerspieël. Om dit te doen, laat die skerm jou toe om tot 7 van jou karakters te skep. Bied die tabel aan:

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

As 0 - daar is niks daar nie, as 1 - dit is 'n skadu area. In die voorbeeld hierbo kan jy die skepping van die "glimlagende smiley"-karakter sien. Deur 'n voorbeeldprogram in Arduino te gebruik, sal dit soos volg lyk:


include include // Sluit die vereiste biblioteek in // Smile-simbool 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); // Stel skermafmeting lcd.createChar(1, glimlag); // Skep karakternommer 1 lcd.setCursor(0, 0); // Stel die wyser na die begin van reël 1 lcd.print("\1"); // Vertoon die smiley (karakter nommer 1) - "\1" } void lus(){ }

Soos jy kan sien, is geskepdie bitmasker is dieselfde as die tabel. Sodra dit geskep is, kan dit as 'n veranderlike na die skerm uitgevoer word. Onthou dat slegs 7 karakters in die geheue gestoor kan word. In beginsel is dit genoeg. Byvoorbeeld, as jy die graadsimbool wil wys.

Voeg pasgemaakte karakters by die LCD 1602
Voeg pasgemaakte karakters by die LCD 1602

Probleme waar die skerm dalk nie werk nie

Daar is tye wanneer die skerm nie werk nie. Dit skakel byvoorbeeld aan, maar wys nie karakters nie. Of dit skakel glad nie aan nie. Kyk eers of jy die kontakte korrek verbind het. As jy vroeër lcd 1202 aan Arduino gekoppel het sonder I2C, dan is dit baie maklik om in die drade verstrengel te raak, wat kan veroorsaak dat die skerm verkeerd werk. Jy moet ook seker maak dat die skermkontras verhoog word, aangesien dit by minimum kontras nie eers sigbaar is of die LCD 1602 aan is of nie. As dit nie help nie, kan die probleem dalk in die soldering van die kontakte lê, dit is wanneer die I2C-module gebruik word. 'n Algemene rede waarom die skerm dalk nie werk nie, is ook die verkeerde instelling van die I2C-adres. Die feit is dat daar baie vervaardigers is, en hulle kan 'n ander adres stel, jy moet dit hier regstel:


LiquidCrystal_I2C lcd(0x27, 16, 2);

Tussen hakies kan jy twee waardes sien, 0x27 en 16, 2 (16, 2 is die vertoongrootte, en 0x27 is net die I2C-adres). In plaas van hierdie waardes, kan jy probeer om 0x37 of 0x3F te plaas. Wel, nog 'n rede is bloot 'n foutiewe LCD 1602. As in ag geneem word dat byna alles vir Arduino in China gemaak word, kan jy nie 100% seker wees dat die gekooptedie produk is nie defektief nie.

LCD 1602 voor- en nadele

Kom ons kyk na die voor- en nadele van die LCD 1602.

Voordele

  • Prys. Hierdie module kan teen 'n baie bekostigbare prys in Chinese winkels gekoop word. Die prys is 200-300 roebels. Soms selfs met 'n I2C-module verkoop.
  • Maklik om aan te sluit. Waarskynlik verbind niemand deesdae 'n LCD 1602 sonder I2C nie. En met hierdie module neem die verbinding net 4 penne, daar sal geen "webs" van drade wees nie.
  • Programmering. Danksy gereedgemaakte biblioteke is dit maklik om met hierdie module te werk, alle funksies is reeds geregistreer. En as jy jou karakter moet byvoeg, neem dit net 'n paar minute.

Nadele

Gedurende die tyd van gebruik deur duisende radioamateurs, is geen groot nadele geïdentifiseer nie, net daar is gevalle van die koop van 'n huwelik, aangesien Chinese vertoonopsies hoofsaaklik gebruik word

Hierdie artikel het bespreek hoe om die LCD 1602-skerm aan Arduino te koppel, en het ook voorbeeldprogramme aangebied om met hierdie skerm te werk. Dit is regtig een van die bestes in sy kategorie, dit is nie net dat duisende radioamateurs dit vir hul projekte kies nie!

Aanbeveel: