Cuprins:

Utilizați ecran LCD 16x2 cu I2C: 4 pași
Utilizați ecran LCD 16x2 cu I2C: 4 pași

Video: Utilizați ecran LCD 16x2 cu I2C: 4 pași

Video: Utilizați ecran LCD 16x2 cu I2C: 4 pași
Video: Using LCD1602 or LCD2004 with ESP32 2024, Iulie
Anonim
Utilizați ecran LCD 16x2 cu I2C
Utilizați ecran LCD 16x2 cu I2C
Utilizați ecran LCD 16x2 cu I2C
Utilizați ecran LCD 16x2 cu I2C
Utilizați ecran LCD 16x2 cu I2C
Utilizați ecran LCD 16x2 cu I2C

Într-unul din instructabilele mele anterioare, v-am arătat cum să conectați și să interfațați un LCD la Arduino Uno și să afișați valorile pe acesta. Dar, după cum sa observat, au existat o mulțime de conexiuni și, dacă proiectul a început să devină mult dezordonat din cauza prea multor fire.

În acest Instructable, vă voi arăta cum să conectați un LCD la un I2C, care va avea doar 4 pini pentru a controla și utiliza LCD. Deci sa începem.

Pasul 1: Componente necesare

Componente necesare
Componente necesare
Componente necesare
Componente necesare
Componente necesare
Componente necesare

Pentru acest proiect veți avea nevoie de:

  • Arduino Uno
  • LCD 16x2
  • I2C pentru 16x2 LCD
  • Cabluri de conectare

Cu toate acestea, să intrăm în partea conexiunilor.

Pasul 2: Conexiuni

Conexiuni
Conexiuni
Conexiuni
Conexiuni
Conexiuni
Conexiuni
Conexiuni
Conexiuni

Consultați imaginile și faceți conexiunile. Este destul de simplu, trebuie doar să conectați I2C în porturile LCD-ului și să-l lipiți la loc. Apoi conectați pinul SCL la pinul A4 de pe Arduino și pinul SDA la pinul A5 de pe Arduino.

Nu lipesc I2C, deoarece am lipit deja pinii antetului de pe ecranul LCD. Dar aș sugera să lipiți I2C pe ecranul LCD

Pasul 3: Cod

Există o bibliotecă master I2C LCD inclusă în Arduino IDE. Dar există o ușoară problemă cu codul din acesta. Toate exemplele din această bibliotecă presupun adresa implicită a I2C ca 0x27. Deci, mai întâi trebuie să aflăm care este adresa I2C-ului nostru. Putem face acest lucru folosind codul scanerului I2C. Odată ce avem adresa I2C putem înlocui această valoare în exemplul de cod și putem începe să o folosim.

Cod scaner I2C:

#include

void setup () {Wire.begin (); Serial.begin (9600); while (! Serial); // așteptați monitorul serial Serial.println ("\ nI2C Scanner"); } void loop () {byte error, address; int nDispozitive; Serial.println ("Scanare …"); nDispozitive = 0; for (address = 1; address <127; address ++) {// Scannerul i2c folosește valoarea returnată // Write.endTransmisstion pentru a vedea dacă // un dispozitiv a confirmat adresa. Wire.beginTransmission (adresa); error = Wire.endTransmission (); if (eroare == 0) {Serial.print ("Dispozitiv I2C găsit la adresa 0x"); if (adresa <16) Serial.print ("0"); Serial.print (adresa, HEX); Serial.println ("!"); nDevices ++; } else if (eroare == 4) {Serial.print ("Eroare necunoscută la adresa 0x"); if (adresa <16) Serial.print ("0"); Serial.println (adresa, HEX); }} if (nDevices == 0) Serial.println ("Nu s-au găsit dispozitive I2C / n"); else Serial.println ("făcut / n"); întârziere (5000); // așteptați 5 secunde pentru următoarea scanare}

Exemplu de cod (pentru a afișa caracterele introduse în monitorul serial):

#include #include

LiquidCrystal_I2C lcd (0x3F, 20, 4); // setați adresa LCD la 0x27 pentru un afișaj de 16 caractere și 2 linii

configurare nulă ()

{lcd.init (); // inițializați lcd lcd.backlight (); Serial.begin (9600); }

bucla nulă ()

{// când personajele ajung peste portul serial … if (Serial.available ()) {// așteptați puțin până când întregul mesaj ajunge la întârziere (100); // ștergeți ecranul lcd.clear (); // citiți toate caracterele disponibile în timp ce (Serial.available ()> 0) {// afișați fiecare caracter pe ecranul LCD lcd.write (Serial.read ()); }}}

Pasul 4: ieșirea

Ieșirea
Ieșirea
Ieșirea
Ieșirea

După ce ați încărcat codul, sunteți gata să plecați. Pentru acest instructabil am luat exemplul codului de imprimare în serie. Deci, acum, după încărcarea codului, deschideți Serial Monitor și tastați un cuvânt și faceți clic pe „trimite”. Acum ar trebui să vedeți această valoare afișată pe ecranul LCD.

Recomandat: