LCD-näytöt ovat hyödyllisiä ja niitä löytyy monesta osasta elämäämme. Rautatieasemalla, pysäköintimittari, myyntiautomaatit, jotka välittävät lyhyitä viestejä siitä, miten olemme tekemisissä koneen kanssa, johon he ovat yhteydessä. LCD-näytöt ovat hauska tapa välittää tietoja Raspberry Pi-sovelluksessa Pico -projektit ja muut Vadelma Pi-projektit . Heillä on iso kirkas näyttö, joka voi näyttää tekstiä, numeroita ja merkkejä 16 x 2-näytössä. 16 tarkoittaa 16 merkkiä ruudulla, ja 2 edustaa meillä olevien rivien määrää. Voimme saada LCD-näyttöjä, joissa on 20×2, 20×4 ja monia muita kokoonpanoja, mutta 16×2 on yleisimpiä.
Tässä opetusohjelmassa opitaan liittämään LCD-näyttö, HD44780, Raspberry Pi Picoon. I2C-liitännän kautta käyttäen liitteenä olevaa I2C-reppua, asennamme sitten MicroPython-kirjaston Thonny-editorin kautta ja opimme käyttämään sitä tekstin kirjoittamiseen näyttöön, kohdistimen ja taustavalon ohjaamiseen.
LCD-näyttö käyttää I2C-protokollaa Raspberry Pi: n kanssa. Pico. Mikä tarkoittaa, että tarvitsemme vain. 1. Yhdistä näytön GND mihin tahansa Picon GND: hen (musta johto). 2. Liitä VDD/VCC VBUS: iin Picossa (punainen johto). Varoitus on 5 V nasta. 3. Liitä SDA I2C0 SDA: han (GP0, fyysinen nasta 1, oranssi johto). 4. Yhdistä SCK/SCL I2C0 SCL: ään (GP1, fyysinen nasta 2, keltainen johdin). 5. Liitä Raspberry Pi Pico tietokoneeseesi ja avaa Thonny-sovellus. 6. Napsauta STOP vahvistaaksesi, että Pico on yhdistetty. 7. Avaa tämä linkki ja kopioi teksti sivulta. 8. Luo tyhjä tiedosto Thonnyssa ja liitä teksti siihen. Tallenna tiedosto Raspberry Pi Picoon nimellä lcd_api.py 9. Avaa tämä < link ja kopioi teksti sivulta . 10. Luo tyhjä tiedosto Thonnyyn ja liitä teksti siihen. Tallenna tiedosto Raspberry Pi Picoon nimellä pico_i2c_lcd.py Kun kirjastot on asennettu, voimme nyt aloittaa testikoodin kirjoittamisen kirjastotoimintojen esittelemiseksi. 1. Luo uusi tyhjä tiedosto Thonnyyn. 2. Tuo neljä kirjastoa valmiiksi kirjoitettua koodia. Kaksi ensimmäistä ovat Machine-kirjastosta ja niiden avulla voimme käyttää I2C-ja GPIO-nastoja. Seuraavaksi tuomme lepotilan toiminnon Aikasta, jolloin voimme keskeyttää koodin. Lopuksi tuomme I2C-kirjaston toimimaan vuorovaikutuksessa LCD-näytön kanssa. 3. Luo objekti i2c kommunikoida nestekidenäytön kanssa I2C-protokollan kautta. Tässä käytetään I2C-kanavaa 0, joka kartoittaa SDA: n GP0: een ja SCL: n GP1: ään. 4. Luo muuttuja I2C_ADDR , joka tallentaa ensimmäisen I2C-osoitteen, joka löydettiin väylää skannattaessa. Koska meillä on vain yksi I2C-laite kytkettynä, meidän täytyy nähdä vain ensimmäinen [0] osoite, joka palautetaan tarkistuksessa. 5. Luo objekti lcd I2C-yhteyden luomiseksi kirjastolle. Se kertoo kirjastolle, mitä I2C-nastoja käytämme, asetetaan i2c -objektin kautta, ruudun osoite, asetetaan I2C_ADDR : n kautta ja lopuksi asetetaan, että meillä on näyttö kaksi riviä ja 16 saraketta. 6. Luo silmukka jatkaaksesi koodin jatkamista. Silmukan ensimmäinen rivi tulostaa näytön I2C-osoitteen Thonny’s Python Shelliin. 7. Aseta nestekidenäytön osoitin vilkkumaan (vilkkuu) päälle ja pois päältä samalla tavalla kuin vanhan koulupäätelaitteen käyttöliittymä. 8. Kirjoita kaksi riviä tekstiä ruudulle. Ensimmäinen tulostaa “I2C-osoite:”, jota seuraa I2C_ADDR-objektiin tallennettu osoite. Lisää sitten uusi rivimerkki “\ n” ja kirjoita sitten toinen rivi sanoen ”Tomin laitteisto” (tai mitä haluat sen sanovan). Keskeytä kaksi sekuntia, jotta aikaa lukee teksti./p> 9. Tyhjennä näyttö ennen edellisen koodiosan toistamista, mutta tällä kertaa näytämme nestekidenäytön I2C-osoitteen käyttämällä sen heksadesimaaliarvoa. I2C-repussa käytetyllä PCF8574T-sirulla on kaksi osoitetta, 0x20 ja 0x27, ja on hyödyllistä tietää, mitä se käyttää, varsinkin jos käytämme useita I2C-laitteita, koska ne voivat aiheuttaa ristiriidan väylässä. 10. Katkaise vilkkuva kohdistin käytöstä ja tyhjennä sitten näyttö valmiina tulostamaan uusi viesti, ”Taustavalotesti”. 11. Salama LED-taustavalo käytä silmukkaa , joka toistaa kymmenen kertaa. Se sytyttää taustavalon 0,2 sekunniksi ja sammuttaa sen samaan aikaan. ”Taustavalotesti”-teksti pysyy näytöllä myös taustavalon ollessa pois päältä. 12. Kytke taustavalo takaisin päälle ja sitten piilota kohdistin . Joskus vilkkuva kohdistin voi heikentää tietoja, joita yritämme välittää. 13. Luo silmukka , joka tulostaa numerot 0-19 LCD-näytölle. Huomaa, että on 0,4 sekunnin viive, ennen kuin poistamme arvon ja korvataan se seuraavalla. Meidän on poistettava teksti, koska tekstin korvaaminen saa sen näyttämään sekavalta. Tallenna ja suorita koodisi. Kuten minkä tahansa Thonnyn Python-komentosarjan kohdalla, napsauta Tiedosto >> Tallenna ja tallenna tiedosto Raspberry Pi Picoon. Suosittelemme kutsumaan sitä i2c_lcd_test.py . Kun olet valmis, napsauta vihreää toistopainiketta aloittaaksesi koodin ja katsoaksesi testiä suoritetaan näytöllä. I2C-nestekidenäytön liittäminen Vadelma Pi Picoon
I2C-nestekidenäytön ohjelmointi Raspberry Pi Pico-näyttö
koneen tuonnista I2C, Pin
aika tuoda unen
koneen_i2c_lcd tuonnista I2cLcd
i2c=I2C (0, sda=Pin (0), scl=Pin (1), taajuus=400000)
I2C_ADDR=i2c.scan () [0]
lcd=I2cLcd (i2c, I2C_ADDR, 2, 16)
kun True: tulosta (I2C_ADDR)
lcd.blink_cursor_on ()
lcd.putstr ("I2C-osoite:"+ str (I2C_ADDR) +"\ n") lcd.putstr ("Tomin laitteisto") lepotila (2)
lcd.clear () lcd.putstr ("I2C-osoite:"+ str (hex (I2C_ADDR)) +"\ n") lcd.putstr ("Tomin laitteisto")
lcd.blink_cursor_off () lcd.clear () lcd.putstr ("Taustavalotesti")
lcd.backlight_on () lcd.hide_cursor ()
i alueella (20): lcd.putstr (str (i)) nukkua (0,4) lcd.clear ()
Täydellinen koodilistaus
koneelta tuonti I2C, tappi
aika tuoda unen
koneen_i2c_lcd tuonnista I2cLcd
i2c=I2C (0, sda=Tappi (0), scl=Tappi (1), taajuus=400000) I2C_ADDR=i2c.skannaus () [0]
lcd=I2cLcd (i2c, I2C_ADDR, 2, 16)
kun taas totta: tulosta (I2C_ADDR) lcd.blink_cursor_on () lcd.putstr ("I2C-osoite:"+ str (I2C_ADDR) +"\ n") lcd.putstr ("Tomin laitteisto") nukkua (2) lcd.clear () lcd.putstr ("I2C-osoite:"+ str (hex (I2C_ADDR)) +"\ n") lcd.putstr ("Tomin laitteisto") nukkua (2) lcd.blink_cursor_off () lcd.clear () lcd.putstr ("Taustavalotesti") i: lle alueella (10): lcd.backlight_on () nukkua (0,2) lcd.backlight_off () nukkua (0,2) lcd.backlight_on () lcd.hide_cursor () i: lle alueella (20): lcd.putstr (str (i)) nukkua (0,4) lcd.clear ()