2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
V jednom z mojich predchádzajúcich Instructable som vám ukázal, ako pripojiť a prepojiť LCD s Arduino Uno a ako na ňom zobrazovať hodnoty. Ako sa však pozorovalo, existovalo veľa spojení a ak sa projekt začal veľmi zamotávať kvôli príliš veľkému počtu drôtov.
V tomto návode vám ukážem, ako pripojiť LCD k I2C, ktorý bude mať iba 4 piny na ovládanie a používanie LCD. Začnime teda.
Krok 1: Potrebné súčasti
Na tento projekt budete potrebovať:
- Arduino Uno
- 16x2 LCD
- I2C pre 16x2 LCD
- Pripojovacie káble
So všetkými týmito vecami sa dostaneme do časti spojení.
Krok 2: Pripojenia
Pozrite si obrázky a zapojte sa. Je to celkom jednoduché, stačí zapojiť I2C do portov LCD a spájkovať ho na svoje miesto. Potom pripojte pin SCL k pinu A4 na Arduino a kolík SDA k pinu A5 na Arduino.
Nepájkujem I2C, pretože som už spájkoval kolíkové kolíky na LCD. Ale navrhoval by som spájkovanie I2C na LCD
Krok 3: Kód
V IDE Arduino je k dispozícii hlavná knižnica LCD I2C. V kóde je však malý problém. Všetky príklady v tejto knižnici predpokladajú predvolenú adresu I2C ako 0x27. Najprv teda musíme zistiť, aká je adresa nášho I2C. Môžeme to urobiť pomocou kódu skenera I2C. Akonáhle budeme mať adresu I2C, môžeme túto hodnotu nahradiť v ukážkovom kóde a začať ju používať.
Kód skenera I2C:
#zahrnúť
neplatné nastavenie () {Wire.begin (); Serial.begin (9600); while (! Serial); // počkajte na sériový monitor Serial.println ("\ nI2C Scanner"); } void loop () {chyba bajtu, adresa; int nZariadenia; Serial.println („Skenovanie …“); nZariadenie = 0; for (address = 1; address <127; address ++) {// i2c_scanner používa návratovú hodnotu // Write.endTransmisstion na zistenie, či // zariadenie potvrdilo adresu. Wire.beginTransmission (adresa); chyba = Wire.endTransmission (); if (chyba == 0) {Serial.print ("Zariadenie I2C nájdené na adrese 0x"); if (adresa <16) Serial.print ("0"); Serial.print (adresa, HEX); Serial.println ("!"); nZariadenie ++; } else if (chyba == 4) {Serial.print ("Neznáma chyba na adrese 0x"); if (adresa <16) Serial.print ("0"); Serial.println (adresa, HEX); }} if (nDevices == 0) Serial.println ("Neboli nájdené žiadne zariadenia I2C / n"); else Serial.println ("hotovo / n"); oneskorenie (5 000); // počkajte 5 sekúnd na ďalšie skenovanie}
Príklad kódu (na zobrazenie znakov zadaných v programe Serial Monitor):
#include #include
LiquidCrystal_I2C lcd (0x3F, 20, 4); // nastavte adresu LCD na 0x27 pre 16 znakový a 2 riadkový displej
neplatné nastavenie ()
{lcd.init (); // inicializácia lcd lcd.backlight (); Serial.begin (9600); }
prázdna slučka ()
{// keď znaky prichádzajú cez sériový port … ak (Serial.available ()) {// chvíľu počkajte, kým príde celá správa s oneskorením (100); // vymazanie obrazovky lcd.clear (); // prečítaj všetky dostupné znaky, kým (Serial.available ()> 0) {// zobrazí každý znak na LCD lcd.write (Serial.read ()); }}}
Krok 4: Výstup
Po nahraní kódu ste pripravení ísť. Pre tento návod som si vzal príklad sériového tlačového kódu. Takže teraz po nahraní kódu otvorte Sériový monitor a zadajte slovo a kliknite na „odoslať“. Teraz by ste mali túto hodnotu zobrazovať na LCD displeji.