Una Riešením môže byť obrazovka LCD pre tie projekty, v ktorých potrebujete zobraziť informácie bez toho, aby ste boli odkázaní na neustále pripojený počítač. To znamená, že v projekte Arduino / Raspberry Pi môžete pomocou sériového portu prenášať informácie zobrazené na obrazovke, aby ste získali údaje zo senzorov, zobrazili graf, účty atď. Ale ak váš projekt neustále beží alebo je ďaleko od miesta, kde môžete mať počítač, obrazovka LCD je vašou záchranou.
Predstavte si napríklad, že inštalujete automatický zavlažovací systém a chcete skontrolovať hodnoty vlhkosti a teploty, keď idete do svojej zeleninovej záhrady alebo záhrady. To, že tam musíte vziať počítač, aby ste mohli pripojiť dosku Arduino k počítaču, nie je praktické riešenie. V takom prípade môžete svoj kód upraviť tak, aby bolo uvedené sa na obrazovke LCD zobrazia informácie a dokonca pridať nejaké klávesy alebo tlačidlá, aby ste mohli zobrazovať rôzne informácie.
Čo je to LCD panel?
Displej z tekutých kryštálov alebo LCD (Displej s tekutými kryštálmi) Je to druh tenkého plochého panelu, ktorý dokáže zobrazovať obrázky. Každý panel je tvorený určitým počtom farebných alebo monochromatických pixelov, ktoré sú umiestnené pred svetelným zdrojom. Ich spotreba je nízka, a preto sú ideálne pre tento typ domácich kutilov s nízkym výkonom.
Každý pixel na obrazovke LCD je tvorený vrstvou molekúl usporiadaných medzi dvoma priehľadnými elektródami a dvoma polarizačnými filtrami. Medzi polarizačné filtre je tu displej z tekutých kryštálov, odtiaľ pochádza aj jeho názov a bráni tomu, aby svetlo, ktoré prechádza prvým filtrom, bolo blokované druhým.
Ak ste si všimli, keď sa dotknete jednej z týchto obrazoviek obraz je zdeformovaný a po stlačení sa objaví akási čierna škvrna, to je preto, že vyvíjate tlak na tekuté kryštály a nie je vhodné to robiť ... Môže to mať za následok nižšiu kvalitu farieb obrazovky, nerovnomerné rozloženie osvetlenia alebo dokonca mŕtve pixely (čierne škvrny alebo oblasti na obrazovke, ktoré nezmiznú).
LCD obrazovky pre Arduino a Raspberry Pi
LCD obrazovka, ako napr moduly, ktoré existujú pre elektroniku alebo pre Arduino, má zvyčajne viac stĺpcov na zobrazenie alfanumerických znakov alebo symbolov a jeden alebo dva riadky na zobrazenie informácií. To ich robí oveľa zaujímavejšími ako sedemsegmentový displej, ktorý by musel spájať niekoľko pinov, aby dokázal zobraziť iba jedno číslo, symbol alebo písmeno. Ak chcete ukázať viac, mali by ste umiestniť niekoľko displejov.
Namiesto toho môžete na jednej obrazovke LCD zobraziť oveľa viac informácií. Aby ste ich však mohli správne zapojiť, musíte poznať konektory tohto typu modulov dobre. Odporúčam vždy vidieť technický list výrobcu a konkrétny model ktoré máte, pretože sa môžu líšiť.
Napr Tento si môžete kúpiť od Adafruit na Amazone, ktorý je jedným z najobľúbenejších s klávesnicou a obsahuje možnosť zobrazenia až 16 znakov v každom z jeho dvoch riadkov. A sú dokonca aj 20 × 4, alebo niečo pokročilejšie aViacpalcová farba na zobrazenie zložitejších obrázkov.
Pre LCD obrazovku Adafruit 16 × 2 môžete vidieť tento technický list...
Pre arduino možno je jednoduchší ako ten lepší Nenašli sa žiadne produkty.. Ak sa pozriete na túto dosku, má na zadnej strane 16 pinov. Ak vezmete dosku a otočíte ju hore nohami a pozriete sa na jej piny zľava doprava, máte pinout:
- Pin 16: GND pre podsvietenie
- Pin 15: Vcc pre podsvietenie
- Pin 7-14: 8-bit (ďalších 8 pinov) na prenos informácií, ktoré sa majú zobraziť na obrazovke
- Pin 6: synchronizácia čítania a zápisu
- Pin 5. R / W (zápis a čítanie pre dáta a príkazy)
- Pin 4: RS (volič medzi príkazmi a údajmi)
- Pin 3: kontrola kontrastu
- Pin 2: Vcc 5v pre napájanie
- Pin 1: GND (0v) pre napájanie
Pamätajte, že keď ho umiestnite do správnej polohy, kolíky sa otočia ...
Integrácia s Arduino

na pripojte to k arduinu Nie je to príliš komplikované, mali by ste zvážiť iba zahrnutie rezistora 220 ohmov na reguláciu vstupného napätia pre výkon obrazovky a potenciometra na moduláciu kontrastu obrazovky. Potom vhodne pripojte každý z pinov k doske Arduino a máte hotovo. Môžete sa pozrieť na obrázok Fritzing ...
Ako môžeš vidieť, potenciometer bude cez ktorý sa bude napájať upraví sa aj obrazovka LCD a kontrast. Preto bude prepojený s GND aj Vcc displeja, ako aj s riadiacou čiarou podsvietenia a kontrolou kontrastu. Možno je to najkomplikovanejšie, potom ide o pripojenie zvyšných pinov k vstupom / výstupom, ktoré budete používať vo svojom projekte.
Programovanie pomocou Arduino IDE
Na programovanie musíte brať do úvahy niektoré zvláštnosti, Majte na pamäti, že musíte nielen vedieť odosielať údaje, ale aj ich presúvať, dobre ich umiestniť na obrazovku atď. Mali by ste tiež použiť knižnicu s názvom LiquidCrystal.h, pokiaľ je na vašom LCD displeji kompatibilný čipset Hitachi HD44780. Tu máte príklad kódu:
#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);
}
}
Viac informácií - Programovací manuál Arduino (PDF zadarmo)