Pretraži kod

Lekcija 20/31: Korištenje LCD1602 s Arduino prikazom teksta | Robojax

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.

screenshot-2

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

lcd1602_I2C_wiring_sunfounder

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:

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

Slike

LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602 displaying voltage and title
LCD1602 displaying voltage and title
screenshot-2
screenshot-2
lcd1602_I2C_wiring_sunfounder
lcd1602_I2C_wiring_sunfounder
910-Lesson 20/31: Displaying simple text on LCD1602
Jezik: C++
/*
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
}

Resursi i reference

Datoteke📁

Arduino biblioteke (zip)