LCD ekrāns: viss, kas jums jāzina

LCD ekrāns

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

16x2 LCD savienojuma shēma Arduino Uno

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)


Esi pirmais, kas komentārus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.