Wyświetlacze Sharp Memory LCD
Sharp od paru lat oferuje małe energooszczędne wyświetlacze Memory LCD na potrzeby urządzeń wearables i temu podobnych. Dzięki interfejsowi SPI mogą bez problemu współpracować z mikrokontrolerami.
Sharp oferuje kilka modeli wyświetlaczy wykonanych w technologii Memory LCD
. Przekątne zaczynąją się od nieco ponad 1 cala a kończą na 4,4 calowym monochromatycznym wyświetlaczu o rozdzielczość 320x240. Ten największy model ma też największe zapotrzebowanie na energię elektryczną - 100 - 600 mikrowatów (statyczne - dynamiczne zapotrzebowanie na energię elektryczną). Najmniejsze ekrany nie przekraczają 50 mikrowatów - spory nacisk położono na ich energooszczędność.
Nie są to typowe wyświetlacze znane z np. smartphonów. Większość z nich jest monochromatyczna i ma niską rozdzielczość. Nazwa Memory LCD
wzięła się z cech jakie te wyświetlacze posiadają - łączą zalety ekranów ePapierowych z LCD. Każdy piksel jest w stanie przechowywać informacje przez co obrazu nie trzeba stale odświeżać jak w zwykłych ekranach LCD. W odróżnieniu od ePapieru mogą być odświeżane szybko (na potrzeby np. animacji) jak i mogą pracować w ujemnych temperaturach.
Na Mouserze najmniejsze wyświetlacze kosztują nieco poniżej 100 zł (LS013B7DH03), a za największy zapłacimy 335 zł (LS044Q7DH01). Wyświetlacz zakończony jest taśmą, którą można podłączyć do płytki dostępnej na tindie.com. Gotową płytkę z wyświetlaczem oferuje też Adafruit.
Do komunikacji wyświetlacze te wykorzystują interfejs SPI (MOSI, SCK, CS). Dodatkowo potrzebować będziemy mikrokontroler wyposażony w ponad 4kB pamięci RAM (proporcjonalnie do ilości pikseli). Oznacza to że np. Arduino UNO odpada. ESP32, czy Arduino M0 są kompatybilne. W zależności od modelu potrzebne będzie 5V lub 3.3V źródło zasilania. Logika operuje na 3.3V.
Dla Arduino i ESP32 programowanego poprzez Arduino IDE wykorzystać można bibliotekę Adafruit. Dostępna jest też biblioteka dla Raspberry Pi, czy dość podstawowa dla Micropythona. Na Githubie znaleźć można też porty pod inne mikrokontrolery i platformy.
ESP32 i wyświetlacz Sharp Memory LCD
Do testów wykorzystałem ESP32 programowane poprzez Arduino IDE oraz 4,4" wyświetlacz i płytkę-adapter z Tindie. Wraz z biblioteką Adafruit dostajemy przykładowy projekt, który wystarczy tylko skonfigurować pod ESP32.
Taśma ekranu ma kilka linii, które wyprowadzone są na płytkę-adapter:
Złącze wyświetlacza | Opis | Pin ESP32 |
---|---|---|
SCLK | zegar - SCK SPI | 18 |
SI | MOSI SPI | 23 |
SCS | chip select (CS) | dowolny pin w trybie wyjścia |
DISP | włącza/wyłącza ekran | dowolny pin w trybie wyjścia (lub nie podłączone) |
Jako że biblioteka Adafruit na chwilę obecną nie używa sprzętowego SPI to tak naprawdę użyć można dowolnych pinów z cyfrowym wejściem/wyjściem. Jeżeli używamy inne komponenty na sprzętowym SPI to do sofwarowego SPI trzeba będzie użyć innych pinów.
Do Arduino IDE dodajemy bibliotekę Adafruit dla tych wyświetlaczy jak i Adafruit GFX. W przykładach znajdziemy gotowca, w którym wystarczy podać numery pinów i rozdzielczość wyświetlacza, np:
#define SHARP_SCK 21
#define SHARP_MOSI 22
#define SHARP_SS 16
Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 320, 240);
Po wgraniu kodu powinniśmy zobaczyć na wyświetlaczu rysowaną prostą grafikę oraz tekst. Można też wyświetlać 1-bitowe bitmapy skonwertowane do tablic tak jak dla OLEDów:
display.drawBitmap(sx, sy, bitmapa, x, y, 0);
Gdzie x,y to wymiary bitmapy, sx, sy to startowy piksel na wyświetlaczu od którego bitmapa zostanie wyświetlona.
Płytka-adapter ma złącze zaciskowe, które może nie kontaktować najlepiej. Jeżeli wyświetlacz nie działa
sprawdź czy taśma kontaktuje.
Ekran charakteryzuje się wysokim kontrastem, ale wymaga dobrego oświetlenia by być dobrze widocznym pod różnymi kątami. Wyświetlacz radzi sobie z QR-kodami jak i tekstem. Można więc tworzyć różnorakie interfejsy użytkownika, czy wyświetlać informacje.
Comment article