Les 20/31: Gebruik van LCD1602 met Arduino om teks te vertoon | Robojax
Inleiding
Die LCD1602 is een van die gewildste alfanumeriese skerms vir Arduino-projekte, en wanneer dit met 'n I2C-rugpak gekoppel word, word dit ongelooflik maklik om te gebruik. In hierdie tutoriaal sal jy leer hoe om teks, getalle en pasgemaakte karakters te vertoon, sowel as hoe om teks oor die skerm te rol. Ons sal jou ook wys hoe om die LCD met ander sensors te kombineer om praktiese moniteringsinstrumente te skep. Hierdie gids is deel van 'n breër Arduino-kursus en is ontwerp om jou te help om nuttige toestelle vir jou huis, skool of werkswinkel te bou.
Hier is 'n paar praktiese idees vir wat jy met hierdie kennis kan bou:
- 'n Temperatuur- en humiditeitsmonitor vir 'n kweekhuis of reptielhok.
- 'n Eenvoudige voltmeter om batteryvlakke in jou projekte te kontroleer.
- 'n Afstandsensor vir 'n parkeerassistent of 'n slim vullisdrom wat wys hoe vol dit is.
Hardware-oorsig
Die LCD1602 is 'n 16-karakter by 2-lyn vertoning. Die module aan die agterkant is 'n I2C (of I²C) adapter, wat die aantal drade wat nodig is van 'n standaard parallelle verbinding verminder tot net vier: Grond, VCC, SDA en SCL. Dit maak bedrading baie eenvoudiger en bevry baie digitale penne op jou Arduino.
Die vertoning het 'n agterlig, wat per sagteware aan- of afgeskakel kan word. Dit het ook 'n klein potensiometer op die I2C-module om die kontras aan te pas. As jy die vertoning aanskakel en niks sien nie, draai eenvoudig hierdie skroef totdat die teks sigbaar word (in video by 02:47).
Daar is verskillende weergawes van hierdie vertoning, soos die LCD2004 wat 20 karakters en 4 lyne het. Die I2C-adres kan ook verander word deur die A0-, A1- en A2-springers op die module te soldeer (in video by 03:51). Die standaardadres is dikwels 0x27, maar dit kan verskil, so dit is altyd 'n goeie idee om 'n I2C-skandeerder te laat loop om die korrekte een vir jou spesifieke module te vind.
Hardware-komponente
Om saam met die hoofdemonstrasie in hierdie video te volg, sal jy die volgende komponente nodig hê:
- Arduino Uno (of enige versoenbare bord)
- LCD1602 met I2C-module
- Broodbord en springdrade
Vir die latere afdelings sal jy ook 'n DHT11-sensor, 'n potensiometer of 'n ultrasoniese sensor nodig hê, afhangende van watter projek jy wil bou.
Bedradingsgids
Om die LCD te koppel is eenvoudig. Die bedradingsdiagram wys die verbindings duidelik.
Koppel die penne op die I2C-module aan jou Arduino soos volg:
- GND aan Arduino GND
- VCC aan Arduino 5V
- SDA aan Arduino A4
- SCL aan Arduino A5
As jou Arduino-bord toegewyde SDA- en SCL-penne het, kan jy ook daaraan koppel (in video by 05:47).
Installeer die Biblioteek
Hierdie module vereis die "Arduino Liquid Crystal I2C"-biblioteek. Jy kan dit aflaai van die skakel wat in die videobeskrywing verskaf word of van die Robojax-webwerf. Sodra dit afgelaai is, installeer dit in jou Arduino IDE deur na Skets > Insluit Biblioteek > Voeg .ZIP-biblioteek by te gaan en die afgelaaide lêer te kies (in video by 06:41).
Kodeverduideliking
Aangesien geen kodestukke verskaf is nie, sal ons die algemene struktuur van die kode wat in die video gebruik word, verduidelik.
Die kode begin deur die nodige biblioteke in te sluit: Wire.h vir I2C-kommunikasie en die LiquidCrystal_I2C.h-biblioteek vir die vertoning. Die sleuteldeel is om 'n objek vir die LCD te skep. Jy sal die korrekte I2C-adres en die afmetings van jou vertoning moet stel:
// Stel die LCD-adres na 0x27 vir 'n 16-karakter en 2-lyn vertoning
LiquidCrystal_I2C lcd(0x27, 16, 2);
As jou vertoning niks wys nie, moet jy dalk 0x27 na 0x3F of 'n ander adres wat deur jou I2C-skandeerder gevind is, verander. Die 16 en 2 verteenwoordig die aantal kolomme en rye op jou vertoning.
In die setup()-funksie initialiseer jy die LCD en skakel die agterlig aan:
void setup() {
lcd.init();
lcd.backlight();
}
Om teks te druk, gebruik jy die lcd.setCursor(kolom, ry)-funksie om die wyser te posisioneer, gevolg deur lcd.print() om jou data te vertoon. Byvoorbeeld, om op die tweede lyn te druk, sal jy lcd.setCursor(0, 1) gebruik. Die video verduidelik ook hoe om spesiale karakters soos die graadsimbool te druk deur lcd.write(223) te gebruik (in video by 31:42).
Demonstrasie
Die video demonstreer verskeie sleutelkenmerke van die LCD. Eerstens wys dit die basiese "Hello World"-teksdruk en hoe om die lcd.scrollDisplayLeft()-funksie te gebruik om teks oor die skerm te beweeg. Later kombineer dit die LCD met 'n DHT11-sensor om temperatuur en humiditeit te vertoon, met 'n potensiometer om spanning te vertoon, en met 'n ultrasoniese sensor om afstand te vertoon.
Vir die temperatuurvertoning lees die kode die sensor en druk die waarde. Om 'n heelgetal sonder desimale te wys, kan jy die float-waarde na 'n heelgetal omskakel, soos in die video gewys word (in video by 32:21).
Vir die voltmeter lees die kode die analoogwaarde van die potensiometer, skaal dit na 'n spanningsreeks van 0-5V, en vertoon dit op die skerm (in video by 34:31).
Die finale demonstrasie kombineer die LCD met 'n ultrasoniese sensor om die gemete afstand in sentimeters te vertoon (in video by 37:55).
Verwante projekte uit hierdie video
Hierdie video bevat ook ander projekhandleidings. Jy kan hulle hier vind:
- Les 20/31: Vertoon van temperatuur en humiditeit van DHT11 op LCD-skerm
- Les 20/31: Vertoon van spanning op LCD1602
Hoofstukke
- [00:00] Inleiding tot LCD1602 en kursusoorsig
- [01:30] Hardeware-oorsig van die LCD1602 en I2C-module
- [02:47] Aanpassing van vertoonkontras en agtergrondlig
- [03:14] Penverbindings en I2C-adreskeuse
- [05:28] Bedradingsdiagram vir die LCD
- [06:16] Installeer die vereiste biblioteek
- [07:24] Basiese kode vir die druk van teks
- [11:10] Knipperende wyservoorbeeld
- [13:46] Pasgemaakte karakters en die druk van spesiale simbole
- [18:51] Seriële vertoonvoorbeeld
- [23:16] Rolvertoning van teks op die LCD
- [36:51] Kombineer LCD met 'n ultrasoniese sensor
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
*/
/*
This is code for LCD1602 Display with I2C module
* watch the video for this code https://youtu.be/q9YC_GVHy5A
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purpose only.
* This library is based on work done by DFROBOT (www.dfrobot.com).
*/
/*
* This code has been modefied from the Arduino library
* Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
* in Ajax, Ontario, Canada
* for Robojax.com
*
* This is code for LCD1602 Display with I2C module
* which can display text on the screen.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
//lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
lcd.clear();
lcd.setCursor (0,0);
lcd.print("SunFounder ");
lcd.setCursor (0,1);
lcd.write(244);
delay(500);
//end of loopcode Robojax code for LCD with I2C
}
Common Course Links
Common Course Files
Goedere wat jy dalk nodig het
-
AmazonBuy LCD1602-I2C from Amazonamzn.to
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
-
eBayPurchase LCD1602-I2C from eBayebay.us
-
AliExpressPurchase 10pcs LCD1602-I2C from AliExpresss.click.aliexpress.com
Hulpbronne en verwysings
-
DokumentasieDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
BuitenburgLCD library from RoboJax (ZIP)robojax.com
-
BuitenburgPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Lêers📁
Arduino Biblioteke (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB