A LCD ekrāns var būt risinājums tiem projektiem, kuros jums jāparāda informācija, neuztraucoties no pastāvīgi pievienota datora. Tas ir, projektā Arduino / Raspberry Pi jūs varat izmantot seriālo portu, lai pārsūtītu ekrānā redzamo informāciju, lai iegūtu sensoru rādījumus, parādītu diagrammu, kontus utt. Bet, ja jūsu projekts pastāvīgi darbojas vai atrodas tālu no vietas, kur jums ir dators, jūsu pestīšana ir LCD ekrāns.
Piemēram, iedomājieties, ka jūs instalējat automatizētu apūdeņošanas sistēmu un vēlaties pārbaudīt mitruma un temperatūras rādījumus, dodoties uz savu dārzeņu dārzu vai dārzu. Datora aizvešana tur, lai Arduino dēli savienotu ar datoru, nav praktisks risinājums. Šajā gadījumā jūs varat mainīt savu kodu tā, kā teikts informācija tiek parādīta LCD ekrānā un pat pievienojiet dažus taustiņus vai pogas, lai varētu parādīt atšķirīgu informāciju.
Kas ir LCD panelis?
Šķidro kristālu displejs vai LCD (šķidro kristālu displejs) Tas ir sava veida plāns, plakans panelis, kas var parādīt attēlus. Katru paneli veido noteikts krāsu vai vienkrāsainu pikseļu skaits, kas novietoti gaismas avota priekšā. To patēriņš ir mazs, tāpēc tie ir ideāli piemēroti šāda veida DIY mazjaudas elektronikas projektiem.
Katru LCD ekrāna pikseļu veido molekulu slānis, kas izlīdzināts starp diviem caurspīdīgiem elektrodiem, un divi polarizācijas filtri. Starp polarizējošie filtri ir šķidro kristālu displejs, tātad tā nosaukums, un neļauj gaismu, kas iet caur pirmo filtru, bloķēt otrais.
Turklāt, ja esat pamanījis, kad pieskaraties vienam no šiem ekrāniem attēls ir deformēts un, nospiežot, parādās sava veida melns traips, tas ir tāpēc, ka jūs izdarāt spiedienu uz šķidro kristālu, un tas nav ieteicams to darīt ... Jūs varat iegūt zemākas kvalitātes ekrāna krāsas, nevienmērīgu apgaismojuma sadalījumu vai pat miruši pikseļi (melni plankumi vai apgabali ekrānā, kas nepazūd).
LCD ekrāni ierīcēm Arduino un Raspberry Pi
LCD ekrāns, piemēram, moduļi, kas pastāv elektronikai vai Arduino, parasti ir vairākas kolonnas, lai parādītu burtciparu rakstzīmes vai simbolus, un viena vai divas rindas, lai parādītu informāciju. Tas padara tos daudz interesantākus nekā septiņu segmentu displejs, kuram būtu jāpieslēdz vairākas tapas, lai varētu parādīt tikai vienu skaitli, simbolu vai burtu. Ja vēlaties parādīt vairāk, jānovieto vairāki displeji.
Tā vietā ar vienu LCD ekrānu jūs varat parādīt daudz vairāk informācijas. Bet jums ir labi jāzina šāda veida moduļu pinout, lai tos pareizi savienotu. Es iesaku jums vienmēr redzēt konkrētā ražotāja un modeļa datu lapa kas jums ir, jo tie var atšķirties.
Piemēram Šo jūs varat iegādāties no Adafruit vietnē Amazon, kas ir viena no populārākajām ar tastatūru un satur iespēju parādīt līdz 16 rakstzīmēm katrā no tās divām līnijām. Un ir pat 20 × 4, vai kaut kas vairāk uzlabots unVairāku collu krāsa, lai parādītu sarežģītākus attēlus.
LCD ekrānam ar Adafruit 16 × 2 jūs varat redzēt šo datu lapu...
Par arduino varbūt vienkāršāks kā tāds ir labāks 16x2 LCD ekrāns bez tastatūras. Ja paskatās uz šo dēli, tā aizmugurē ir 16 tapas. Ja paņemat dēli un pagriežat to otrādi un skatāties uz tā tapām no kreisās uz labo, jums ir pinout:
- 16. tapa: GND apgaismojumam
- 15. tapa: Vcc apgaismojumam
- Pin 7-14: 8 bitu (nākamās 8 tapas), lai pārsūtītu ekrānā redzamo informāciju
- 6. tapa: lasīšanas un rakstīšanas sinhronizācija
- 5. tapa. R / W (datu un komandu rakstīšana un lasīšana)
- 4. tapa: RS (atlasītājs starp komandām un datiem)
- 3. tapa: kontrasta kontrole
- 2. tapa: 5 Vcc jaudai
- 1. tapa: GND (0v) jaudai
Atcerieties, ka, ievietojot to pareizajā stāvoklī, tapas tiek apgrieztas otrādi ...
Integrācija ar Arduino
līdz savienojiet to arduino Tas nav pārāk sarežģīti. Jums vajadzētu apsvērt iespēju iekļaut tikai 220 omu rezistoru, lai regulētu ekrāna jaudas ieejas spriegumu, un potenciometru, lai modulētu ekrāna kontrastu. Pēc tam katru adatu atbilstoši savienojiet ar Arduino dēli un esat pabeidzis. Jūs varat apskatīt Fritzing attēlu ...
Kā tu redzi, potenciometrs būs caur kuru tas tiks padots tiks pielāgots arī LCD ekrāns un kontrasts. Tāpēc tas būs saistīts gan ar displeja GND, gan Vcc, kā arī ar fona apgaismojuma vadības līniju un kontrasta vadību. Varbūt tas ir vissarežģītākais, tad runa ir par atlikušo tapu savienošanu ar ieejām / izejām, kuras izmantosiet savā projektā.
Programmēšana ar Arduino IDE
Programmēšanai jums jāņem vērā dažas īpatnības, Paturiet prātā, ka jums ne tikai jāzina, kā nosūtīt datus, bet arī tie jāpārvieto, labi jānovieto uz ekrāna utt. Jums vajadzētu izmantot arī bibliotēku ar nosaukumu Šķidro kristālu.h, ja vien jūsu LCD ekrānā ir saderīgs Hitachi HD44780 mikroshēmojums. Šeit jums ir kodu piemērs:
#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); } }
Vairāk informācijas - Arduino programmēšanas rokasgrāmata (bezmaksas PDF)