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" :lol: 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 :cry: 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 :shock:

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 :lol:

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:  macieju-1974 [ 6 lut 2023, o 22:07 ]
Tytuł:  Re: LCD OLED I2C na strerowniku SH1106

no trochę mi zeszło ale to tylko brak czasu, roger miał rację błąd tkwił w inicjalizacji wyświetlacza zapomniałem napisać kilka linii teraz ożył ale na wyświetlaczu mam same paski, a co najlepsze śmiga nie na adresie które wykryło Arduino (0x3C) tylko na (0x78) jak nadrukowano w chinach. Teraz jak zrobic stronicowanie pamięci?, -oto jest pytanie

ObrazekObrazek

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 :lol:

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/