ATNEL tech-forum https://forum.atnel.pl/ |
|
LCD OLED I2C na strerowniku SH1106 https://forum.atnel.pl/topic24388.html |
Strona 1 z 1 |
Autor: | macieju-1974 [ 17 sty 2023, o 19:25 ] |
Tytuł: | LCD OLED I2C na strerowniku SH1106 |
Drodzy forumowicze, zabrałem się za temat wyświetlaczy LCD OLED SPI, I2C. Przestudiowałem poradniki Mirka w tym temacie i "napisałem" a dokładniej skopiowałem biblotekę (tą uniwersalną na SPI i I2C), którą omawia Mirek w swoich poradnikach. Podłączyłem swojego OLED-a 1.3' I2C i klapa.... Po czasie zorientowałem się że chodzi on na SH1106 Jak podpowiedział mi wujek googl te sterowniki sa prawie identyczne a różnią sie podobno tylko wielkościa pamięci RAM i SH1106 nie obsługuje scrollingu. Zwiększyłem więc bufor na 1056 ((132x64)/8) i dalej klapa. Porównywałem też stałe z bibliotek Adafruit SSD1306 i Adafruit Sh110x i są one takie same podobnie jak funkcję Init i Display. Rozwiązał ktoś może tą zagwozdkę ? |
Autor: | micky [ 17 sty 2023, o 19:41 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
Masz jakis najprostszy analizator logiczny? Kosztuje niewiele a dużo by Ci pomógł - zobaczyłbyś co się dzieje na liniach komunikacyjnych. Może zły adres wybrałeś? Możesz też na szybko odpalić jakiś przykład na Arduino, żeby zobaczyć czy wyświetlacz w ogóle ruszy. |
Autor: | macieju-1974 [ 17 sty 2023, o 19:47 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
Dzięki micky za odpowiedż, analizatora oczywiście nie posiadam i nawet na to nie wpadłem, OLED-a testowałem pod Arduino i działa, adresy są dwa na reversie 0x78,0x7A i tez testowałem... |
Autor: | micky [ 18 sty 2023, o 02:52 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
A pod jakim adresem Ci dziala pod Arduino? |
Autor: | macieju-1974 [ 19 sty 2023, o 14:55 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
hmmm... a jak to sprawdzić ? |
Autor: | Jaglarz [ 19 sty 2023, o 15:15 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
W Arduino masz skrypt Scanner I2C. Wgraj go i poda ci adresy podłączonych urządzeń. |
Autor: | macieju-1974 [ 19 sty 2023, o 16:30 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
no faktycznie jest inny, Arduino odczytało adres 0x3C i też klapa |
Autor: | micky [ 19 sty 2023, o 17:11 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
To jak mogl ci chodzić na Arduino skoro miałeś inny adres? Na bibliotece Mirka pomnóż go przez 2 |
Autor: | macieju-1974 [ 19 sty 2023, o 18:01 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
nie rozumiem |
Autor: | xentis [ 19 sty 2023, o 18:55 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
Adres na magistrali I2C jest zawarty w pierwszym wysyłanym bajcie, ale tak na prawdę adres to 7 starszych bitów, bo najmłodszy bit jest bitem zapisu/odczytu. Arduinowcy przjęli sobie ideę, w której adres jest przesunięty w prawo o jeden tak by usunąć ten bit zapisu, więc jak podajesz do funkcji adres to właśnie w takiej formie, a funkcja na powrót przesuwa o jeden w lewo i dokleja bit zapisu/odczytu i dopiero wysyła. Natomiast szkoła Mirka ma podejście takie, że adres jest podawany w oryginalnej formie z zerowym bitem zapisu/odczytu, przez co w funkcji obsługującej komunikację łatwiej operować na nim bo wystarczy dodać 1 lub nie w zależności czy odczyt czy zapis, a arduinowcy muszą jeszcze przesuwać w lewo nie wiadomo po co |
Autor: | roger [ 20 sty 2023, o 09:12 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
Chyba nie ten trop. Zostaw na razie adresy w spokoju i skup się na samym sterowniku. Jeżeli używasz kodu, który został napisany dla OLEDA SSD1306, to w najlepszym przypadku wyświetlą Ci się jakieś śmieci na ekranie. Sterownik SH1106 działa ze stronnicowaniem pamięci i trzeba to uwzględnić w swoim programie. Jeżeli ekran wyświetlacza pozostaje czarny po wgraniu softu może to oznaczać, że inicjalizacja wyświetlacza nie była poprawna. |
Autor: | macieju-1974 [ 20 sty 2023, o 12:06 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
chłopaki dzięki wielkie za pomoc i odpowiedzi w Niedzielę znowu zajmę się tematem bo teraz brak czasu chwilowo, nie chcę sie wymądrzać ale też skłaniał bym się bardziej do tezy roger-a że chyba trzeba pogrzebać w inicjalizacji wyświeltacza, co nie oznacza że xentis nie ma racji. Jest to dla mnie jakieś wyzwanie i będę drążył temat (mam nadzieję z Waszą pomocą) bo tak się uczymy... |
Autor: | Marhef [ 6 lut 2023, o 23:20 ] |
Tytuł: | Re: LCD OLED I2C na strerowniku SH1106 |
macieju-1974 napisał(a): nie na adresie które wykryło Arduino (0x3C) tylko na (0x78) jak nadrukowano w chinach Ale to jest ten sam adres. Wytłumaczył to xentis:Cytuj: Adres na magistrali I2C jest zawarty w pierwszym wysyłanym bajcie, ale tak na prawdę adres to 7 starszych bitów, bo najmłodszy bit jest bitem zapisu/odczytu. Arduinowcy przjęli sobie ideę, w której adres jest przesunięty w prawo o jeden tak by usunąć ten bit zapisu, więc jak podajesz do funkcji adres to właśnie w takiej formie, a funkcja na powrót przesuwa o jeden w lewo i dokleja bit zapisu/odczytu i dopiero wysyła. Natomiast szkoła Mirka ma podejście takie, że adres jest podawany w oryginalnej formie z zerowym bitem zapisu/odczytu, przez co w funkcji obsługującej komunikację łatwiej operować na nim bo wystarczy dodać 1 lub nie w zależności czy odczyt czy zapis, a arduinowcy muszą jeszcze przesuwać w lewo nie wiadomo po co Sprawdź sam. Wpisz 0x78 w kalkulator programisty (np w windows) i przesuń o jeden bit w prawo. Dostaniesz... 0x3c |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |