Una LCD-näyttö voi olla ratkaisu niille projekteille, joissa sinun on näytettävä tietoja tarvitsematta olla riippuvainen jatkuvasti liitetystä tietokoneesta. Toisin sanoen Arduino / Raspberry Pi -projektissa voit käyttää sarjaporttia lähettämään näytöllä näkyviä tietoja anturilukemien saamiseksi, kaavion, tilien jne. Näyttämiseksi. Mutta jos projektisi on jatkuvasti käynnissä tai kaukana tietokoneesta, LCD-näyttö on pelastuksesi.
Kuvittele esimerkiksi, että asennat automaattisen kastelujärjestelmän ja haluat tarkistaa kosteus- ja lämpötilalukemat käydessäsi kasvipuutarhassasi tai puutarhassasi. Tietokoneen vieminen sinne Arduino-kortin liittämiseksi tietokoneeseen ei ole käytännöllinen ratkaisu. Tässä tapauksessa voit muokata koodiasi niin sanotulla tavalla tiedot näkyvät LCD-näytöllä ja jopa lisätä joitain näppäimiä tai painikkeita erilaisten tietojen näyttämiseksi.
Mikä on LCD-paneeli?
Nestekidenäyttö tai LCD (nestekidenäyttö) Se on eräänlainen ohut, litteä paneeli, joka voi näyttää kuvia. Jokainen paneeli koostuu tietystä määrästä värillisiä tai yksivärisiä pikseleitä, jotka on sijoitettu valonlähteen eteen. Niiden kulutus on pieni, minkä vuoksi ne ovat ihanteellisia tämän tyyppisiin DIY-pienitehoisiin elektroniikkaprojekteihin.
Jokainen LCD-näytön pikseli koostuu molekyylikerroksesta, joka on kohdistettu kahden läpinäkyvän elektrodin väliin, ja kahdesta polarisointisuodattimesta. Välillä polarisoivat suodattimet on nestekidenäyttö, tästä johtuen sen nimi, ja estää ensimmäisen suodattimen läpi kulkevan valon estävän toisen.
Jos olet huomannut, kun kosketat yhtä näistä näytöistä kuva on epämuodostunut ja painettaessa näkyy eräänlainen musta tahra, koska painat nestekidenäyttöä, eikä sitä ole suositeltavaa tehdä niin. Näytön värit saattavat heikentyä, valaistus jakautuu epätasaisesti. tai jopa kuolleita pikseleitä (mustia pisteitä tai ruudun alueita, jotka eivät mene pois).
LCD-näytöt Arduinolle ja Raspberry Pi: lle
LCD-näyttö, kuten elektroniikkaa tai Arduinoa varten olemassa olevat moduulit, on tyypillisesti useita sarakkeita aakkosnumeeristen merkkien tai symbolien näyttämiseksi ja yksi tai kaksi riviä tietojen näyttämiseksi. Se tekee niistä paljon mielenkiintoisempia kuin seitsemän segmentin näyttö, jonka on liitettävä useita nastoja, jotta vain yksi numero, symboli tai kirjain voidaan näyttää. Jos haluat näyttää enemmän, sijoita useita näyttöjä.
Sen sijaan yhdellä LCD-näytöllä voit näyttää paljon enemmän tietoa. Mutta sinun on tiedettävä tämän tyyppisten moduulien pinout, jotta voit liittää ne oikein. Suosittelen, että näet aina valmistajan tietolomake ja tietty malli sinulla on, koska ne voivat vaihdella.
Esimerkiksi Voit ostaa tämän Adafruitista Amazonista, joka on yksi suosituimmista näppäimistön kanssa ja sisältää mahdollisuuden näyttää enintään 16 merkkiä kummallakin rivillä. Ja siellä on jopa 20 × 4, tai jotain edistyneempää jaUsean tuuman väri näyttää monimutkaisemmat kuvat.
LCD-näytölle Adafruit 16 × 2 näet tämän tietolomakkeen...
Arduinolle ehkä yksinkertaisempi kuin se on parempi 16x2 LCD-näyttö ilman näppäimistöä. Jos katsot tätä levyä, sen takana on 16 nastaa. Jos otat laudan ja käännät sen ylösalaisin ja katsot sen nastoja vasemmalta oikealle, sinulla on pinout:
- Tappi 16: GND taustavalolle
- Tappi 15: Vcc taustavalolle
- Tappi 7-14: 8-bittinen (seuraavat 8 nastaa) lähettämään näytöllä näytettävät tiedot
- Pin 6: luku ja kirjoitus synkronointi
- Tappi 5. R / W (kirjoita ja lue tietoja ja komentoja)
- Nasta 4: RS (valitsin komentojen ja tietojen välillä)
- Tappi 3: kontrastin säätö
- Tappi 2: 5 Vcc: n teho
- Tappi 1: GND (0v) virtaa varten
Muista, että kun asetat sen oikeaan asentoon, nastat ovat päinvastaiset ...
Integrointi Arduinon kanssa
että Liitä se arduinoon Se ei ole liian monimutkainen, sinun on vain harkittava 220 ohmin vastuksen sisällyttämistä näytön tehon syöttöjännitteen säätämiseen ja potentiometriä näytön kontrastin säätämiseen. Liitä sitten kaikki nastat Arduino-korttiin asianmukaisesti ja olet valmis. Voit katsoa kuvaa Fritzing ...
Kuten näet, potentiometri tulee olemaan, jonka kautta se syötetään myös LCD-näyttö ja kontrasti säädetään. Siksi se kytketään sekä näytön GND- ja Vcc-arvoihin että taustavalon ohjausjohtoon ja kontrastisäätöön. Ehkä se on monimutkaisinta, sitten kyse on jäljellä olevien nastojen liittämisestä tuloihin / lähtöihin, joita aiot käyttää projektissasi.
Ohjelmointi Arduino IDE: llä
Ohjelmointia varten sinun on otettava huomioon joitain erityispiirteitä, Muista, että sinun ei tarvitse vain osata lähettää tietoja, vaan myös siirtää niitä, sijoittaa ne hyvin näytölle jne. Ja sinun tulisi käyttää myös kirjastoa nimeltä LiquidCrystal.h, kunhan nestekidenäytölläsi on yhteensopiva Hitachi HD44780 -piirisarja. Sinulla on tässä esimerkki koodista:
#include <LiquidCrystal.h> // Definimos las constantes #define COLS 16 // Aqui va el num de columnas del LCD, 16 en nuestro caso #define ROWS 2 // Aqui las filas x2 #define VELOCIDAD 200 // Velocidad a la que se movera el texto // Indicamos los pines de la interfaz donde hayas conectado el LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Para el texto que se muestra String texto_fila = "Ejemplo LCD"; void setup() { // Configura el monitor serie Serial.begin(9600); // Configurde filas y columnas lcd.begin(COLS, ROWS); } void loop() { // Tamaño del texto a mostrar int tam_texto=texto_fila.length(); // Indicamos que la entrada de texto se hace por la izquierda for(int i=tam_texto; i>0 ; i--) { String texto = texto_fila.substring(i-1); // Limpia la pantalla para poder mostrar informacion diferente lcd.clear(); //Situar el cursor en el lugar adecuado, en este caso al inicio lcd.setCursor(0, 0); // Escribimos el texto "Ejemplo LCD" lcd.print(texto); // Esperara la cantidad de milisegundos especificada, en este caso 200 delay(VELOCIDAD); } // Desplazar el texto a la izquierda en primera fila for(int i=1; i<=16;i++) { lcd.clear(); lcd.setCursor(i, 0); lcd.print(texto_fila); delay(VELOCIDAD); } // Desplazar el texto a izquierda en la segunda fila for(int i=16;i>=1;i--) { lcd.clear(); lcd.setCursor(i, 1); lcd.print(texto_fila); delay(VELOCIDAD); } for(int i=1; i<=tam_texto ; i++) { String texto = texto_fila.substring(i-1); lcd.clear(); lcd.setCursor(0, 1); lcd.print(texto); delay(VELOCIDAD); } }
Lisää tietoa - Arduino-ohjelmointikäsikirja (ilmainen PDF)