Lcd-scherm 1602 aansluiten op arduino-schets. Aansluitschema weergeven. Karakter LCD-scherm aansluiten op Arduino

Liquid crystal display (LCD) mod. 1602 (datasheet) is een uitstekende keuze voor uw projecten.

Het eerste dat me bevalt, is de lage prijs. De tweede is de beschikbaarheid van kant-en-klare bibliotheken voor Arduino. De derde is de aanwezigheid van verschillende aanpassingen, die onder andere worden geleverd met verschillende achtergrondverlichting (blauw, groen). In dit artikel bespreken we de basisprincipes van het aansluiten van dit scherm op een Arduino en geven we een voorbeeld van een klein project voor het weergeven van het lichtniveau op een scherm met behulp van een fotoresistor.

Pinnen en bedradingsschema voor LCD 1602 naar Arduino

De pinnen op dit display zijn genummerd van 1 tot 16. Ze zijn gedrukt op de achterkant van het bord. Hoe ze precies verbinding maken met de Arduino wordt weergegeven in de onderstaande tabel.

Tabblad. 1. LCD 1620 pinnen aansluiten op Arduino

1602 aansluiten op Arduino Als het 1602-scherm wordt gevoed door de Arduino via een 5V USB-kabel en de bijbehorende pin, kan de contrastpin van het scherm (3e connector - Contrast) worden ingesteld op 2K ohm. Voor het Back LED + contact kan een weerstand van 100 ohm worden gebruikt. U kunt ook een variabele weerstand - potentiometer gebruiken voor handmatige contrastaanpassing.

Sluit op basis van tabel 1 en het onderstaande diagram uw LCD-scherm aan op de Arduino. Om aan te sluiten heb je een set geleiders nodig. Het is raadzaam om veelkleurige geleiders te gebruiken om niet in de war te raken.

Tabblad. 2. Geprefereerde geleiderkleuren

Bedradingsschema voor het aansluiten van LCD-display 1602 op Arduino:


Basis voorbeeldprogramma voor het werken met LCD 1602 met Arduino

Het voorbeeld gebruikt de 0, 1, 2, 3, 4 en 5 pinnen van de Arduino om de corresponderende pinnen 4, 6, 11, 12, 13 en 14 van display 1602 aan te sluiten (zie Tabel 1). Daarna initialiseren we in de Arduino-code lcd () als volgt:

LiquidCrystal-lcd (0, 1, 2, 3, 4, 5);

Dit stukje code legt de Arduino precies uit hoe het LCD-scherm is aangesloten.

Het volledige bronbestand van het weerstationproject, dat gebruikmaakt van het LCD 1602-display, kan via deze link worden gedownload.

LCD 1602A, Arduino en lichtsensor (fotoweerstand)

In het voorbeeld zullen we overwegen een weergavemodificatie aan te sluiten - 1602A en een fotoresistor. Als resultaat van dit project kunnen we numerieke waarden weergeven die evenredig zijn aan de lichtintensiteit op het display.


Dit voorbeeld is een goed begin voor beginners om de Arduino te begrijpen. Het is vermeldenswaard dat het 1602-display verschillende wijzigingen heeft ondergaan. Dienovereenkomstig kan de opstelling van de contacten daarop enigszins verschillen.

Benodigde materialen

  • 1 Arduino UNO;
  • 1 breadboard (63 rails);
  • 1 lichtsensor (fotoweerstand);
  • 1 potentiometer 50 kΩ;
  • 1 LCD-scherm 1602A;
  • 1 weerstand 10kOhm;
  • 1 rail met connectoren (16 pinnen);
  • 1 USB-kabel.

LCD-scherm 1602A

Displays worden meestal verkocht zonder gesoldeerde connectoren. Dat wil zeggen, u zult de soldeerbout in uw handen moeten houden. Je hebt 16 pinnen nodig. Soldeer aan de zijkant van de korte pootjes, laat de lange over voor verdere aansluiting op het bord of andere randapparatuur.

Na het lossolderen monteer je het display op het breadboard. Liefst op de laagste rail, zodat je alsnog de mogelijkheid hebt om het display via extra connectoren op het bord aan te sluiten.

1602A Display aansluiten op Arduino

Het eerste dat u hoeft te doen, is het scherm van stroom te voorzien. Sluit twee kabels van +5 volt en aarde aan op de bijbehorende plus- of minrijen op het breadboard.

Sluit aan: een 5 volt (5V) pin van de Arduino naar een van de breadboard-tracks.

Verbind: pin Ground (GND) van Arduino op een ander spoor (breadboard).

Daarna verbinden we de stroom van het scherm en de achtergrondverlichting met de sporen op het breadboard, waarop we 5 volt en een min krijgen.

Verbind: de GND (min) track op het breadboard met pin 1 op het LCD-scherm (met het label VSS).

Sluit: de 5 volt (plus) track op het breadboard aan op pin 2 op de LCD (met het label VDD).

Sluit: de 5 volt (plus) track op het breadboard aan op pin 15 op het LCD (gelabeld A).

Verbind: de GND (min) track op het breadboard met pin 16 op de LCD (met het label K).

We verbinden onze Arduino met een pc via een USB-kabel en voila! Het scherm moet worden ingeschakeld.

De volgende stap is het aansluiten van een potentiometer om het displaycontrast aan te passen. De meeste handleidingen gebruiken een potentiometer van 10k ohm, maar 50k ohm zal ook werken. Door het grotere bereik van weerstandswaarden aan de uitgang van de potentiometer wordt nauwkeuriger afstemmen moeilijker, maar voor ons is het in dit geval niet kritisch. Plaats de potentiometer op het breadboard en sluit de drie pinnen aan.

Aansluiten: eerste pin op potmeter naar min op breadboard.

Verbind: de middelste pin van de potentiometer met pin 3 op het display (deze is gemarkeerd als V0).

Aansluiten: derde pin op potentiometer naar positief op breadboard.

Nadat het bord via de USB-kabel van stroom is voorzien, moet de eerste rij op het display worden gevuld met rechthoeken. Zie je ze niet, draai dan de potmeterknop een beetje van links naar rechts om het contrast aan te passen. Later, wanneer we de numerieke waarden op het scherm weergeven, kunt u het contrast nauwkeuriger aanpassen. Als je scherm er ongeveer zo uitziet, doe je het goed:

Laten we doorgaan. Nu moeten we communiceren tussen de Arduino en het 1602A LCD-scherm om tekens weer te geven.

Sluit hiervoor de 4e pin van het display (RS) aan op de 7e pin van de Arduino (gele connector). Display pin 5 (RW) - naar een rij aardpennen op het breadboard (zwarte kabel).

Geef pin 6 (E) weer op pin 8 van Arduino (PWM).

Display pin 11 (D4) - naar Arduino pin 9 (PWM).

12-pins display (D5) - naar pin 10 van Arduino (PWM).

Display pin 13 (D6) - naar Arduino pin 11 (PWM).

Display pin 14 (D7) - naar Arduino pin 12 (PWM).

Arduino IDE-programma - Bijschriften weergeven op 1602A-display

Het onderstaande stukje code kan worden gekopieerd en geplakt in de Arduino IDE en op het bord worden geladen:

#include & ltLiquidCrystal.h & gt

LiquidCrystal-lcd (7, 8, 9, 10, 11, 12);

lcd.begin (16, 2);

lcd.setCursor (0,1);

lcd.write ("LICHT:");

Na het downloaden van het programma naar het bord, toont het display het volgende bericht op de tweede regel:

Een soort "hallo wereld!" op LCD 1602A gelanceerd. Mijn felicitaties.

We verbinden de fotoresistor en vullen het hele programma in de Arduino

Laten we nu de fotoresistor aansluiten. Sluit drie draden aan op de vrije rails op het breadboard (laten we ze voorwaardelijk 1, 2, 3 nummeren). Laat wat ruimte in de rails voor de lichtsensor en weerstand zelf.

We verbinden de GND-rail van het breadboard naar rail 1. A0 (analoge ingang) van Arduino - naar rail 2. 5 volt van het breadboard - naar rail 3.

Vervolgens verbinden we onze sensor en weerstand met de voorbereide rails. Welke pootjes naar de grond gaan en welke naar de voeding voor onze lichtsensor en weerstand maakt niet uit (in tegenstelling tot bijvoorbeeld een LED, die een kathode en anode heeft). Je zult hier dus niet in de war raken.

De lichtsensor wordt aangesloten op rail 1 en rail 2. De weerstand is aangesloten op rail 2 en op rail 3.

Laten we nu teruggaan naar ons programma en een paar regels toevoegen aan de lege hoofdtekst van de lus () -functie:

int sensorValue = analoog lezen (A0);

lcd.setCursor (7,1);

lcd.print (sensorValue);

Na het uploaden van de definitieve versie van ons programma naar de Arduino, worden de huidige waarden van het verlichtingsniveau op het display weergegeven.

Arduino Nano arriveerde, een walvis arriveerde, waarin een breadboard (board) en een LCD-scherm. Op het display op het bord staat - 1602A, hieronder - QAPASS. Ik begon het eerste apparaat te boetseren en natuurlijk wilde ik informatie op het scherm weergeven en geen flitsende LED's.

Google hielp, zei dat dit een karakterweergave is; indien niet pervers, dan zijn hoogstwaarschijnlijk ASCII-tekens beschikbaar - cijfers, Latijn, iets van de basistekens.

De volgende materialen hielpen bij het starten van de weergave: Aansturen van een LCD-tekentype vanaf een pc-printerpoort; Hoe Arduino te verbinden met een karakter-LCD; Pwm servo driver motorbesturing pdf.

Het display is vrij gebruikelijk en er zijn al schilden voor uitgevonden - er zijn opties met SPI zoals en / of met I2C, en het internet staat vol met recepten voor deze gevallen. Maar ik had alleen het originele 16x2-scherm en de arduinka waaraan ik het wilde bevestigen.

Het display heeft een werkingsmodus en datatransmissie in nibbles, elk 4 bits, terwijl de minst significante bits van de bus niet worden gebruikt. Het aansluiten van slechts de helft van de databus wordt op veel plaatsen beschreven en ik begon er niet achter te komen hoe ik het display moest aansluiten en ermee moest werken via 8 lijnen. Ik was best tevreden dat het al werkt.

Ik vond hier een goede beschrijving van dit soort beeldschermen - http://greathard.ucoz.com/44780_rus.pdf. En hier (http://arduino.ru/forum/programmirovanie/lcd-i2c-partizanit#comment-40748) is een voorbeeld van het instellen van een tekengenerator.

Verbinding

Mijn display werd geleverd met ongesoldeerde contacten. Vanaf het begin wilde ik de kabel solderen, 16 draden knippen met dupons, schoonmaken. En toen groef ik de walvis in en vond een kam met dupons om op het bord te solderen. Van daaruit heb ik 16 contacten afgebroken en gesoldeerd.
Mijn display zag er (voordat de contacten werden gesoldeerd) ongeveer zo uit:

Eerst verbond ik pin 15 (A) met + 5V, 16 (K) met massa en zorgde ervoor dat de achtergrondverlichting werkte. Over het algemeen is het correct om de kathode met aarde te verbinden via een 220Ω-weerstand, wat ik later deed.

Daarna heb ik aarde (1) en stroom (2) aangesloten. Arduino kan worden gevoed via USB, van gestabiliseerde spanning van 5V en van ongereguleerde spanning van 6-12V, de hoogste spanning wordt automatisch geselecteerd. Nu wordt de arduinka gevoed via USB en ik zat te denken waar ik 5 volt uit moest halen. Het bleek dat 5V op het arduino-contact staat, waar extern gestabiliseerd 5V op is aangesloten. Het bleek eerder 4,7V te zijn, maar het was genoeg voor mij.

Na het aansluiten van de voeding, als alles in orde is, licht de bovenste rij op met vaste rechthoeken van bekendheid.

Vervolgens sluiten we de contrastpotentiometer (pin 3 V0) aan. We gooien een van de uiterste klemmen van de potentiometer naar de grond, de tweede - naar + 5V, de middelste - naar pin 3 van het display. 10K potentiometer aanbevolen. Ik had 50K van de walvis, in het begin gebruikte ik het. De aanpassing was slechts aan één rand, het was heel subtiel om het gewenste contrast te vangen. Toen vond ik in een andere walvis een soortgelijke op 5K, en zette hem op. De instelling strekte zich uit van een rand tot een halve slag. Blijkbaar kun je een potentiometer nog minder nemen. 10K raadt waarschijnlijk aan dat het circuit minder verbruikt. Ja, ik moest een beetje solderen, de bedrading heb ik met dupons aan de draden van de potmeters gesoldeerd.

Test schets

We nemen een testschets in voorbeelden van Arduino studio - "C: \ Program Files (x86) \ Arduino \ libraries \ LiquidCrystal \ ex amenes \ HelloWorld \ HelloWorld.ino", alleen moet je de contacten wijzigen in de onze - LiquidCrystal lcd ( 7, 6, 5, 4, 3, 2);

In principe bevat deze schets ook een beschrijving van wat waar moet worden aangesloten. Je kunt aansluiten, zoals daar aangegeven, dan hoeft er helemaal niets veranderd te worden.

// voeg de bibliotheekcode toe: #include // initialiseer de bibliotheek met de nummers van de interface-pinnen LiquidCrystal lcd (7, 6, 5, 4, 3, 2); void setup () (// stel het aantal kolommen en rijen van het LCD-scherm in: lcd.begin (16, 2); // Druk een bericht af op het LCD.lcd.print ("hallo, wereld! ");) void loop () (// zet de cursor op kolom 0, regel 1 // (let op: regel 1 is de tweede rij, aangezien het tellen begint met 0): lcd.setCursor (0, 1); // print het aantal seconden sinds reset: lcd.print (millis () / 1000);)

Het blijkt zoiets als dit:

Overigens werkt het display dat in mijn handen kwam niet zonder achtergrondverlichting. Ik bedoel, het werkt, maar er is praktisch niets zichtbaar.

Display contacten 1602A

#contact Naam Hoe te verbinden
1 VSS GND
2 VDD + 5V
3 V0 Contrast - naar de middelste pin van de potentiometer
4 RS (Registreer selecteren) D7 Arduino
5 R / W (lezen of schrijven) GND
6 E (Signaal inschakelen) D6 Arduino
7-14 D0-D7 D0-D3 - niet aangesloten; D4-D7 - aangesloten op pinnen D5-D2 van Arduino
15 EEN Achtergrondverlichting anode, aansluiten op + 5V
16 K Achtergrondverlichtingskathode, verbonden met aarde via een 220Ω-weerstand

Er zijn een groot aantal soorten tekst, of zoals ze ook wel sign-synthesizing, liquid crystal screens worden genoemd. De meest voorkomende displays zijn gebaseerd op HD44780-chips van Hitachi, KS0066 van Samsung of zijn daarmee compatibel. Er is een standaard Arduino-bibliotheek Liquid Crystal om met dergelijke schermen te werken.

Dergelijke displays zijn met name tekstschermen van Melt. In dit artikel wordt het bedradingsschema voor dit scherm beschreven, maar het werkt ook voor veel andere tekstweergaven.

Het artikel beschrijft de algemene principes. U kunt naar een gedetailleerde beschrijving van uw display gaan:

Vereiste componenten

Verbinding

Bevestig het scherm aan het breadboard en breng het naar de stroomrails van het breaboard en de +5 V voeding en aarde met de Arduino.

Kracht en land zullen meer dan eens nodig zijn, dus het is handiger om ze op de rails te gooien.

Schakel de achtergrondverlichting in

Achtergrondverlichting van het display is een apart circuit dat niet is gekoppeld aan de rest. U kunt het inschakelen door +5 V toe te passen op de 15e pin van het scherm en de 16e pin met aarde te verbinden. Door deze twee pinnen met de bijbehorende rails te verbinden, kunt u de Arduino inschakelen en het display zien oplichten.

Houd er rekening mee dat bij sommige modellen de nummering van contacten niet alleen van rechts naar links van de eerste tot de zestiende is, maar iets slimmer. Dus bijvoorbeeld op een 16x2 scherm van Melt bevindt het eerste contact zich fysiek op de 14e positie, de tweede op de 13e enzovoort van rechts naar links tot de 14e op de eerste positie, en de 15e en 16e zijn rechts gelegen. De nummering rond de displaypinnen helpt u verwarring te voorkomen.

De kracht van de karaktersynthesizer inschakelen

    De eerste is de grond. Sluit deze aan op de grondrail.

    De tweede is voeding. Sluit hem aan op de +5 V-rail.

    De derde is contrast. Voor het meest contrasterende beeld verbindt u deze met de grondrail. U kunt op deze pin een willekeurige spanning van 0 tot 5 V zetten, hoe hoger deze is, hoe zwakker het beeld zal zijn, maar tegelijkertijd zal het stroomverbruik afnemen. Om het contrast soepel te kunnen regelen, kun je het uitgangssignaal van de potmeter naar dit contact sturen.

Als u na het aansluiten de Arduino inschakelt, ziet u rechthoekige vertrouwdheid. Afhankelijk van de combinatie van tekst en markeringskleuren, kunnen ze helder en goed zichtbaar of subtiel zijn. Dat geeft niet, de tekst ziet er sowieso goed uit.

Databus verbinding

Voor communicatie tussen de Arduino en het scherm moeten verschillende communicatielijnen worden gebruikt:

    2 of 3 voor weergaveopdracht

    4 of 8 voor gegevensoverdracht (teken- en commandocodes)

Zo worden 6 tot 11 contacten van beide apparaten bezet. Als je niet nodig hebt lezen van het display, dat geschikt is voor de meeste gebruiksscenario's, heb je 2 regels nodig voor commando's.

Als de updatesnelheid ook geen probleem is, zijn 4 regels voldoende voor gegevensoverdracht.

Dus om het display aan te sluiten, volstaat het om 6 lijnen, 6 pinnen op de Arduino te gebruiken. Laten we eens kijken naar dit specifieke scenario.

Zoals gezegd hebben we niets te lezen van het display, we zullen er alleen naar schrijven. Daarom verbinden we de 5e display-pin, die verantwoordelijk is voor de lees- / schrijfselectie vanaf de grondrail. Dit betekent 'altijd schrijven'.

Vervolgens verbinden we de Arduino en het schild met onze 6 communicatielijnen. Welke contacten er op de Arduino worden geselecteerd maakt niet uit: we zullen ze in het programma instellen, maar er is bijvoorbeeld voor de volgende configuratie gekozen:

    Display pin 6 is Arduino pin 5. Dit is de toestemmingsregel voor gegevenstoegang. Bekend als E of Inschakelen. Wanneer deze regel één wordt, voert het display de opdracht uit of voert een teken uit de dataregel uit.

    De 11e, 12e, 13e, 14e displaypin is respectievelijk de 10e, 11e, 12e, 13e pin van de Arduino. Dit zijn datalijnen. Bekend als DB4, DB5, DB6, DB7.

Het scherm is aangesloten en klaar om gegevens te ontvangen. Het blijft om een ​​programma voor de Arduino te schrijven.

Programmeren

Om tekst van Arduino weer te geven, is het het handigst om de ingebouwde Liquid Crystal-bibliotheek te gebruiken. Gebruik de volgende code om de begroeting en timer weer te geven:

Hallo.pde #include lcd.begin (16, 2); // print de eerste regel lcd.print ("Hallo wereld!"); // zet de cursor op kolom 0, regel 1. Dat wil zeggen, naar // dit is eigenlijk de tweede regel, aangezien nummering begint bij nul lcd.setCursor (0, 1); // print de tweede regel lcd.print ("foo bar baz"); ) lege lus () ()

Het is vrij eenvoudig en zou duidelijk moeten zijn uit de opmerkingen.

Cyrillisch

De informatie in deze sectie is specifiek van toepassing op displays van Melt. Chinese en Europese tegenhangers hebben waarschijnlijk geen Cyrillisch in hun tekenset, raadpleeg de displaydocumentatie voor meer details.

De uitvoer van Russische letters is niet helemaal triviaal: je kunt niet zomaar lcd.print ("Vasya") schrijven. Het heeft te maken met het concept van coderingen. U weet dat elk teken een corresponderende code heeft en bij het compileren van het programma, als de string Cyrillisch bevat, zal deze worden omgezet in codes volgens de utf-8, cp-1251 tabel of een andere, afhankelijk van de compilerinstellingen. Het scherm verwacht op zijn beurt de gegevens in zijn eigen codering te zien.

De letter "I" komt bijvoorbeeld overeen met de code B1 in het hexadecimale systeem. Om de Yndex-tekenreeks naar het scherm te sturen, moet u de tekencode expliciet in de tekenreeks insluiten met behulp van de \ x ## reeks:

Lcd.afdruk (" \ xB1 ndex ") ;

Je kunt naar wens gewone karakters en expliciete codes in één regel combineren. Het enige voorbehoud is dat nadat de compiler de \ x-reeks in een regel ziet, deze alle tekens leest die hexadecimale cijfers erachter kunnen zijn, zelfs als er meer dan twee zijn. Daarom kunt u niet zomaar tekens gebruiken in het bereik 0-9, a-f gevolgd door de tweecijferige tekencode: dit veroorzaakt een compilatiefout. Om dit punt te omzeilen, kunt u het feit gebruiken dat twee naast elkaar geschreven regels aan elkaar zijn gelijmd. Dus, als je "Яeee" wilt schrijven:

Lcd.afdruk (" \ xB1 eee "); // fout lcd.print (" \ xB1 ""eee"); // Rechtsaf

Om bijvoorbeeld "Hallo van Amperka" te schrijven, is de volgende code gebruikt:

cyrillic.pde #include LiquidCrystal-lcd (4, 5, 10, 11, 12, 13); void setup () (lcd.begin (16, 2)); lcd.print (" \ xA8 p \ xB8 \ xB3 ""e \ xBF "); lcd.setCursor (0, 1); lcd.print ("uit \ xBF A \ xBC \ xBE ""ep \ xBA \ xB8 "); ) lege lus () ()

Wisselen tussen pagina's voor het genereren van tekens

De weergavemodule slaat twee CG-pagina's op in het geheugen. De standaardwaarde is pagina nul. Gebruik de methode opdracht (0x101010) en terug - opdracht (0x101000) om van pagina te wisselen.

Het display kan niet tegelijkertijd tekens van verschillende pagina's weergeven.

Laten we een voorbeeld bekijken waarin dezelfde regel verandert afhankelijk van de geselecteerde pagina.

change_page.ino // Inclusief de standaard LiquidCrystal-bibliotheek#erbij betrekken // Initialiseer het schermobject, geef de gebruikte door // om pinnen met Arduino te verbinden ok:// RS, E, DB4, DB5, DB6, DB7 LiquidCrystal lcd (4, 5, 10, 11, 12, 13); ongeldige setup () ( // stel de grootte (aantal kolommen en rijen) van het scherm in lcd.begin (16, 2); ) lege lus () ( // stel de tekengeneratorpagina in op 0 (standaard) lcd.commando (0b101000); // print de eerste regel lcd.print (" \ x9b \ x9c \ x9d \ x9e \ x9f "); // wacht 1 seconde vertraging (1000); // stel 1 pagina van de tekengenerator in lcd.commando (0b101010); // wacht 1 seconde vertraging (1000); // wis het scherm lcd.wissen (); )

In de les zullen we praten over het synthetiseren van vloeibare kristalindicatoren, hoe ze op een Arduino-bord kunnen worden aangesloten en hoe we indicatoren kunnen bedienen met behulp van de LiquidCrystal- en LiquidCrystalRus-bibliotheken.

Hoewel LED-indicatoren met zeven segmenten de goedkoopste weergaveoptie zijn voor elektronische apparaten, wordt het gebruik ervan beperkt door twee belangrijke nadelen.

  • Het is praktisch moeilijk om meer dan 8 bits LED-indicatoren op de microcontroller aan te sluiten. Een groot aantal leads, significante indicatorstromen, complexe toetsen, lage verversingsfrequenties, enz. zijn vereist.
  • Het is niet mogelijk om karakterinformatie weer te geven op displays met zeven segmenten.

Om tekstinformatie of getallen met een grootte van meer dan 4 cijfers weer te geven, is het veel praktischer om indicatoren (displays) te gebruiken die tekens voor het synthetiseren van vloeibare kristallen gebruiken. Hun voordelen zijn onder meer:

  • interface handig voor aansluiting op microcontrollers;
  • laag energieverbruik;
  • lage voedingsspanning;
  • duurzaamheid.

Er is een grote verscheidenheid aan LCD-schermen (liquid crystal) van verschillende fabrikanten op de markt. Bijna allemaal zijn ze vergelijkbaar in parameters, interfacesignalen en besturingscommando's. Op dit moment zijn de meest voorkomende LCD-indicatoren op de Russische markt apparaten die zijn vervaardigd door Winstar, Taiwan. Ik zal verwijzen naar de indicatoren van dit bedrijf. Maar de informatie is heel geschikt voor karakter-LCD-schermen van andere fabrikanten.

Algemene informatie.

Sign-synthesizing of symbolische indicatoren geven informatie weer in de vorm van bekendheid met een bepaalde bitbreedte. Eén vertrouwdheid geeft één karakter weer. Het aantal bekende spaties bepaalt de bitbreedte van de indicator. Informatie over indicatoren kan op meerdere regels worden weergegeven, daarom wordt bij indicatoren van dit type altijd het aantal tekens per regel en het aantal regels aangegeven.

Informatie wordt weergegeven op een vloeibare kristalmatrix met LED-achtergrondverlichting. Achtergrondverlichting is verkrijgbaar in een grote verscheidenheid aan kleuren, wat monochrome tekstinformatie enorm verlevendigt.

Om de vloeibare kristalmatrix te besturen en de indicatorinterface te organiseren, wordt de ingebouwde HD44780-controller of zijn volledige analogen gebruikt. Deze controller definieert de indicatorinterfacesignalen en besturingscommando's.

De HD44780 is de de facto standaard geworden voor character liquid crystal (LCD) displays. De technische documentatie voor de HD44780-controller in PDF-formaat kan worden bekeken via deze link -. Misschien zal iemand de documentatie van een van de analogen van deze controller - SPLC780D beter vinden. PDF-link -.

Karakter LCD-indicatoren van Winstar.

Ik ken de volgende varianten van LCD-indicatoren van dit bedrijf.

Indicatortype: Weergaveformaat, tekens x tekenreeksen Afmetingen, mm Zichtbare oppervlakteafmetingen, mm Link naar documentatie, PDF-formaat
WH0802A1 8 x 2 58 x 32 38 x 16
WH1202A 12 x 2 55,7 x 32 46 x 14,5 "
WH1601A 16 x 1 80 x 36 66 x 16
WH1601B 16 x 1 85 x 28 66 x 16
WH1601L 16 x 1 122 x 33 99 x 13
WH1602A 16 x 2 84 x 44 " 66 x 16
WH1602B 16 x 2 80 x 36 66 x 16
WH1602C 16 x 2 80 x 36 66 x 16
WH1602D 16 x 2 85 x 30 66 x 16
WH1602J 16 x 2 80 x 36 66 x 16
WH1602L1 16 x 2 122 x 44 " 99 x 24
WH1602M 16 x 2 85 x 32.6 66 x 16
WH1602O 16 x 2 85 x 25,2 66 x 16
WH1602P 16 x 2 85 x 25,2 66 x 16
WH1602S 16 x 2 59 x 29,3 52 x 15
WH1602T 16 x 2 65,4 x 28,2 54,8 x 19
WH1602W 16 x 2 80 x 36 66 x 16
WH1602V2 16 x 2 66,7 x 23,3 61 x 15,9 "
WH1604A 16 x 4 87 x 60 62 x 26
WH1604B 16 x 4 70,6 x 60 60 x 32.6
WH2002A 20 x 2 116 x 37 85 x 18,6
WH2002D 20 x 2 89 x 21,5 75 x 15
WH2002L 20 x 2 180 x 40 149 x 23
WH2002M 20 x 2 146 x 43 " 123 x 23
WH2004A 20 x 4 98 x 60 77 x 25,2
WH2004B 20 x 4 98 x 60 77 x 25,2
WH2004D 20 x 4 77 x 47 60 x 22
WH2004G 20 x 4 87 x 58 74,4 x 24,8
WH2004H 20 x 4 87 x 58 74,4 x 24,8
WH2004L 20 x 4 146 x 62,5 " 123,5 x 43
WH2402A 24 x 2 118 x 36 94,5 x 16
WH4002A 40 x 2 182 x 33,5 154,4 x 16,5
WH4004A 40 x 4 190 x 54 147 x 29,5

De LCD-indicator aansluiten op de microcontroller.

Aansluitschema's, tijdschema's, signaalparameters, stuurcommando's, symboolcodes worden gedetailleerd beschreven in de documentatie voor de HD44780-controller. Ik zal alleen de meest noodzakelijke gegevens geven over het aansluiten van indicatoren op microcontrollers.

Normaal gesproken hebben LCD-indicatoren 16 pinnen.

Pincode Signaal I - ingang O - uitgang Signaaltoewijzing
1 vss - Aarde (gemeenschappelijke draad)
2 Vdd - Vermogen + 5V
3 Vo - Displaycontrastregeling. Ingang voor het aansluiten van de middelste uitgang van de spanningsdeler + 5 V. U kunt een trimmerweerstand gebruiken met een weerstand van 10-20 kOhm.
4 l Registerselectie: 0 - commandoregister; 1 - gegevensregister. Een laag signaalniveau betekent dat er een commando is gegenereerd op de databus, een hoog niveau - op de databus.
5 R / W l Gegevensoverdracht richting:

0 - opnemen;

1 - lezen.

In veel toepassingen wordt de leesfunctie niet gebruikt, dus het signaal is vaak verbonden met aarde.

6 E l Busbediening stroboscoop (negatieve rand).
7 DB0 ik / O De minst significante bits van de acht-bits modus. Niet gebruikt met een vier-bits interface.
8 DB1 ik / O
9 Db2 ik / O
10 DB3 ik / O
11 DB4 ik / O De meest significante bits van een acht-bits modus of databits van een vier-bits interface.
12 DB5 ik / O
13 DB6 ik / O
14 DB7 ik / O
15 EEN - Achtergrondverlichting vermogensanode (+).
16 K - Achtergrondverlichting stroomkathode (-). De stroom moet worden beperkt.

Het pinnummer (eerste kolom) is voor de meest voorkomende optie. U kunt dit beter controleren door de documentatie voor uw indicatortype te downloaden uit de tabel in de vorige sectie.

Character LCD-schermen ondersteunen twee opties om verbinding te maken met de microcontroller:

  • Met behulp van een 8-bit databus. Alle DB0-DB7 bussignalen zijn aangesloten. In één uitwisselingscyclus wordt een byte aan informatie verzonden.
  • Met behulp van een 4-bit databus. Alleen de 4 meest significante bits van DB4-DB7 zijn verbonden. Informatie wordt verzonden in vier bits per buscyclus.

De eerste optie brengt gegevens sneller over naar het scherm. De tweede vereist 4 pinnen minder om de indicator aan te sluiten. Ongetwijfeld is het belangrijker om het aantal pinnen voor een verbinding te verminderen dan om de wisselkoers te verhogen. Bovendien zijn LCD-indicatoren nogal trage apparaten met een regeneratiecyclustijd van 10-20 ms.

Een karakter-LCD (LCD)-display aansluiten op het Arduino-bord.

Ik zal de WH2004A-indicator (4 regels van 20 tekens) in vier bit-uitwisselingsmodus verbinden met het Arduino UNO R3-bord. Documentatie over LCD-display WH2004 kan worden bekeken via deze link.

Het schema ziet er als volgt uit.

Weerstanden R2 en R3 bepalen het contrast van de indicator. U kunt een trimmer aansluiten en de gewenste beeldhelderheid instellen. Ik gebruik vaak WH2004-indicatoren en in mijn circuits kies ik dergelijke weerstandswaarden.

Ik heb de LED's van de achtergrondverlichting van de indicator aangesloten op een 5 V-voeding via een weerstand R1 (30 Ohm). Hiermee stel ik de stroom in op ongeveer 25 mA. Dik maar gloeiend. Je kunt het goed zien in het donker. Hoewel WH2004-indicatoren een achtergrondverlichtingsstroom tot 580 mA toestaan.

Bibliotheek voor het beheren van LCD-indicatoren in het Arduino LiquidCrystal-systeem.

Er is een standaardbibliotheek voor het aansturen van LCD-indicatoren op basis van de HD44780-controller. Ik zal de methoden in detail beschrijven.

Vloeistofkristal (...)

Klasse bouwer. Kan een ander aantal argumenten aannemen.

  • LiquidCristal (rs, en, d4, d5, d6, d7) - vier-bits interface, RW-signaal wordt niet gebruikt (aangesloten op aarde).
  • LiquidCristal (rs, rw, en, d4, d5, d6, d7) - vier bit-interface, RW-signaal wordt gebruikt.
  • LiquidCristal (rs, en, d0, d1, d2, d3, d4, d5, d6, d7) is een acht-bit interface, het RW-signaal wordt niet gebruikt (aangesloten op massa).
  • LiquidCristal (rs, rw, en, d0, d1, d2, d3, d4, d5, d6, d7) is een 8 bit interface, het RW signaal is in gebruik.

Argumenten:

  • rs - RS-signaal pincode;
  • rw - pinnummer van het RW-signaal;
  • en - pinnummer van signaal E;
  • d0, d1, d2, d3, d4, d5, d6, d7 - pinnummers van de databus.

LiquidCrystal-disp (6, 7, 2, 3, 4, 5);

void begin (cols, rows)

Initialiseert de indicatorinterface. Stelt de afmeting van de indicator in. De methode moet eerst worden aangeroepen voordat andere functies van de klasse worden gebruikt.

Argumenten:

  • cols - het aantal tekens in de regel;
  • rijen is het aantal rijen.

disp.begin (20, 4); // we gebruiken het display - 4 regels van 20 tekens

leegte duidelijk ()

Het scherm leegmaken, de cursor in de linkerbovenhoek plaatsen.

disp.wissen (); // scherm resetten

leeg huis ()

Zet de cursor in de linkerbovenhoek.

disp.home (); // naar het begin van het scherm

void setCursor (kolom, rij)

Plaatst de cursor op de opgegeven positie.

  • col - X-coördinaat, nummering vanaf 0;
  • rij - Y-coördinaat, nummering vanaf 0.

setCursor (0,1); // cursor naar het begin van de tweede regel

byte schrijven (gegevens)

Toont een teken op het scherm. Retourneert het aantal overgedragen bytes.

De volgende schets toont gegevens van de seriële poort. Gegevens kunnen worden overgedragen door de Arduino IDE-poortmonitor.

// seriële poort data output naar LCD indicator
#erbij betrekken


char gegevens;

ongeldige instelling ()
{
Serieel.begin (9600); // initialiseer de seriële poort
disp.begin (20, 4); //
}

lege lus ()
{
if (Seriële.beschikbare ()) (// als er gegevens zijn
data = Serieel.lezen (); // lees het symbool
if ((data! = 0xd) && (data! = 0xa)) (// line feed
disp.write (gegevens); // het symbool op het scherm weergeven
}
}
}

Ik heb een grote indicator - 4 regels van elk 20 tekens. Het heeft twee HD44780-controllers. Daarom vullen opeenvolgend verzonden tekens eerst de eerste regel, dan de derde, dan de tweede en de vierde. Die. door de lijn. Met deze eigenschap moet rekening worden gehouden voor bepaalde soorten indicatoren. In de documentatie voor elke LCD-indicator wordt de volgorde van karakteradressering aangegeven.

byte-afdruk (gegevens)

Geeft tekst weer. Retourneert het aantal overgedragen bytes.

Argumenten:

gegevens - gegevens om op het scherm weer te geven. Ze kunnen van het type char, byte, int, long, string zijn.

Er kan een tweede, optioneel argument zijn.

byte-afdruk (gegevens, BASE)

  • BASE - stelt het nummeringssysteem in:
  • BIN - binair;
  • DEC - decimaal;
  • OKT - Octaal:
  • HEX is hexadecimaal.

Een voorbeeld van een programma dat een tekststring op het display afdrukt.

// tekstreeksuitvoer naar LCD-indicator
#erbij betrekken

LiquidCrystal-disp (6, 7, 2, 3, 4, 5); // maak een object

ongeldige instelling ()
{
disp.begin (20, 4); // initialiseer het display 4 regels van 20 karakters
disp.print ("Teststring");
}

lege lus ()
{ }

lege cursor ()

Schakelt de cursorweergavemodus in. De positie waar het volgende teken wordt weergegeven, is onderstreept.

disp.cursor (); // cursorweergave inschakelen

ongeldig geen Cursor ()

Voorkomt dat de cursor wordt weergegeven.

disp.noCursor (); // weergave van de cursor uitschakelen

leegte knipperen ()

Schakelt knipperende cursormodus in. Gebruikt in combinatie met de cursorfunctie (). Het resultaat is afhankelijk van het specifieke indicatormodel.

disp.knipperen (); // knipperende cursor inschakelen

void noBlink ()

Schakelt knipperende cursormodus uit.

disp.noBlink (); // de knipperende cursor uitschakelen

ongeldige weergave ()

Schakelt het scherm in nadat het is uitgeschakeld met de functie noDisplay (). Op het scherm wordt de informatie weergegeven die vóór de afsluiting was.

weergave (); // zet het scherm aan

void noWeergeven ()

Schakelt het scherm uit. De informatie wordt in het geheugen opgeslagen en verschijnt wanneer het display wordt ingeschakeld.

display.noDisplay (); // zet het scherm uit

void scrollDisplayLeft ()

Schuift de inhoud van het display één teken naar links.

afb. scrollDisplayLeft (); // alles naar links verplaatsen

void scrollDisplayRight ()

Schuift de inhoud van het display één teken naar rechts.

afb. scrollDisplayRight (); // alles naar rechts verplaatsen

ongeldig automatisch scrollen ()

