Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Yhdessä aiemmista Instructable -ohjelmistani näytin sinulle, kuinka liittää ja liittää nestekidenäyttö Arduino Unoon ja näyttää arvot siinä. Mutta kuten havaittiin, yhteyksiä oli paljon ja jos projekti alkoi muuttua paljon sotkuiseksi liian monien johtojen vuoksi.
Tässä opetusohjelmassa näytän sinulle, kuinka liittää nestekidenäyttö I2C -laitteeseen, jossa on vain 4 nastaa nestekidenäytön ohjaamiseen ja käyttöön. Aloitetaan siis.
Vaihe 1: Tarvittavat komponentit
Tätä projektia varten tarvitset:
- Arduino Uno
- 16x2 LCD
- I2C 16x2 LCD -näytölle
- Liitäntäjohdot
Näiden kaikkien kanssa mennään liittymien osaan.
Vaihe 2: Liitännät
Katso kuvat ja tee kytkennät. Se on melko yksinkertaista, sinun tarvitsee vain liittää I2C nestekidenäytön portteihin ja juottaa se paikalleen. Liitä sitten SCL -nasta Arduinon A4 -nastaan ja SDA -nasta Arduinon A5 -nastaan.
En juota I2C: tä, koska olen jo juonut otsikkotapit nestekidenäyttöön. Mutta ehdottaisin I2C: n juottamista nestekidenäytölle
Vaihe 3: Koodi
Arduino IDE: ssä on LCD I2C -pääkirjasto. Mutta siinä on pieni ongelma koodissa. Kaikissa tämän kirjaston esimerkeissä oletetaan, että I2C: n oletusosoite on 0x27. Joten meidän on ensin selvitettävä, mikä on I2C: n osoite. Voimme tehdä tämän käyttämällä I2C -skannerikoodia. Kun meillä on I2C -osoite, voimme korvata tämän arvon esimerkkikoodissa ja aloittaa sen käytön.
I2C -skannerin koodi:
#sisältää
void setup () {Wire.begin (); Sarja.alku (9600); while (! Sarja); // odota sarjamonitoria Serial.println ("\ nI2C -skanneri"); } void loop () {tavuvirhe, osoite; int nLaitteet; Serial.println ("Skannaus…"); nLaitteet = 0; for (address = 1; address <127; address ++) {// i2c_scanner käyttää // Write.endTransmisstionin palautusarvoa selvittääkseen, // onko laite hyväksynyt osoitteen. Wire.beginTransmission (osoite); virhe = Wire.endTransmission (); jos (virhe == 0) {Serial.print ("I2C -laite löydetty osoitteesta 0x"); if (osoite <16) Serial.print ("0"); Serial.print (osoite, HEX); Serial.println ("!"); nLaitteet ++; } muu jos (virhe == 4) {Serial.print ("Tuntematon virhe osoitteessa 0x"); if (osoite <16) Serial.print ("0"); Serial.println (osoite, HEX); }} if (nLaitteet == 0) Serial.println ("I2C -laitteita ei löydy / n"); else Serial.println ("valmis / n"); viive (5000); // odota 5 sekuntia seuraavaan skannaukseen}
Esimerkkikoodi (Serial Monitoriin syötettyjen merkkien näyttämiseksi):
#Sisällytä #Sisällytä
LiquidCrystal_I2C lcd (0x3F, 20, 4); // aseta LCD -osoitteeksi 0x27, jos haluat 16 merkkiä ja 2 riviä
mitätön asennus ()
{lcd.init (); // alustetaan lcd lcd.backlight (); Sarja.alku (9600); }
tyhjä silmukka ()
{// kun merkit saapuvat sarjaportin yli… if (Serial.available ()) {// odota hetki, kunnes koko viesti saapuu viiveellä (100); // tyhjennä näyttö lcd.clear (); // lukee kaikki käytettävissä olevat merkit, kun (Serial.available ()> 0) {// näyttää jokaisen merkin nestekidenäytöllä lcd.write (Serial.read ()); }}}
Vaihe 4: Lähtö
Kun olet ladannut koodin, olet valmis menemään. Tässä ohjeessa olen ottanut esimerkin sarjatulostuskoodista. Joten nyt koodin lataamisen jälkeen avaa sarjamonitori ja kirjoita sana ja napsauta "lähetä". Nyt tämän arvon pitäisi näkyä nestekidenäytössä.