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 11 mar 2025, o 13:09


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 2 lis 2019, o 07:41 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Witam
    Mam silnik połączony z enkoderem 600 kroków
    Po zliczeniu od 0 do 9 kroków (1 sekunda) silnik się zatrzymuje.
    Jak spowodować żeby sekundy odliczały się cyklicznie?
    Używam zegara DS3231

    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: 2 lis 2019, o 12:13 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27363
    Lokalizacja: Szczecin
    Pomógł: 1043

    Kolacz napisał(a):
    Z tego fragmentu kodu, bez szklanej kuli, nie da się pomóc. Administrator powinien kasować takie posty.


    No powiem szczerze, że trudno się z tym nie zgodzić ...

    więc proszę autora o jakieś uzupełnienie rzeczowe - jeśli wątek ma wisieć

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 lis 2019, o 17:24 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27363
    Lokalizacja: Szczecin
    Pomógł: 1043

    Tu jest BABOL - zaznaczyłem na czerwono!
    Lu_let napisał(a):
    EIFR |= (1<<INTF0);     // kasowanie flagi za pomocą jedynki



    akurat takie kasowanie trzeba koniecznie robić TAK

    Kod:
    EIFR = (1<<INTF0);     // kasowanie flagi za pomocą jedynki

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 lis 2019, o 17:27 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Rzeczywiście trochę mało napisałem.
    Używam biblioteki MK_ENCODER i DS3231
    Kod z biblioteki DS3231 nie wiem czy powinien być w przerwaniu?
    Po uruchomieniu oś silnika przesuwa się o jedną sekundę i staje.
    Przerwanie co 1 sekundę z DS3231 działa.
    Jak napisać żeby po upływie jednej sekundy (info z DS3231) wykonała się akcja z przerwania itd.
    Chodzi mi o uzyskanie sekundnika.
    Przerwanie:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 lis 2019, o 18:20 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Jeśli dobrze rozumuję to po przerwaniu na INT0 (sygnał 1 sekundy z DS3231) silnik powinien obrócić się o kąt odpowiadający 10 impulsom z enkodera (1/10 z 600). A czy PD7 służy do włączania i wyłączania silnika?
    Wypróbuj taki kod:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 lis 2019, o 18:50 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Obrazek

    Używam sterownika jak wyżej, PD7 służy do zmiany stanu na wejściu PUL
    Przerwanie z DS3231 - INT/SQW przychodzi na PD2 INT0/PCINT 18 (atmega328P)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 lis 2019, o 20:50 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Lu_let napisał(a):
    Używam sterownika jak wyżej, PD7 służy do zmiany stanu na wejściu PUL

    I co wtedy się dzieje? Co jeśli podasz stan "1" = 5V, a co jeśli "0" = 0V na to wejście?

    O ile użycie mikrokontrolera może być trudne ze względu na małą znajomość programowania to możesz napisać algorytm używając pseudokodu i wtedy wszyscy będą wiedzieć co chcesz osiągnąć i podpowiedzą Ci jak to już technicznie wykonać. Na przykład takie coś:
    Po sygnale z RTC (co 1 sekundę) na wejściu przerwania INT0 uruchom silnik wyjściem PD7 ustawiając je w stan X.
    Co 100ms sprawdzaj czy stan zmiennej która przechowuje impulsy z enkodera i jeśli jest więcej niż 9 to zatrzymaj silnik ustawiając na wyjściu PD7 stan Y.


    Autor postu otrzymał pochwałę

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 lis 2019, o 21:02 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2016
    Posty: 114
    Pomógł: 0

    Udało się ruszyć z miejsca.
    Sekundnik pracuje prawidłowo od jakiejś godziny.
    Trwają próby.
    Dziękuję za odzew to motywuje do działania : )

    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.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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