Schakelt de modus voor automatisch scrollen van tekst in. Wanneer elk teken wordt weergegeven, wordt alle tekst op het scherm met één teken verschoven. De functies leftToRight () en rightToLeft () bepalen in welke richting de informatie wordt verschoven.

afb. automatisch scrollen () (); // automatisch scrollen inschakelen

void noAutoscroll ()

Schakel automatisch schuiven van tekst uit.

afb. neeAutoscroll () (); // autoscroll verbieden

leegte leftToRight ()

Stelt de uitvoermodus van de test van links naar rechts in. Nieuwe symbolen verschijnen rechts van de vorige.

van links naar rechts (); // links-naar-rechts modus

ongeldig rechtsNaarLinks ()

Stelt de uitvoermodus van de test van rechts naar links in. Nieuwe symbolen verschijnen links van de vorige.

rechts naar links (); // rechts-naar-links modus

ongeldig createChar (num, data)

Methode voor het maken van een aangepast symbool. Met de controller kunnen maximaal 8 tekens (0... 7) 5x8 pixels groot worden gemaakt. De symboolafbeelding wordt gespecificeerd door een 8-byte-array. De minst significante 5 bits van elke byte bepalen de toestand van de pixels in de rij.

Om een ​​aangepast teken weer te geven, kunt u de functie schrijven () gebruiken met het tekennummer.

// een aangepast symbool maken
#erbij betrekken

LiquidCrystal-disp (6, 7, 2, 3, 4, 5); // maak een object

byte glimlach = (
B00000000,
B00010001,
B00000000,
B00000000,
B00010001,
B00001110,
B00000000,
B00000000
};

ongeldige instelling ()
{
disp.createChar (0, glimlach); // maak een symbool
disp.begin (20, 4); // initialiseer het display 4 regels van 20 karakters
disp.print ("Glimlach");
disp.write (byte (0)); // toon het symbool
}

lege lus ()
{ }

Hier is een voorbeeld van een programma dat het Russische alfabet weergeeft.

// uitvoer van het Russische alfabet
#erbij betrekken

LiquidCrystalRus disp (6, 7, 2, 3, 4, 5); // maak een object

