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 3 kwi 2025, o 06:26


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 
    Autor Wiadomość
    PostNapisane: 29 cze 2015, o 15:38 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Witam,

    Jakiś czas temu kupiłem w sklepie atnela OLED'a 128x64... Wspólnie z poradnikiem Mirka zrobiłem do niego bibliotekę. Jednak piksel/linia nie chcą się wyświetlić. Zastanawiam się czy to jakiś czeski błąd w kodzie (kompiluje się) czy może jednak problem z wyświetlaczem.

    W związku z tym mam prośbę.. Czy mógłby ktoś z Was podesłać testowego hexa dla OLEDa na i2c? Dla ATmegi328p (F_CPU 16MHZ).

    SCL - PC5
    SDA - PC4
    adres oleda 0x78



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2015, o 16:05 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Wieczorem będę w stanie Ci podesłać, a tymczasem napisz czy podłączyłeś rezystory podciągające do VCC na linich SCL i SDA?


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2015, o 16:55 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Tak, 4k7. Na spokojnie, będziesz miał czas to podeślij :) dzięki...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2015, o 19:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    jacky_cy napisał(a):
    Czy mógłby ktoś z Was podesłać testowego hexa dla OLEDa na i2c? Dla ATmegi328p (F_CPU 16MHZ).

    SCL - PC5
    SDA - PC4
    adres oleda 0x78

    Proszę bardzo!
    Załącznik:
    OLED_TEST2.zip


    Autor postu otrzymał pochwałę

    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2015, o 22:46 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Wyświetlacz działa ! Czyli coś namieszałem w kodzie... Będę szukał :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 cze 2015, o 00:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Jedno jest pewne, sprzęt działa! No to teraz zostało najprzyjemniejsze - znaleźć babola! ;)
    Proponuję jeszcze raz obejrzeć poradniki od początku do końca.
    Trochę czasu potrzeba, ale warto! Można się dzięki temu bardzo dużo nauczyć, a oledzik no mniamniuśny!

    Może się przyda:
    http://forum.atnel.pl/topic10920.html
    http://forum.atnel.pl/topic8344-30.html ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sie 2015, o 15:46 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Muszę się jeszcze poradzić... Generalnie w wolnym czasie w końcu udało mi się obejrzeć poradniki Mirka raz jeszcze no i dalej piksel się nie zapala... Ale mniejsza...

    Zaobserwowałem następującą rzecz... Kiedy wgrywam hexa od kolegi anshar oled wyświetla pięknego sampla. Kiedy wyłączę zasilanie i włączę z powrotem oled jest ciemny. Raz na 20 razy zdarzy się, że po włączeniu zasilania bitmapa wyświetli się ponownie. I w związku z tym mam pytanie? Czy można wpierw wyeliminować to zjawisko ? Tzn. czy to mogą być objawy tego że np. wyświetlacz się resetuje? W sumie zacząłbym od tego, a potem najwyżej zrobię bibliotekę razem z Mirkiem po raz trzeci :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sie 2015, o 16:06 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2015
    Posty: 252
    Lokalizacja: Lublin
    Pomógł: 23

    Reset podciągnięty do VCC?
    Zasilanie dobrze połączone i filtrowane?
    Zasilacz "wydolny"?

    ------------------------ [ Dodano po: 3 minutach ]

    Zastosuj debuger diodowy, aby ustalić czy procesor/kod w ogóle działa, przy braku efektu na wyświetlaczu.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sie 2015, o 21:53 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Na powyższe pytania odpowiem 3 x tak. Reset uC podciągnięty, zasilanie i filtracja na 100 % ok.

    Czy moglibyście mi wskazać w którym miejscu kodu najlepiej porobić takie miganie ledem?

    Dobrze rozumuję, że można by było potwierdzić np. poprawną inicjalizację i2C zamiganiem ledem?

    I cały czas zastanawia mnie przykład z wgraniem bitmapy? Bitmapa nie zawsze pokazuje się na oledzie przy on-off-on zasilania. Z góry dzięki za dobre rady dobrych ludzi :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sie 2015, o 22:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    A możesz pokazać schemat lub chociaż kilka zdjęć jak to masz połączone?
    Zasilanie masz z USBASP czy jakiegoś zasilacza, jak to wygląda?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sie 2015, o 18:28 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Fotki i schemacik podrzuciłbym jutro, ale generalnie podłączałem to na zestawie uruchomieniowym ZL2AVR jak również do gotowego pcb, które po prostu miało już wyprowadzenia na pinach i2C. Jeśli chodzi o hardware z mojej strony to posprawdzałem wszystko dokładnie, rezystory na SDA i SCL w zestawie uruchomieniowym 3k3 na moim pcb 4k7. Zasilanie próbowałem z usbasp (tu bitmapa włączy się raz na 5 razy), a z zewnętrznego zasilacza (tzn. impulsowy, stabilizowane 3,3 V + odp. filtracja) praktycznie z rzadka się pojawi.

    Poradzicie w którym miejscu programu zamigotać ledem? Myślicie że sam OLED może nie mieć podciągniętego resetu?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sie 2015, o 20:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Z ciekawości jeszcze raz podłączyłem ten wyświetlacz i zaprogramowałem ATmege328p bezpośrednio tym samym wsadem z tego postu. Uruchomiłem to na zestawie uruchomieniowym ATB, działa z kwarcem 16MHz z 11.0592MHz, nawet bez kwarcu na wewnętrznym oscylatorze RC 8MHz i z fusem CKDIV8 (czyli 8MHz / 8 = 1MHz).
    Jaki razultat?
    A no taki wyśwetla pięknie za każdym razem, bez znaczenia jak szybko wyłączę zasilanie i włączę ponownie. No katowalem na różne sposoby, no uparty, sobie myślę, no nie chce się zepsuć. Na szybko zmontowałem wszystko na płytce stykowej, zasilanie z USBASP, nawet bez kondensatorów, ale poprawnie i co, no tutaj też działa.
    Jaki wnoisek?
    Może faktycznie trafiłeś na jakiś taki egzemplarz tego wyświetlacza, który ma problemy.
    Przychodzi mi jeszcze jeden pomysł do głowy. Zmień fusebity Twojej ATmega328p na wewnętrzny oscylator RC (8MHz czy 1MHz, bez różnicy) i zobacz czy będzie to samo, tak dla sprawdzenia bez kwarcu.
    Czekam na schemat lub zdjęcia, może jednak coś źle robisz?
    Co do kodu, no nie wiem jak Ci pomóc z tą diodą, jeśli sprzęt Ci nie działa.
    Możemy zrobić tak, podeślij mi na priv to co do tej pory napisałeś (main.c i dwa pozostałe pliki do OLED'a) to zobaczę co tam masz.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sie 2015, o 20:59 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2015
    Posty: 252
    Lokalizacja: Lublin
    Pomógł: 23

    Zajrzałem na chwilę na forum i zaraz muszę znikać.

    Coś na temat debugera:
    http://mirekk36.blogspot.com/2014/04/pu ... ednej.html

    Co do tego leda to umieść go na początek w pętli while(), aby zobaczyć, czy nie ma totalnego zwisu.
    Nie wiem jak szybko kręci ci się pętla nieskończona, jeśli wolno,
    to wystarczy zmienna 8 bitowa uint8_t jako licznik (u mnie i).
    Jeśli szybko, to daj unsigned int.
    Licznik liczy na okrągło zwiększając się przy każdym obiegu pętli, po przepełnieniu uzyskuje 0 i przełacza stan diody na przeciwny.
    Przykładowy kod (port/pin sobie sam dobierzesz):

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    W while (1) - pętli nieskończonej:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jak miga, to problem jest po stronie sterowania wyświetlaczem lub samego wyświetlacza.
    Jak się zawiesza musisz wstawić kod debugera do wywoływanej funkcji metodą kolejnych przybliżeń.
    Ale wtedy już tylko włączanie albo wyłączanie diody w zależności od kierunku podłączenia do portu.
    Czyli pułapka programowa wg. podanego linku. Już nie chce mi się klepać kodu... :)

    ------------------------ [ Dodano po: 6 minutach ]

    Jeszcze uwaga, jak uC nie ruszy wcale, to też nie bedzie migała oczywiście.
    Możesz próbować ją sam zaświecić na początek.
    Jak się nie zaświeci, to problem sprzetowy, procek nie startuje.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sie 2015, o 12:17 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Z taktowaniem trochę poeksperymentowałem. Dalej nic. Na wewnętrznym RC dalej to samo. Wstawiłem w while miganie diody i miga więc chyba wyświetlacz?

    anshar masz paczkę na priv. Looknij proszę, najwyżej kupię nowego oleda :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2015, o 00:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    jacky_cy napisał(a):
    anshar masz paczkę na priv. Looknij proszę, najwyżej kupię nowego oleda :)


    Myślę, że to nie wina wyświetlacza.
    Poczytaj na priv ;)


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sie 2015, o 15:41 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Dzięki za pomoc anshar ! Wszystko hula !



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sie 2015, o 15:45 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Drobnostka! Jak to mówi pan Mirek, no to musi działać! ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 wrz 2015, o 15:46 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Kurde fajny ten oledzik, ale znowu jakiś babol chyba :lol:

    Nie chciałem zakładać nowego topica więc piszę tu.
    Kombinuję i kombinuję i nic nie wymyśliłem. A chodzi o funkcję drawline...

    Mianowicie kiedy wywołuje sobie ją w mainie wszystko jest ok
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Obrazek
    do czasu...

    zauważyłem, że kiedy różnica między współrzędnymi x obu punktów jest mniejsza od 20 to linia rysowana jest zawsze od współrzędnej (0,y... nawet kiedy argumenty wywołanej funkcji drawline prezentują się w ten sposób:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    to efekt na wyświetlaczu wygląda w ten sposób:

    Obrazek

    Jest to na tyle problematyczne, że przez to nie mogę stworzyć pionowej linii w dowolnym miejscu oleda, a co za tym idzie nie mogę narysować prostokąta, a co za tym idzie nie mogę zmienić wielkości czcionki !

    Z tego co porównywałem to funkcja wygląda identycznie jak ta co miał ją Mirek w poradniku... W sumie widać, że działa ale pionowej linii w dowolnym miejscu narysować nie sposób...

    funkcja drawline:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    z góry dzięki za pomoc w wyłapaniu babola :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 wrz 2015, o 16:48 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 10 sty 2014
    Posty: 447
    Lokalizacja: DKL
    Pomógł: 53

    @jacky_cy, funkcja jest raczej ok, wygląda tak samo jak moja.
    Pokaż jeszcze jak masz zapisane makro swap()


    Autor postu otrzymał pochwałę

    _________________
    Migracja z punktu B do punktu C
    Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 wrz 2015, o 17:18 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 wrz 2015, o 18:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Powinno być:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 wrz 2015, o 19:57 
    Offline
    Użytkownik

    Dołączył(a): 27 maja 2014
    Posty: 75
    Pomógł: 0

    dzięki wielkie anshar po raz kolejny ratujesz :)

    piwko dla ciebie !!!



    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: 22 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO