Lekcija 20/31: Korištenje LCD1602 s Arduino prikazom teksta | Robojax
Uvod
LCD1602 je jedan od najpopularnijih alfanumeričkih displeja za Arduino projekte, a kada se upari s I2C adapterom, postaje nevjerovatno jednostavan za korištenje. U ovom tutorijalu naučit ćete kako prikazati tekst, brojeve i prilagođene znakove, kao i kako pomicati tekst preko ekrana. Također ćemo vam pokazati kako kombinirati LCD sa senzorima kako biste stvorili praktične alate za praćenje. Ovaj vodič je dio šireg Arduino kursa i dizajniran je da vam pomogne u izradi korisnih uređaja za vaš dom, školu ili radionicu.
Evo nekoliko praktičnih ideja šta možete napraviti s ovim znanjem:
- Monitor temperature i vlažnosti za staklenik ili terarij za gmizavce.
- Jednostavan voltmetar za provjeru nivoa baterija u vašim projektima.
- Senzor udaljenosti za pomoć pri parkiranju ili pametnu kantu za smeće koja pokazuje koliko je puna.
Pregled hardvera
LCD1602 je displej sa 16 znakova i 2 linije. Modul na poleđini je I2C (ili I²C) adapter, koji smanjuje broj potrebnih žica sa standardne paralelne veze na samo četiri: GND, VCC, SDA i SCL. To čini povezivanje mnogo jednostavnijim i oslobađa mnoge digitalne pinove na vašem Arduinu.
Displej ima pozadinsko osvjetljenje koje se može uključiti ili isključiti putem softvera. Također ima mali potenciometar na I2C modulu za podešavanje kontrasta. Ako uključite displej i ne vidite ništa, jednostavno rotirajte ovaj vijak dok tekst ne postane vidljiv (u videu na 02:47).
Postoje različite verzije ovog displeja, poput LCD2004 koji ima 20 znakova i 4 linije. I2C adresa se također može promijeniti lemljenjem A0, A1 i A2 kratkospojnika na modulu (u videu na 03:51). Podrazumijevana adresa je često 0x27, ali može varirati, pa je uvijek dobra ideja pokrenuti I2C skener kako biste pronašli ispravnu adresu za vaš specifični modul.
Hardverske komponente
Da biste pratili glavnu demonstraciju u ovom videu, trebat će vam sljedeće komponente:
- Arduino Uno (ili bilo koja kompatibilna ploča)
- LCD1602 s I2C modulom
- Breadboard i žice za spajanje
Za kasnije dijelove, također će vam trebati DHT11 senzor, potenciometar ili ultrazvučni senzor, ovisno o tome koji projekt želite napraviti.
Vodič za povezivanje
Povezivanje LCD-a je jednostavno. Dijagram povezivanja jasno prikazuje veze.
Spojite pinove na I2C modulu na vaš Arduino na sljedeći način:
- GND na Arduino GND
- VCC na Arduino 5V
- SDA na Arduino A4
- SCL na Arduino A5
Ako vaša Arduino ploča ima namjenske SDA i SCL pinove, možete se spojiti i na njih (u videu na 05:47).
Instalacija biblioteke
Ovaj modul zahtijeva biblioteku "Arduino Liquid Crystal I2C". Možete je preuzeti s linka navedenog u opisu videa ili sa Robojax web stranice. Nakon preuzimanja, instalirajte je u vašem Arduino IDE-u tako što idete na Sketch > Include Library > Add .ZIP Library i odaberete preuzetu datoteku (u videu na 06:41).
Objašnjenje koda
Budući da nisu dati dijelovi koda, objasnit ćemo opću strukturu koda korištenog u videu.
Kod počinje uključivanjem potrebnih biblioteka: Wire.h za I2C komunikaciju i LiquidCrystal_I2C.h biblioteke za displej. Ključni dio je kreiranje objekta za LCD. Morat ćete postaviti ispravnu I2C adresu i dimenzije vašeg displeja:
// Postavite LCD adresu na 0x27 za displej sa 16 znakova i 2 linije
LiquidCrystal_I2C lcd(0x27, 16, 2);
Ako vaš displej ne pokazuje ništa, možda ćete morati promijeniti 0x27 u 0x3F ili neku drugu adresu koju pronađe vaš I2C skener. Brojevi 16 i 2 predstavljaju broj kolona i redova na vašem displeju.
U setup() funkciji inicijalizirate LCD i uključite pozadinsko osvjetljenje:
void setup() {
lcd.init();
lcd.backlight();
}
Za ispis teksta koristite funkciju lcd.setCursor(kolona, red) za pozicioniranje kursora, nakon čega slijedi lcd.print() za prikaz vaših podataka. Na primjer, za ispis na drugoj liniji koristili biste lcd.setCursor(0, 1). Video također objašnjava kako ispisati posebne znakove poput simbola stepena koristeći lcd.write(223) (u videu na 31:42).
Demonstracija
Video demonstrira nekoliko ključnih funkcija LCD-a. Prvo prikazuje osnovno ispisivanje teksta "Hello World" i kako koristiti funkciju lcd.scrollDisplayLeft() za pomicanje teksta preko ekrana. Kasnije kombinira LCD s DHT11 senzorom za prikaz temperature i vlažnosti, s potenciometrom za prikaz napona i s ultrazvučnim senzorom za prikaz udaljenosti.
Za prikaz temperature, kod čita senzor i ispisuje vrijednost. Da biste prikazali cijeli broj bez decimala, možete pretvoriti float vrijednost u cijeli broj, kao što je prikazano u videu (u videu na 32:21).
Za voltmetar, kod čita analognu vrijednost s potenciometra, skalira je na raspon napona od 0-5V i prikazuje je na ekranu (u videu na 34:31).
Završna demonstracija kombinira LCD s ultrazvučnim senzorom kako bi prikazala izmjerenu udaljenost u centimetrima (u videu na 37:55).
Srodni projekti iz ovog videa
Ovaj video također sadrži i druge tutorske projekte. Možete ih pronaći ovdje:
- Lekcija 20/31: Prikaz temperature i vlažnosti s DHT11 na LCD ekranu
- Lekcija 20/31: Prikaz napona na LCD1602
Poglavlja
- [00:00] Uvod u LCD1602 i pregled kursa
- [01:30] Pregled hardvera LCD1602 i I2C modula
- [02:47] Podešavanje kontrasta ekrana i pozadinskog osvjetljenja
- [03:14] Pin veze i odabir I2C adrese
- [05:28] Šema povezivanja za LCD
- [06:16] Instalacija potrebne biblioteke
- [07:24] Osnovni kod za ispis teksta
- [11:10] Primjer trepćućeg kursora
- [13:46] Prilagođeni znakovi i ispis specijalnih simbola
- [18:51] Primjer serijskog prikaza
- [23:16] Skrolovanje teksta na LCD-u
- [36:51] Kombinacija LCD-a s ultrazvučnim senzorom
/*
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
Stvari koje bi vam mogle zatrebati
-
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
Resursi i reference
-
DokumentacijaDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
EksternoLCD library from RoboJax (ZIP)robojax.com
-
EksternoPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Datoteke📁
Arduino biblioteke (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB