Ekran LCD: wszystko, co musisz wiedzieć

wyświetlacz LCD

A Rozwiązaniem może być ekran LCD dla tych projektów, w których musisz wyświetlać informacje bez konieczności polegania na stale podłączonym komputerze. Oznacza to, że w projekcie Arduino / Raspberry Pi można użyć portu szeregowego do przesyłania informacji wyświetlanych na ekranie, aby uzyskać odczyty czujników, wyświetlić wykres, konta itp. Ale jeśli twój projekt jest ciągle uruchomiony lub daleko od miejsca, w którym możesz mieć komputer, ekran LCD jest twoim zbawieniem.

Na przykład wyobraź sobie, że instalujesz automatyczny system nawadniający i chciałbyś sprawdzić odczyty wilgotności i temperatury, kiedy idziesz do warzywniaka lub ogrodu. Konieczność zabrania tam komputera w celu podłączenia płyty Arduino do komputera nie jest praktycznym rozwiązaniem. W takim przypadku możesz zmodyfikować swój kod, aby powiedział informacje są wyświetlane na ekranie LCD a nawet dodać kilka klawiszy lub przycisków, aby móc wyświetlać różne informacje.

Co to jest panel LCD?

Wyświetlacz ciekłokrystaliczny lub LCD (wyświetlacz ciekłokrystaliczny) Jest to rodzaj cienkiego, płaskiego panelu, na którym można wyświetlać obrazy. Każdy panel składa się z pewnej liczby kolorowych lub monochromatycznych pikseli umieszczonych przed źródłem światła. Ich zużycie jest niskie, dlatego idealnie nadają się do tego typu projektów z zakresu elektroniki małej mocy.

Każdy piksel na ekranie LCD składa się z warstwy cząsteczek ustawionych między dwiema przezroczystymi elektrodami i dwoma filtrami polaryzacyjnymi. pomiędzy filtry polaryzacyjne posiada wyświetlacz ciekłokrystaliczny, stąd jego nazwa, i zapobiega blokowaniu światła przechodzącego przez pierwszy filtr przez drugi.

Jeśli zauważyłeś, po dotknięciu jednego z tych ekranów obraz jest zdeformowany i po naciśnięciu pojawia się rodzaj czarnej plamy, to znaczy, że naciskasz na ciekły kryształ i nie jest to wskazane ... Możesz skończyć z gorszą jakością kolorów ekranu, nierównomiernym rozkładem oświetlenia lub nawet martwe piksele (czarne plamy lub obszary na ekranie, które nie znikają).

Ekrany LCD dla Arduino i Raspberry Pi

Ekran LCD, taki jak moduły, które istnieją dla elektroniki lub dla Arduino, zwykle ma wiele kolumn do wyświetlania znaków alfanumerycznych lub symboli oraz jeden lub dwa wiersze do wyświetlania informacji. To sprawia, że ​​są znacznie ciekawsze niż siedmiosegmentowy wyświetlacz, który musiałby łączyć kilka pinów, aby wyświetlać tylko jedną cyfrę, symbol lub literę. Jeśli chcesz pokazać więcej, umieść kilka wyświetlaczy.

Zamiast tego na jednym ekranie LCD można wyświetlić znacznie więcej informacji. Ale musisz dobrze znać wyprowadzenia tego typu modułów, aby je prawidłowo podłączyć. Polecam zawsze zobaczyć arkusz danych producenta i konkretnego modelu że masz, ponieważ mogą się one różnić.

Np. Możesz kupić ten od Adafruit na Amazon, który jest jednym z najpopularniejszych z klawiaturą i zawiera możliwość wyświetlania do 16 znaków w każdej z dwóch linii. A są nawet 20 × 4, czyli coś bardziej zaawansowanego iWielocalowy kolor do wyświetlania bardziej złożonych obrazów.

W przypadku ekranu LCD o rozdzielczości Adafruit 16 × 2, możesz zobaczyć ten arkusz danych...

Dla arduino może prostszy, taki jak ten, jest lepszy Ekran LCD 16x2 bez klawiatury. Jeśli spojrzysz na tę płytkę, z tyłu ma 16 pinów. Jeśli weźmiesz planszę i odwrócisz ją do góry nogami i spojrzysz na jej szpilki od lewej do prawej, masz pinout:

  • Pin 16: GND dla podświetlenia
  • Pin 15: Vcc dla podświetlenia
  • Pin 7-14: 8-bitowy (następne 8 pinów) do przesyłania informacji wyświetlanych na ekranie
  • Pin 6: synchronizacja odczytu i zapisu
  • Pin 5. R / W (zapis i odczyt danych i poleceń)
  • Pin 4: RS (selektor między poleceniami i danymi)
  • Pin 3: kontrola kontrastu
  • Pin 2: Vcc 5 v dla mocy
  • Pin 1: GND (0v) dla zasilania

Pamiętaj, że gdy umieścisz go we właściwej pozycji, kołki są odwrócone ...

Integracja z Arduino

Schemat połączeń LCD 16x2 do Arduino Uno

do podłącz go do arduino Nie jest to zbyt skomplikowane, należy wziąć pod uwagę tylko rezystor 220 omów do regulacji napięcia wejściowego dla mocy ekranu oraz potencjometr do modulacji kontrastu ekranu. Następnie podłącz odpowiednio każdy z pinów do płyty Arduino i gotowe. Możesz spojrzeć na obraz Fritzinga ...

Jak widzisz, potencjometr będzie przez który będzie zasilany ekran LCD i kontrast również zostaną wyregulowane. Dlatego będzie połączony zarówno z GND, jak i Vcc wyświetlacza, a także z linią sterowania podświetleniem i kontrolą kontrastu. Być może jest to najbardziej skomplikowane, wtedy chodzi o podłączenie pozostałych pinów do wejść / wyjść, których zamierzasz użyć w swoim projekcie.

Programowanie za pomocą Arduino IDE

Do programowania musisz wziąć pod uwagę pewne osobliwości, Pamiętaj, że musisz nie tylko wiedzieć, jak przesyłać dane, ale także przenosić je, dobrze umieszczać na ekranie itp. Powinieneś także użyć biblioteki o nazwie LiquidCrystal.h, o ile ekran LCD jest wyposażony w zgodny chipset Hitachi HD44780. Tutaj masz przykładowy kod:

#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);
  }
}

Więcej informacji - Podręcznik programowania Arduino (bezpłatny PDF)


Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.