Zoekopdracht
Sluit dit zoekvak.

Interface 16×2 LCD-module zonder I2C: een uitgebreide handleiding voor Arduino en ESP32

Inhoudsopgave

Dit artikel duikt diep in de wereld van het koppelen van een 16×2 LCD-module aan microcontrollers zoals Arduino en ESP32, met specifieke aandacht voor de installatie zonder een I2C-module te gebruiken. We onderzoeken waarom u deze methode zou kunnen kiezen, hoe het werkt en bieden een gedetailleerde tutorial voor het aansluiten en programmeren van uw LCD. Als u de basisprincipes van LCD-koppeling wilt begrijpen en wilt weten hoe u een 16×2 LCD-scherm kunt aansturen zonder afhankelijk te zijn van het gemak van een I2C-adapter, dan is dit de gids voor u.

Arduino Karakter 1602 LCD-module

1. Wat is een 16×2 LCD en waarom heb je er een interface voor nodig?

Een 16×2 LCD-scherm, kort voor een 16 tekens per 2 regels vloeibaar kristalscherm, is een veelgebruikte en veelzijdige displaymodule. Het wordt gebruikt om tekst en numerieke informatie op een duidelijke en beknopte manier te presenteren. In tegenstelling tot complexe grafische displays zijn 16×2 LCD's relatief eenvoudig aan te sturen, waardoor ze perfect zijn voor verschillende microcontrollerprojecten. De "16×2" verwijst naar de capaciteit om 16 tekens op elk van de twee rijen weer te geven, waardoor het geschikt is voor het weergeven van sensormetingen, projectstatus of gebruikersberichten. Door deze lcd-displaymodules te koppelen aan microcontrollers zoals Arduino of ESP32 kunnen uw projecten met de gebruiker communiceren door informatie in een voor mensen leesbare vorm weer te geven. Ze zijn relatief goedkoop en eenvoudig te gebruiken.

De aantrekkingskracht van de 16×2 lcd module ligt in zijn eenvoud en lage kosten. Het is een hoofdbestanddeel in elektronica voor verschillende hobby- en professionele projecten vanwege zijn vermogen om tekst en getallen weer te geven zonder de overhead van complexere displaytechnologieën. Door deze module te koppelen, kunnen ontwikkelaars van embedded systemen apparaten maken die visuele feedback kunnen geven, zonder complexe grafische displays te gebruiken. Het gemak van integratie maakt 16×2 lcd's een zeer nuttig displaytool voor het weergeven van informatie van verschillende sensoren.

2. Waarom zou u een 16×2 LCD zonder I2C willen aansluiten?

Hoewel I2C-modules het gemak bieden van het verminderen van het aantal pinnen dat nodig is voor interface, heeft het kiezen om een 16×2 lcd zonder i2c rechtstreeks aan te sluiten verschillende voordelen. Ten eerste biedt het een dieper begrip van de onderliggende communicatieprotocollen en hoe de LCD-module functioneert, wat het een geweldige educatieve ervaring maakt. Ten tweede vermijdt u door niet te vertrouwen op de i2c-interface de complexiteit van de i2c-bus en mogelijke adresconflicten. Dit kan belangrijk zijn als u beperkingen ondervindt in uw project of de complexiteit van de verbinding van uw i2c-apparaten wilt verminderen. U bent niet beperkt tot één adres.

Bovendien kan directe interfacing voordelig zijn voor projecten waarbij elke pin op uw microcontroller waardevol is. Een i2c-module reduceert doorgaans het aantal pinnen dat u moet gebruiken tot 2, maar deze 2 pinnen zijn toegewijd aan i2c-communicatie en kunnen voor iets anders nodig zijn, terwijl u bij interfacen zonder i2c-module vrij kunt selecteren welke pinnen u wilt gebruiken. Interfacen zonder i2c-module geeft u volledige controle over de verbinding. Directe verbinding kan ook sneller zijn voor het weergeven van gegevens, aangezien i2c-communicatie moet worden uitgevoerd voordat gegevens naar het lcd-scherm kunnen worden verzonden. Dit is niet altijd kritisch, maar is iets om te overwegen bij het ontwerpen van toepassingen die snelle updatetijden vereisen voor de weergegeven inhoud.

3. Welke hardware is vereist om een 16×2 LCD zonder I2C-module te koppelen?

Om een 16×2 LCD-module zonder i2c te koppelen, hebt u een paar essentiële componenten nodig. Het kernitem is een standaard 16×2 lcd, die doorgaans wordt geleverd met 16 pinnen voor aansluiting. U hebt ook een microcontroller nodig, zoals een Arduino Uno of ESP32. Daarnaast hebt u jumperdraden nodig om de verschillende pinnen van de lcd-module met uw microcontroller te verbinden. Verder is een potentiometer nodig om het contrast van het lcd-scherm aan te passen. Een breadboard kan een grote hulp zijn om alles netjes aangesloten en georganiseerd te houden.

De grootste uitdaging bij het aansluiten van een 16×2 lcd zonder i2c is dat het meer pinnen van uw microcontroller vereist dan bij gebruik van een i2c-adapter. Concreet gebruiken we 6 pinnen om het lcd-scherm te bedienen, plus twee pinnen om de voeding en aarde te bedienen. Daarom moet u uw microcontrollercircuit plannen met voldoende beschikbare uitgangspinnen. Als u deze pinnen beschikbaar hebt, hebt u volledige controle over het lcd. Met de potentiometer kunt u het contrast aanpassen, zodat de tekst op het lcd-scherm duidelijk zichtbaar is.

4. Hoe werkt het 16×2 LCD-scherm intern?

Het 16×2 LCD is gebaseerd op de HD44780 controller of een compatibele chip. Deze controller beheert de weergave van tekens en accepteert opdrachten via een parallelle interface. De interface gebruikt doorgaans 8 datapinnen (D0-D7) of 4 datapinnen in 4-bitsmodus (D4-D7), plus besturingspinnen (RS, R/W en EN). Elke tekenpositie op het lcd-scherm wordt intern door de controller aangesproken. Wanneer u een opdracht of tekengegevens verzendt, ontvangt de HD44780 controller de opdracht en handelt dienovereenkomstig.

De HD44780-controller gebruikt specifieke opdrachten voor taken zoals het wissen van het display, het instellen van de cursorpositie of het initialiseren van het lcd. Het begrijpen van deze architectuur is cruciaal wanneer u code schrijft om het lcd te besturen zonder de abstractie die wordt geboden door een i2c-module. De opdrachten worden naar het display verzonden via de datapinnen en de communicatiemodus wordt bepaald door besturingspinnen. Hierdoor kan de controller ook werken met verschillende soorten displayformaten, zoals 20×4, het 16×2 lcd-display gebruikt een vooraf gedefinieerde tekenset die op het scherm kan worden weergegeven.

5. Hoe sluit je een 16x2 LCD rechtstreeks aan op een Arduino?

Een verbinding maken 16×2 lcd rechtstreeks op een Arduino aansluiten omvat het bedraden van elke benodigde pin. Eerst moet u de VSS-pin van het LCD verbinden met de aarde (GND) en de VDD-pin met 5V, dit is uw voeding. De V0-pin (contrastaanpassing) is verbonden met de middelste pin van de potentiometer; de andere twee pinnen van de potentiometer zijn verbonden met de aarde en 5V om een spanningsdeler te maken die we zullen gebruiken om het contrast van het lcd-scherm te veranderen. Verbind vervolgens de RS-pin (Register Select) van het lcd met een digitale pin van de Arduino (bijv. pin 12). De R/W-pin (Read/Write) moet geaard zijn, omdat we alleen gegevens naar het LCD zullen schrijven. De EN-pin (Enable) moet worden verbonden met een andere digitale pin op de Arduino (bijv. pin 11).

Verbind vervolgens de datapinnen D4 tot D7 met digitale pinnen op de Arduino, bijvoorbeeld pinnen 5, 4, 3 en 2. Op deze manier gebruiken we de 4-bitsmodus, wat gebruikelijk is, omdat deze minder pinnen gebruikt. De 4-bitsmodus is eenvoudiger en gebruikt minder bedrading vergeleken met de 8-bitsmodus. De achtergrondverlichtingspinnen A (anode) en K (kathode) moeten respectievelijk worden aangesloten op 5V en GND met een stroombegrenzende weerstand op de anode indien nodig. Zorg ervoor dat u een schema gebruikt om dit proces te begeleiden. De pinnen zijn soms anders genummerd voor sommige lcd-modules. De pinindeling is altijd te vinden in het lcd-modulegegevensblad.

16x2 karakter LCD STN-scherm

6. Je Arduino programmeren om het 16×2 LCD aan te sturen: een gedetailleerde tutorial

Om uw Arduino te programmeren om de 16×2 LCD te interfacen, moet u de LiquidCrystal-bibliotheek gebruiken. Begin met het openen van de Arduino-IDE en neem de LiquidCrystal-bibliotheek op in uw projectcode. Initialiseer het LCD-object in uw code en specificeer de pinnen die voor de verbinding worden gebruikt. In ons voorbeeld zijn dat de pinnen: RS, EN, D4, D5, D6, D7. Bijvoorbeeld: Vloeibaar kristal lcd (12, 11, 5, 4, 3, 2);. Initialiseer het lcd-scherm binnen de setup()-functie door lcd.begin(16, 2); om het aantal kolommen en rijen van het lcd-scherm in te stellen. U moet het lcd ook initialiseren met de functie lcd initialiseren.

Nu kunt u in de loopfunctie verschillende opdrachten gebruiken om gegevens op het lcd-scherm weer te geven. U kunt bijvoorbeeld de cursorpositie instellen met lcd.setCursor(kolom, rij); en tekst weergeven met lcd.print("Hallo wereld");. U kunt het display wissen met de lcd.duidelijk(); commando. U kunt een kort programma maken en een paar codes uitvoeren om het bord te testen en nadat ik alles heb aangesloten. U kunt een seriële monitor gebruiken om het programma te debuggen. De liquidcrystal-bibliotheek verwerkt alle HD44780 low-level communicatie voor u, dus u hoeft zich geen zorgen te maken over het verzenden van afzonderlijke byte-sequenties en besturingssignalen. De belangrijkste functie is lcd.print() die wordt gebruikt om de gegevens weer te geven.

#erbij betrekken 

// Definieer pinnen die zijn aangesloten op het LCD
constant int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

// LCD-object initialiseren
VloeibaarKristal lcd(rs, en, d4, d5, d6, d7);

leegte opstelling() {
  // Stel het aantal kolommen en rijen in
  lcd-scherm.beginnen(16, 2);
  // Een bericht afdrukken op het LCD
  lcd-scherm.afdrukken("Hallo, LCD!");
}

leegte lus() {
  // Cursor op de tweede regel zetten
  lcd-scherm.Cursor instellen(0, 1);
  // Geef de tijd weer
  lcd-scherm.afdrukken(milliliter()/1000); lcd-scherm.afdrukken("seconden");
}

7. Wat over de ESP32? Een 16×2 LCD zonder I2C op een ESP32 aansluiten

Het aansluiten van een 16×2 LCD zonder i2c op een ESP32 is vergelijkbaar met het aansluiten op een Arduino, maar met enkele kleine verschillen. De ESP32 is een 3,3V microcontroller, terwijl de 16×2 lcd is doorgaans ontworpen om te werken op 5V. Daarom moet u mogelijk level shifters gebruiken voor spanningscompatibiliteit tussen de ESP32 en de logische pinnen van het LCD. Als alternatief kan het gebruik van een esp32-bord met level shifting de noodzaak voor externe level shifting-circuits elimineren. De fysieke bedrading zal grotendeels hetzelfde zijn als bij een Arduino. Sluit VSS aan op de grond en VDD op 5V (of 3,3V als u een 3,3V lcd of level shifters gebruikt).

De code in de arduino ide zal vrijwel hetzelfde zijn als die voor arduino, met weinig tot geen wijzigingen. Gebruik de LiquidCrystal-bibliotheek op dezelfde manier als in de Arduino-zelfstudie. Vergeet niet om uw pinverbindingen correct te definiëren in de LiquidCrystal lcd object. Controleer altijd het datasheet van uw lcd-module om er zeker van te zijn dat de pinnen correct zijn aangesloten. Controleer ook de pinout van uw ESP32-bord om er zeker van te zijn dat de verbindingen correct zijn. Wees u bewust van de verschillende pinnen die beschikbaar kunnen zijn en kies de juiste voor uw toepassing.

8. Hoe maak je aangepaste karakters op een 16×2 LCD zonder I2C?

Het is mogelijk om aangepaste tekens te maken op een 16×2 lcd, zelfs zonder de hulp van een i2c-module. Met de HD44780-controller kunt u maximaal 8 aangepaste tekens definiëren. U maakt aangepaste tekens door een patroon van bytes te definiëren, waarbij elke byte een rij van de 5×8 pixel-tekenmatrix vertegenwoordigt. Om dit te doen, maakt u eerst een byte-array die het pixelpatroon voor uw aangepaste teken definieert. Elke byte vertegenwoordigt één regel van het teken.

Gebruik dan de lcd.createChar(locatie, characterMap) functie in de Arduino-code. Het locatieargument definieert welke van de 8 beschikbare locaties het nieuwe teken (0 tot 7) moet opslaan, en characterMap is de byte-array die u zojuist hebt gemaakt. U kunt uw aangepaste teken vervolgens weergeven met behulp van lcd.write(locatie) in uw code, waar locatie is de locatie die u eerder hebt gedefinieerd. Dit wordt gedaan met behulp van het lcd-object dat u eerder hebt gemaakt. Dit is uiterst nuttig als uw toepassing unieke tekens nodig heeft die niet beschikbaar zijn in de standaardtekenset van de lcd-module.

9. Problemen oplossen met veelvoorkomende problemen bij het aansluiten van een 16×2 LCD zonder I2C

Het aansluiten van een 16×2 lcd zonder een i2c-adapter kan, hoewel eenvoudig, een paar veelvoorkomende problemen opleveren. Het eerste probleem is onjuiste bedrading. Controleer altijd het schema en zorg ervoor dat alle verbindingen correct zijn. Een veelvoorkomende fout is het omkeren van de polariteit van de voedingspinnen van de lcd-module, wat deze permanent kan beschadigen. Zorg er ook voor dat uw draden goed zijn aangesloten. Ten tweede kan een onjuiste initialisatie van het lcd-object problemen veroorzaken. Controleer nogmaals of de pinnen correct zijn geïnitialiseerd volgens de verbinding met het bord. Ook kan het type lcd-module een iets andere initialisatievolgorde vereisen.

De contrastinstellingen moeten ook correct worden aangepast met de potentiometer om het contrast van het lcd-scherm aan te passen totdat de tekst duidelijk zichtbaar is. Als het scherm leeg of onduidelijk is, is er mogelijk een bedradingsfout of een probleem met de voeding. Zorg ervoor dat u een stabiele voeding en de juiste spanning hebt. U kunt de code ook controleren met een seriële monitor om mogelijke problemen op te sporen. Als u nog steeds problemen ondervindt, overweeg dan om het arduino-forum te raadplegen. Het is gebruikelijk om te zien dat anderen mogelijk dezelfde problemen hebben ondervonden. Reddit is anoniem, dus u krijgt zeker een naam of suggestie.

10. Geavanceerde technieken en toekomstige projecten met 16×2 LCD's

Zodra u de basis van het koppelen van een 16×2 lcd zonder i2c onder de knie hebt, kunt u meer geavanceerde technieken verkennen. Dit omvat het weergeven van realtimegegevens van sensoren of het maken van een menusysteem. U kunt de aangepaste tekens ook gebruiken om eenvoudige afbeeldingen en statuspictogrammen voor uw project te maken. Vergeet niet om altijd het gegevensblad voor de lcd-module te gebruiken zoals weergegeven om de specifieke verbindingsvereisten van uw lcd-module te verifiëren. De methode die wij gebruiken, biedt flexibiliteit in termen van microcontrollerpinnen die kunnen worden gebruikt.

U kunt meerdere van dergelijke lcd-schermen gebruiken als u meer informatie wilt weergeven, maar wees u bewust van het aantal pinnen dat u gebruikt. Probeer ook te experimenteren met het weergeven van getallen met behulp van de lcd.print() commando en probeer verschillende manieren van gebruik de cursorpositie instellen functie om verschillende items op verschillende plekken op het scherm te plaatsen. Dit opent veel opties voor uw toekomstige projecten. De kennis die u opdoet door het LCD te bedienen zonder I2C biedt een goed startpunt voor het bedienen van geavanceerdere displaytypen.

LCD1602 LCD-module Weergave STN COB

Belangrijkste punten: 10 dingen om te onthouden bij het aansluiten van 16×2 LCD-schermen zonder I2C

  • De basisbeginselen begrijpen: De 16×2 lcd-module wordt aangestuurd via 6-10 besturings- en datapinnen zonder I2C-module.
  • Pinverbindingen zijn cruciaal: Controleer het datablad voor de specifieke pinbezetting voor uw lcd-module.
  • Contrast aanpassen: Gebruik altijd een potentiometer om het contrast van het lcd-scherm aan te passen.
  • LiquidCrystal-bibliotheek: Gebruik de VloeibaarKristal bibliotheek in de Arduino IDE om de programmering te vereenvoudigen.
  • Initialisatie: Initialiseer het LCD-scherm altijd correct met behulp van lcd.begin(16, 2);.
  • Gegevensweergave: Gebruik de lcd.print() om gegevens op de weergavemodule weer te geven.
  • Aangepaste tekens: Maak aangepaste personages met behulp van lcd.createChar() wanneer u ze nodig hebt.
  • Probleemoplossing: Controleer alle bedrading, code en verbindingen nogmaals om de oorzaak van eventuele problemen te achterhalen.
  • Beschikbaarheid van pins: Houd rekening met de microcontrollerpinnen die u gebruikt wanneer u besluit deze methode te gebruiken.
  • Ga verder: Ontdek geavanceerde technieken om nog complexere toepassingen te creëren.

Als u deze uitgebreide handleiding volgt, bent u goed toegerust om uw 16×2 lcd-module rechtstreeks met een Arduino of ESP32 te verbinden en de informatie weer te geven die uw projecten nodig hebben, zonder een i2c-adapter.

Reacties

Neem contact met ons op

Grote dingen in het bedrijfsleven worden nooit door één persoon gedaan. Ze worden gedaan door een team van mensen. We hebben die dynamische groep mensen
Scroll naar boven

Online aanvraag

Vul onderstaand formulier in, dan nemen wij binnenkort contact met u op.