ongeldige instelling ()
{
disp.begin (20, 4); // initialiseer het display 4 regels van 20 karakters
disp.print ("abvgdeozhziyklmnoprst");
disp.print ("ABVGDEEZHZIYKLMNOPRST");
disp.print ("ufhtschshshchiyueyuya");

Categorie:. U kunt toevoegen aan bladwijzers.

Elke radioamateur komt, na een aantal eenvoudige zelfgemaakte producten, tot het doel om met behulp van sensoren en knoppen iets groots te construeren. Het is immers veel interessanter om gegevens naar het beeldscherm te sturen dan naar de poortmonitor. Maar dan rijst de vraag: welk scherm te kiezen? En in het algemeen, hoe te verbinden, wat is nodig om te verbinden? De antwoorden op deze vragen zullen in dit artikel worden besproken.

LCD 1602

Onder de vele opties onder de schermen, zou ik apart het LCD1602-scherm willen noemen op basis van de HD4478-controller. Dit display is verkrijgbaar in twee kleuren: witte letters op een blauwe achtergrond, zwarte letters op een gele achtergrond. Het aansluiten van de LCD 1602 op de Arduino zal ook geen problemen opleveren, aangezien er een ingebouwde bibliotheek is en je niets extra hoeft te downloaden. Displays verschillen niet alleen in prijs, maar ook in grootte. Radioamateurs gebruiken vaak 16 x 2, dat wil zeggen 2 regels van 16 karakters. Maar er is ook 20 x 4, waar er 4 regels van 20 karakters zijn. Grootte en kleur spelen geen rol bij het aansluiten van het lcd 1602-display op de Arduno, ze zijn op dezelfde manier aangesloten. De kijkhoek is 35 graden, de responstijd van het display is 250 ms. Het kan werken bij temperaturen van -20 tot 70 graden Celsius. Gebruikt in bedrijf 4mA per scherm en 120mA per achtergrondverlichting.

Waar wordt het gebruikt?

Dit display is niet alleen populair bij radioamateurs, maar ook bij grote fabrikanten. Printers, koffiemachines gebruiken bijvoorbeeld ook LCD1602. Dit komt door de lage prijs, dit scherm kost 200-300 roebel op Chinese sites. Het is de moeite waard om daar te kopen, omdat in onze winkels de prijsverhogingen voor dit display erg hoog zijn.

Verbinding maken met Arduino

Het aansluiten van LCD 1602 op Arduino Nano en Uno is niet anders. U kunt met het display in twee modi werken: 4 bits en 8. Bij het werken met 8-bits worden zowel de minst significante als de meest significante bits gebruikt, en bij 4-bits - alleen de minst significante. Het heeft geen zin om met 8-bit te werken, omdat er nog 4 contacten worden toegevoegd om verbinding te maken, wat niet aan te raden is, omdat de snelheid niet hoger zal zijn, de limiet voor het bijwerken van het scherm 10 keer per seconde. Over het algemeen worden er veel draden gebruikt om de lcd 1602 aan te sluiten op de Arduino, wat voor wat ongemak zorgt, maar er zijn speciale schilden, maar daarover later meer. De foto toont de aansluiting van het display op de Arduino Uno:

Voorbeeld programmacode:

#erbij betrekken // Voeg de vereiste bibliotheek toe LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup () (lcd.begin (16, 2)); // Stel de schermgrootte in lcd.setCursor (0, 0); // Zet de cursor op het begin van 1 regel lcd.print ("Hallo, wereld!"); // Toon de tekst lcd.setCursor (0, 1); // Zet de cursor aan het begin van regel 2 lcd.print ("site") ; // Toon de tekst) void loop () ()

Wat doet de code? De eerste stap is om de bibliotheek aan te sluiten om met het display te werken. Zoals hierboven vermeld, is deze bibliotheek al opgenomen in de Arduino IDE en hoeft u deze niet extra te downloaden en te installeren. Vervolgens worden de contacten bepaald die op de pinnen zijn aangesloten: respectievelijk RS, E, DB4, DB5, DB6, DB7. Vervolgens wordt de afmeting van het scherm ingesteld. Aangezien we werken met een versie met 16 karakters en 2 regels, schrijven we dergelijke waarden. We zetten de cursor aan het begin van de eerste regel en geven onze eerste tekst Hello World weer. Plaats vervolgens de cursor op de tweede regel en geef de naam van de site weer. Dat is alles! Het aansluiten van de lcd 1602 op de Arduino Uno kwam aan de orde.

Wat is I2C en waarom is het nodig?

Zoals hierboven vermeld, kost het aansluiten van het scherm veel pinnen. Als je bijvoorbeeld met meerdere sensoren en een LCD 1602-display werkt, zijn de pinnen misschien gewoon niet genoeg. Vaak gebruiken radioamateurs de Uno- of Nano-versie, waar niet veel contacten zijn. Toen bedachten mensen speciale schilden. Bijvoorbeeld I2C. Hiermee kunt u een display aansluiten met slechts 4 pinnen. Dit is de helft van de grootte. De I2C-module wordt zowel apart verkocht, waar je hem zelf moet solderen, als al gesoldeerd aan het LCD 1602-display.

Verbinding met I2C-module

Het aansluiten van LCD 1602 op Arduino Nano met I2C neemt weinig ruimte in beslag, slechts 4 pinnen: aarde, voeding en 2 data-uitgangen. We verbinden de stroom en aarde met respectievelijk 5V en GND op de Arduino. De overige twee pinnen: SCL en SDA zijn verbonden met analoge pinnen. Op de foto zie je een voorbeeld van het aansluiten van de lcd 1602 op een arduino met een I2C-module:

Programmacode:

Als om met een display zonder module te werken het nodig was om slechts één bibliotheek te gebruiken, dan heb je twee bibliotheken nodig om met een module te werken. Een daarvan is al opgenomen in de Arduino IDE - Wire. Een andere bibliotheek, LiquidCrystal I2C, moet apart worden gedownload en geïnstalleerd. Om de bibliotheek in Arduino te installeren, moet de inhoud van het gedownloade archief worden geüpload naar de hoofdmap van de bibliotheken. Een voorbeeld van een programmacode die I2C gebruikt:

#erbij betrekken #erbij betrekken LiquidCrystal_I2C lcd (0x27,16,2); // Stel de display leeg setup in () (lcd.init (); lcd.backlight (); // Zet de displayverlichting aan lcd..setCursor (8, 1); lcd.print ("LCD 1602"); ) void loop ( ) (// Zet de cursor op de tweede regel en een null character.lcd.setCursor (0, 1)); // Toon het aantal seconden sinds het begin van de Arduino lcd.print (millis () / 1000);)

Zoals je kunt zien, is de code bijna hetzelfde.

Hoe voeg je je eigen symbool toe?

Het probleem met deze displays is dat er geen ondersteuning is voor Cyrillisch en symbolen. U moet bijvoorbeeld een symbool in het display laden zodat het dit kan weerspiegelen. Hiervoor kunt u op het display maximaal 7 eigen symbolen maken. Presenteer een tafel:

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

Als 0 - er is niets, als 1 - is dit een gevuld gebied. In het bovenstaande voorbeeld ziet u de creatie van het smiley-smileysymbool. Met behulp van een voorbeeldprogramma in Arduino ziet het er als volgt uit:

#erbij betrekken #erbij betrekken // Voeg de vereiste bibliotheek toe // Bitmasker van het smile-symbool byte smile = (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 de schermgrootte in lcd.createChar (1, smile); // Maak tekennummer 1 lcd.setCursor (0, 0); // Zet de cursor aan het begin van regel 1 lcd.print ("\ 1"); // Geef de smiley weer (tekennummer 1) - "\ 1") void loop () ()

Zoals u kunt zien, is het bitmasker op dezelfde manier gemaakt als de tabel. Eenmaal gemaakt, kan het als een variabele naar het display worden uitgevoerd. Houd er rekening mee dat er slechts 7 tekens in het geheugen kunnen worden opgeslagen. In principe is dit voldoende. Bijvoorbeeld als u het graden-symbool wilt tonen.

Problemen waarbij het display mogelijk niet werkt

Er zijn momenten waarop het display niet werkt. Het gaat bijvoorbeeld aan, maar toont geen symbolen. Of gaat helemaal niet aan. Kijk eerst of je de pinnen goed hebt aangesloten. Als je de aansluiting van de lcd 1202 op de Arduino zonder I2C hebt gebruikt, kun je heel gemakkelijk in de draden verstrikt raken, waardoor het display defect kan raken. U moet er ook voor zorgen dat het contrast van het display wordt verhoogd, aangezien het bij minimaal contrast niet eens zichtbaar is of de LCD 1602 aan staat of niet. Mocht dit niet helpen, dan ligt het probleem wellicht in het solderen van de contacten, dit is bij gebruik van de I2C module. Een veel voorkomende reden dat het display mogelijk niet werkt, is de onjuiste instelling van het I2C-adres. Het feit is dat er veel fabrikanten zijn en dat ze een ander adres kunnen plaatsen, je moet het hier oplossen:

LiquidCrystal_I2C lcd (0x27,16,2);

Tussen haakjes ziet u twee waarden, 0x27 en 16.2 (16, 2 is de weergavegrootte en 0x27 is hetzelfde I2C-adres). In plaats van deze waarden kunt u proberen 0x37 of 0x3F in te voeren. Nou, een andere reden is gewoon een defect LCD 1602. Aangezien bijna alles voor de Arduino in China wordt gemaakt, kun je er niet 100% zeker van zijn dat het gekochte product geen defect is.

Voor- en nadelen van LCD 1602

Laten we eens kijken naar de voor- en nadelen van het LCD 1602-scherm.

  • Prijs. Deze module kan tegen een volledig betaalbare prijs worden gekocht in Chinese winkels. De prijs is 200-300 roebel. Soms wordt het zelfs samen met een I2C-module verkocht.
  • Eenvoudig aan te sluiten. Waarschijnlijk sluit niemand tegenwoordig een LCD 1602 aan zonder I2C. En met deze module heeft de verbinding slechts 4 contacten nodig, er zullen geen "spinnenwebben" van de draden zijn.
  • Programmeren. Dankzij kant-en-klare bibliotheken is het eenvoudig om met deze module te werken, alle functies zijn al geschreven. En indien nodig duurt het maar een paar minuten om uw eigen symbool toe te voegen.
  • Gedurende de tijd van gebruik door duizenden radioamateurs zijn er geen grote nadelen vastgesteld, alleen zijn er gevallen van het kopen van een huwelijk, aangezien voornamelijk Chinese versies van displays worden gebruikt.

Dit artikel ging over het aansluiten van de 1602 op een Arduino en presenteerde ook voorbeelden van programma's om met dit scherm te werken. Het is echt een van de beste in zijn categorie, het is niet alleen dat het door duizenden radioamateurs wordt gekozen voor hun projecten!