Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Orange Pi Lite - LCD 16x2 / I2C - zmiana na Oled

14 Cze 2017 22:37 1800 4
  • Poziom 9  
    Mam pytanie dla raczej zaawansowanych w temacie wyświetlaczy LCD w moim przypadku 16x2 ( kompatybilnych z HD44780 ) , oprogramowania w pythonie jak i samym systemie linux u mnie - Armbian Ubuntu Xenial.
    Mianowicie mam problem z LCD 16x2 kupionym po okazyjnej cenie tzw oled czyli troszkę lepsze i wyraźniejsze literki itd. Jak dotąd korzystałem z tzw. "zwykłego" 16x2 z podświetleniem i podpiętym przez: Konwerter LCD HD44780 I2C IIC TWI ARDUINO AVR ARM do czterech pinów w/w i GPIO - Orange Pi Lite. Całość obsługuje program / skrypt w pythonie i czasami program lcdproc z opcją wyświetlania zegara tzw. opcją BIG + oczywiście internetowe radio oparte o programy mpd / mpc.
    Wszystko ładnie i pięknie działa na LCD z tzw. podświetleniem .... na LCD 16x2 Oled + konwerter I2C jest jeden irytujący błąd z ktorym nie mogę sobie poradzić ...mianowicie po uruchomieniu skryptu : python /root/radio.py ktory obsługuje LCD i program mpc wszystko jest OK dopuki nie wyłącze go w linux-ie komędą : killall python .... aby włączyć program lcdproc do pokazywania zegara itp ? ...... wyświetlane są albo jakieś ślaczki albo ewentualnie dane z mpc ale chaotycznie i gdzie popadnie ewentualnie poprzeplatane z danymi dwóch programów tego z pythona i danych z lcdproc ....co więcej nawet ponowna komenda radio.py nie eliminuje tego efektu. Jedynym wyjściem jest odłączenie na chwilę kabelka +3 V / +5V lub GND ...bo ten LCD może pracować na dwóch napięciach zasilania.
    Po wielu poszukiwaniach i porównaniach chyba znalazłem iż jest to wersja Winstar.
    Na wyświetlaczu pisze tylko : EH001602A REV.H(C) ..ale prawie na 100% jest to model o symbolu: WEH001602ALPP5N00001
    Orange Pi Lite - LCD 16x2 / I2C - zmiana na Oled
    Orange Pi Lite - LCD 16x2 / I2C - zmiana na Oled
    Nie mam pojęcia czemu tak jest czy to wina wadliwego LCD Oled / źle przylutowanych przewodów i konwertera ?... ale raczej nie wyświetlał by wtedy poprawinie (ale tylko z osobna i przy pierwszym uruchomieniu) podanych wyżj programów / skryptów. Może wina tkwi w innych driverach niby kompatybilnych z wyświetlaczami HD44780 w tym przypadku to : Kontroler WS0010 ...
    Może jest jakiś sposób softwerowy aby wyczyścić LCD tego Oled-a lub jego pamięć ( ktora jak widać zapamiętuje jakiś dane nawet po zamknięciu skryptu ) z danych bez konieczności odpinania napięć lub uziemienia GND ? ..... a może wina tkwi w tzw opcji podświetlania której w tym LCD Oled poprostu brak a oprogramowanie dostosowane do LCD z tą opcją coś miesza ? Na wcześniejszym prawidłowo działającym LCD pisze : CBC016002A29-00 ... i nie wiele można na stronie firmy z allegro wyczytać : napięcie 5V / sterownik zgodny z HD44780 / producent : AV-Display .. i tyle.
    Może ktoś bardziej obeznany w temacie coś podpowie ... bo niby można ten LCD użytkować ale ......brak mi fajnej opcji jak wspomniałem która w moim przypadku po naciścnięciu na pilocie przycisku stop zatrzymywała program mpc i uruchamiała skrypt zamykający program radio.py a uruchamiała zegar ( czyli program lcdproc )
    Jeśli będzie trzeba mogę podesłać wszystkie skrypty i programy ...sam projekt Orange Pi + radio internetowe "skleciłem" przy pomocy i według tego tutoriala:
    [Guide] Internet radio + LCD 2x16 + TactSwitch

    Ps. trochę poczytalem w necie i wynika iż Kontroler WS0010 nie jest w pełni kompatobilny z wyświetlaczami HD44780 !!! ...przynajmniej wiem że LCD nie jest uszkodzony :-) ... ale sporo ludzi ma kłopoty jest to związanie chyba także z tym że ten LCD Oled / kontroler ma problemy z 4bitową magistralą ..czy coś koło tego :-) ...nie będąc fachowcem niestety nie możemy korzystać z gotowych przykładów pod LCD HD44780
  • PCBway
  • Poziom 9  
    Nie wiem czy w dobrym dziale piszę ale mam prośbę do elektronika / programisty.... wyczytałem iż ten model LCD firmy Winstar oparty o kontroler WS0010 zgodny z LCD 447800 ma jednak problemy ! ......i w moim przypadku nie mogę go w pełni i w 100% używać pod interfejs I2C ... sprawdziłem to podłączając na takich samych ustawieniach dwa tzw. zwykłe LCD różnych firm ( z podświetleniem i kontrolą kontrastu - na OLED-ach przeważnie nie ma tych opcji ) i takowych efektów niema :-( ..... w skrócie LCD firmy Winstar pracuje poprawnie do pierwszego uruchomienia ( inicjalizacji ) potem już są dziwne efekty w postaci przekłamań w kolejności wyświetlanego kodu czy innych ślaczków. Efekt jak na zdjęciu :
    Orange Pi Lite - LCD 16x2 / I2C - zmiana na Oled
    Znalazlem kilka przypadków opisujących to wadliwe działanie w/w LCD Oled np. tu:
    https://forum.mikroe.com/viewtopic.php?f=76&t=66331
    Youtube-LCD16x2-Winstar
    Chyba nawet ktoś napisał nową poprawkę (bibliotekę) do dego LCD cytuję :
    Cytat:
    Napisałem własną bibliotekę LCD zgodną z HD44780 LCD / VFD / OLEDdisplays.
    Zalety: prawidłowe i precyzyjne wyznaczniki czasu również w pełni obsługują wyświetlacze OLED "problemowe" firmy Winstar.
    - tryb 4-bitowy bez kontrolki "zajęty" flaga
    - dowolne przypisanie sygnałów do portów mikrokontrolera

    dostępna jest tu : Link
    Ale ja niestety nie mam pojęcia jak to zmienić czy wgrać .... może ktoś bardziej doświadczony pomoże ...
    Ps. w opisach tego problemu pisze iż problem występuje tylko przy 4bitowej magistrali ...czy zatem można uruchomić lub zmusić ten LCD -Oled do pracy na 8-bitowej magistrli z interfejsem I2C i programami komendami pod kontrolery : HD44780 ???
    duża zagwozdka ...pewnie lipa :-(
    Ps. bardzo nie profesjonalne rozwiązanie ...ale dla mnie działa
    OLED 16x2
    Youtube Oled 16x2 Winstar
    pozdro!
  • PCBway
  • Poziom 20  
    To wada występująca tylko w trybie 4 bitowym , w 8 bitowym to nie występuje.
    Aby to wyeliminować należy podać przy inicjalizacji LCD 5 razy komendę 0x00
  • Poziom 9  
    Dzięki za informację ...ale to raczej dla zaawansowanych w temacie :-) ..... jak to wpisać i w które miejsce w danym kodzie ?... chyba driverów czyli pliku : I2C_LCD_driver.py bo raczej chyba nie w radio.py.
    Niby na tej konfiguracji jakoś to działa ale jak wspominałem na forum ubuntu często trzeba w konfiguracji robić opcję opóźnienia czyli sleep ...czemu ??? ale działa jako tako :-) ...w pliku zip konfig pod radio internetowe i drivery I2C / orangePi
  • Poziom 20  
    Znalazłem taką informację i będę to sprawdzał dam znać