20x4 OLED (WEH002004) przez I2C - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Wyświetlacze (https://forum.arduinopolska.pl/dzial-wy%C5%9Bwietlacze) +--- Wątek: 20x4 OLED (WEH002004) przez I2C (/watek-20x4-oled-weh002004-przez-i2c) |
20x4 OLED (WEH002004) przez I2C - wex - 23-03-2017 Witam, poszukuję rozwiązania problemu właściwej definicji wyświetlacza OLED poprzez I2C. Płytkę połączyłem z UNO i generalnie wyświetlacz wyświetla żądany txt. Jest jednak jedno małe ale: - standardowa definicja ustawienia kursora "setCursor" daje dziwne umiejscowienie tekstu na ekranie działa to tak jakby kontynuacją 1linii była 3cia a drugiej - czwarta np. przy konfiguracji (21,1) print zacznie pisać od drugiego znaku 4 linijki [attachment=321] W związku z tym pytanie: jak prawidłowo inicjować bibliotekę pod taki wyświetlacz? Aktualnie korzystam z podpowiedzi dla LCD po I2C LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //tu zmieniłem tylko adres zgodny z chipset I2C z tego co wiem cyferki wewnatrz nawiasu oznaczają piny, czy są to piny I2C? Widziałem też w różnych przykładach definicje w formie: ...I2C lcd(0x3F, 20,4) co miało by oznaczać adres i wielkość wyświetlacza. Z jakiego powodu stosuje się dwa rodzaje definicji? lcd.begin(20,4); //tak deklaruję wielkość wyświetlacza jeśli użyję setCursor(0,3), wyświetlacz zaczyna wyświetlać różne losowe znaki na całej powierzchni Dzięki za zainteresowanie. Krzysiek RE: 20x4 OLED (WEH002004) przez I2C - ferdricco - 21-11-2018 (23-03-2017, 11:52)wex napisał(a): Witam, Też walczyłem z tym lcd. U mnie problem rozwiązała biblioteka U8G2. Co do definicji to wszystko zależy od tego jakiej biblioteki używasz. RE: 20x4 OLED (WEH002004) przez I2C - kaczakat - 22-11-2018 LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); to są numery pinów na przejściówce I2C, na wypadek gdyby ktoś inaczej chciał podłączyć, bo nie muszą być przylutowane. Jak w konstruktorze podajesz wielkość ekranu (swoją drogą to jest LCD nie OLED) to nie podajesz go już przy inicjalizacji w begin - to są zapewne znaleziska fragmentów kodu z różnych bibliotek. Tam gdzie kupiłeś pytaj z jakimi bibliotekami to ma działać, najwyraźniej chip w środku nieco inaczej działa niż w najpopularniejszych LCD. Ja akurat mam u siebie takie biblioteki, które nie podają pinów w konstruktorze i 20x4 działa OK https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library i https://github.com/mathertel/LiquidCrystal_PCF8574/ . Możesz sobie porównać działanie. RE: 20x4 OLED (WEH002004) przez I2C - ferdricco - 22-11-2018 (22-11-2018, 08:52)kaczakat napisał(a): LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); to są numery pinów na przejściówce I2C, na wypadek gdyby ktoś inaczej chciał podłączyć, bo nie muszą być przylutowane. Jak w konstruktorze podajesz wielkość ekranu (swoją drogą to jest LCD nie OLED) to nie podajesz go już przy inicjalizacji w begin - to są zapewne znaleziska fragmentów kodu z różnych bibliotek. Tam gdzie kupiłeś pytaj z jakimi bibliotekami to ma działać, najwyraźniej chip w środku nieco inaczej działa niż w najpopularniejszych LCD. Ja akurat mam u siebie takie biblioteki, które nie podają pinów w konstruktorze i 20x4 działa OK https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library i https://github.com/mathertel/LiquidCrystal_PCF8574/ . Możesz sobie porównać działanie. Cytat:Jak w konstruktorze podajesz wielkość ekranu (swoją drogą to jest LCD nie OLED) to nie podajesz go już przy inicjalizacji w begin - to są zapewne znaleziska fragmentów kodu z różnych bibliotek.Nie żebym się wymądrzał. To jest alfanumeryczny wyswietlacz 20x4 OLED WINSTAR. W zależności od modelu może pracować na podłączeniach jak standardowy LCD hd44780 lub I2C/SPI. Mi pomogła biblioteka U8G2. RE: 20x4 OLED (WEH002004) przez I2C - kaczakat - 23-11-2018 Dzięki za info o oled, takich jeszcze nie widziałem, ja jeszcze dodam, że jak inicjalizowałem wyświetlacz 2x20 do pracy jako 2x16 to wyświetlał linię 0 w 0, a 1 w 2 wierszu (licząc od 0). |