Obsługa prostych wyświetlaczy ciekłokrystalicznych przez mikrokontrolery i komputery

Dla mikrokontrolerów i mini komputerów nie brakuje różnych małych wyświetlaczy - czy to do wyświetlania tekstu, czy bitmap, prostych rysunków. Najprostsze wyświetlacze ciekłokrystaliczne potrafią wyświetlić tekst, a najbardziej złożone wyświetlacze LCD pozwolą rysować złożone interfejsy, w tym te dotykowe. W przypadku Arduino nie problem o biblioteki i przykłady. Inne platformy mają mniej lub bardziej pod górkę.

W tym artykule rozpocznę temat obsługi i wykorzystania prostych wyświetlaczy czy to z poziomu mikrokontrolera, czy komputera.

Wyświetlacze ciekłokrystaliczne

Różne wyświetlacze dostępne w niskiej cenie dla amatorów

Popularne wyświetlacze ciekłokrystaliczne np. 2x16 (2 linie 16 znaków) lub większe znajdziemy np. w automatach z napojami i innych urządzeniach. Odpowiednio oprogramowane mogą być też na panelach PCtów - wyświetlają wtedy dane o temperaturze i chłodzeniu komputera. Dostępne są też wyświetlacze z telefonów Nokii (tanie zamienniki, przylutowane do PCB) na interfejsie SPI (lub coś zbliżonego do SPI). Większe kolorowe wyświetlacze TFT też bez problemów można dostać, ale są już bardziej złożone i wymagają odpowiedniego złącza, płytki do której można je podłączyć (a płytkę z mikrokontrolerem), np Arduino. Niektóre z wyświetlaczy oferują też dotyk.

W przypadku Arduino i innych podobnych platform do obsługi wielu wyświetlaczy ciekłokrystalicznych służy biblioteka LiquidCrystal. Na platformach, na których nie jest dostępna trzeba poszukać zamienników. Implementacja komunikacji z wyświetlaczem może okazać się bardzo żmudna i czasochłonna.

Na szczęście istnieje też komunikacja szeregowa (UART), która umożliwia w najprostszym przypadku wpisanie tekstu jaki ma się wyświetlić. Płytka z wyświetlaczem ma wtedy mały mikrokontroler, który został zaprogramowany do wyświetlania tego co dostanie poprzez UART. Jeżeli chcesz własny panel LCD podłączony do komputera to wystarczy połączyć taki wyświetlacz z (np. wewnętrznym) portem USB poprzez adapter USB-UART i wykorzystać np. PySerial do wyświetlania czegoś na wyświetlaczu. Mikrokontrolery jak PyMCU, Arduino posiadające interfejs szeregowy mogą zrobić to samo.

PyMCU i wyświetlacze ciekłokrystaliczne

PyMCU obsługuje jeden wyświetlacz LCD 2x16. Posiada 16 pinów żeńskich do których można podłączyć bezpośrednio taki wyświetlacz (choć zablokuje dostęp do paru pinów PWM - trzeba by użyć przedłużki).

API jest proste. Najpierw włączamy obsługę LCD metodą lcd, a później podając argumenty możemy pisać na wyświetlaczu. Pierwszy argument to numer wiersza, drugi tekst jaki ma się wyświetlić:

from datetime import datetime
from time import sleep

import pymcu

mb = pymcu.mcuModule()
mb.lcd()

while True:
    day = datetime.now().strftime('%d, %b %Y')
    time = datetime.now().strftime('%H:%M:%S')
    mb.lcd(1, day)
    mb.lcd(2, time)
    sleep(1)
Wyświetlacz LCD podłączony do PyMCU

16 pinów to dużo, więc większość wyświetlaczy ma adapter I2C. Ogranicza on ilość pinów do 2 na dane i 2 na zasilanie. Do tego zazwyczaj można podłączyć wiele wyświetlaczy. Dla PyMCU nie ma biblioteki do obsługi wyświetlaczy poprzez I2C. Pod Arduino - LiquidCrystal.

Adapter I2C na wyświetlaczu zmniejsza ilość pinów

Zobacz także

RkBlog

Elektronika i Python, 14 April 2014

Comment article
Comment article RkBlog main page Search RSS Contact