Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 19 kwi 2025, o 11:56


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
    Autor Wiadomość
    PostNapisane: 17 sty 2023, o 19:25 
    Offline
    Nowy

    Dołączył(a): 19 paź 2022
    Posty: 13
    Pomógł: 0

    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ę ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 sty 2023, o 19:41 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 sty 2023, o 19:47 
    Offline
    Nowy

    Dołączył(a): 19 paź 2022
    Posty: 13
    Pomógł: 0

    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...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2023, o 02:52 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    A pod jakim adresem Ci dziala pod Arduino?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2023, o 14:55 
    Offline
    Nowy

    Dołączył(a): 19 paź 2022
    Posty: 13
    Pomógł: 0

    hmmm... a jak to sprawdzić ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2023, o 15:15 
    Offline
    Moderator zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 18 lip 2012
    Posty: 3228
    Lokalizacja: Kraków - obok FAB5 ATMEL'a
    Pomógł: 91

    W Arduino masz skrypt Scanner I2C. Wgraj go i poda ci adresy podłączonych urządzeń.

    _________________
    http://www.jaglarz.info



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2023, o 16:30 
    Offline
    Nowy

    Dołączył(a): 19 paź 2022
    Posty: 13
    Pomógł: 0

    no faktycznie jest inny, Arduino odczytało adres 0x3C :shock:

    i też klapa



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2023, o 17:11 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    To jak mogl ci chodzić na Arduino skoro miałeś inny adres? Na bibliotece Mirka pomnóż go przez 2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2023, o 18:01 
    Offline
    Nowy

    Dołączył(a): 19 paź 2022
    Posty: 13
    Pomógł: 0

    nie rozumiem



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2023, o 18:55 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1033
    Lokalizacja: Trójmiasto
    Pomógł: 190

    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:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sty 2023, o 09:12 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 05 lut 2015
    Posty: 24
    Pomógł: 1

    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sty 2023, o 12:06 
    Offline
    Nowy

    Dołączył(a): 19 paź 2022
    Posty: 13
    Pomógł: 0

    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...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 lut 2023, o 22:07 
    Offline
    Nowy

    Dołączył(a): 19 paź 2022
    Posty: 13
    Pomógł: 0

    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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 lut 2023, o 23:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1168
    Lokalizacja: Kraków
    Pomógł: 93

    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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO