Więc tak wprost na bibliotece LiquidCrystal to niby działa ale trochę jak chce - źle się inicjuje zarówno po podaniu zasilania jak i po resecie. Co widać na poniższym filmiku.
https://youtu.be/4hyMHA89EP0 Widać tu że napisy w wierszach są np lewej strony zamiast z prawej, zmieniana jest kolejność linii albo jakieś krzaczory się pojawiają. Czyli mimo prawie kompatybilności z HD44780 to jednak to nie jest poprawne działanie. Po róznych poszukiwaniach netowych wyszło na to że trzeba nieco wydłużyć inicjowanie i nawet gdzieś na githubie znalazłem stosowne rozwiązanie tyle że nie było sprawdzane na takim konkretnie wyświetlaczu jak ja mam.
Poniżej bardzo dobry efekt i stabilne zachowanie.
https://youtu.be/-yON_Zl0xBwi jeszcze jeden filmik
https://youtu.be/mtlMGS3i3KYW rzeczywistości ładniej to wygląda niż na filmikach czy na zdjęciu, ładne żółte litery na czarnym tle.
Przykładowy kod do testowania tego:
Kod: Zaznacz cały
#include <WinstarOLED.h>
#include <LiquidCrystal.h>
WinstarOLED lcd;
void setup() {
lcd.reset();
lcd.begin(20, 4);
lcd.clear();
}
void loop()
{
// Set the cursor to column 0, line 0
lcd.setCursor(0, 0);
lcd.print("Line 1");
// Set the cursor to column 1, line 1
lcd.setCursor(0, 1);
lcd.print("Line 2");
// Set the cursor to column 3, line 2
lcd.setCursor(0, 2);
lcd.print("Line 3");
// Set the cursor to column 1, line 3
lcd.setCursor(0, 3);
lcd.print("Line 4");
//lcd.print("Uptime = ");
//lcd.print(millis()/1000);
//lcd.print("s");
}biblioteka pozyskana z githuba
WinstarOLED-master.zip