problem z wyświetlaczem lcd 1604a (arduino i biblioteka LiquidCrystal.h)

Najbardziej popularnym wyświetlaczem LCD dla elektroniki jest model 1602 na sterowniku HD44780. Jednak czasem potrzeba odrobinę więcej i tutaj przychodzą wyświetlacze 1604 oraz 2004. Ja znalazłem w swoich szpargałach 1604a i od razu zdecydowałem podłączyć go do Arduino.

Podłączenie zrealizowałem na magistrali 4 bit pod wolne porty, podświetlanie ograniczyłem rezystorem i wgrałem jakiś przykład dostępny w środowisku programistycznym. Przykład działał prawidłowo, póki wyświetlałem coś w pierwszej linijce. Wrzucenie czegoś do kolejnych powodowało jakieś dziwne rozjazdy, wyświetlanie się wartości w złych miejscach i lekki chaos na wyświetlaczu.

Naturalnym krokiem było ustawienie jakiegoś krótkiego tekstu w każdym wierszu i obserwowanie reakcji wyświetlacza. Pierwszy i drugi wyświetliły się OK, a kolejne dwa były przesunięte i zaczynały się od 5 kolumny. Najprostszym rozwiązaniem było wpisanie w pozycję kolumn w 3 i 4 wierszu wartości ujemnej jako początkowej. Problem rozwiązany.

1604a arduino

W sumie z braku czasu nie analizowałem przyczyny takiego zachowania wyświetlacza. Jeśli ktoś z Was ma pomysł/wiedzę, to zapraszam do wyjaśnienia.

(w kolejnym kroku będę weryfikować czy podobnie wyświetlacz zachowuje się sterowany przez I2C oraz po podłączeniu do Raspberry Pi)

Kod sterujący:

/*
Podlaczenie (plytka MEGA2560):
* LCD RS pin do pinu 23
* LCD Enable do pinu 27
* LCD D4 do pinu 29
* LCD D5 do pinu 31
* LCD D6 do pinu 33
* LCD D7 do pinu 35
* LCD R/W do GND
*/

#include <LiquidCrystal.h>

LiquidCrystal lcd(23, 27, 29, 31, 33, 35);

void setup() {
lcd.begin(16, 4);
lcd.setCursor(0, 0);
lcd.print(„wiersz1 wiersz1”);
lcd.setCursor(0, 1);
lcd.print(„wiersz2”);
lcd.setCursor(-4, 2);
lcd.print(„wiersz3 wiersz3”);
lcd.setCursor(-4, 3);
lcd.print(„wiersz4 wiersz4”);
}

void loop() {
lcd.setCursor(8, 1);
lcd.print(millis()/100);
}

Podobał Ci się wpis? - skomentuj lub zalajkuj. Podziel się ze swoimi znajomymi. Każdy aktywny głos to dodatkowa motywacja do pisania bloga! Dzięki.