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? 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 18 lip 2025, o 18:46


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 32 ]  Przejdź na stronę 1, 2  Następna strona
    Autor Wiadomość
    PostNapisane: 3 kwi 2012, o 11:09 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2012
    Posty: 193
    Pomógł: 6

    Witam
    Chciałem się dowiedzieć czy ktoś rozgryzał taki temat (obsługa enkodera) w C.
    W internecie udało mi się co prawda znaleźć jakieś biblioteki do obsługi wymienionego w temacie ustrojstwa, jednak nie do końca mnie zadowalają (przeskakują więcej niż 1 przy obrotach)
    Spowodowane jest to jak wiadomo drganiami styków... Póki co nie mam pomysłu jak to rozwiązać dlatego pytam czy ktoś już walczył z enkoderami ;) Jeśli będzie potrzeba mogę wstawić biblioteki które wpadły mi w ręce.

    Pozdrawiam
    KoreX



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 kwi 2012, o 11:21 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    tak poszukaj na forum zamieściłem mój kod do sterowania impulsatorem

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 kwi 2012, o 11:39 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2012
    Posty: 193
    Pomógł: 6

    Szukajka na forum nic nie znajduje... Znalazłem jeden post gdzie wspominasz że do obsługi menu używasz enkodera ale niestety żadnego kodu ani biblioteki



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 kwi 2012, o 12:05 
    Offline
    Moderator
    Avatar użytkownika

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

    SunRiver napisał(a):
    tak poszukaj na forum zamieściłem mój kod do sterowania impulsatorem


    Potwierdzam ;) SunRiver dał fajny przepis .... a szukajka znajduje - tylko wpisz sobie w szukajkę "enkoder" i w jednym z niewielu tematów które się pokażą znajdziesz to czego szukasz ;)

    _________________
    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: 3 kwi 2012, o 12:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2012
    Posty: 193
    Pomógł: 6

    Znalazłem łobuza, wcześniej w szukajke na podforum wpisywałem...
    Dzięki wieczorem wrzucę na testy ale z tego co widzę to na pewno spełni największe oczekiwania;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 kwi 2012, o 23:44 
    Offline
    Nowy

    Dołączył(a): 09 mar 2012
    Posty: 24
    Pomógł: 0

    w mojej aplikacji też wykorzystuje enkoder, a nawet dwa, i wiele innych rzeczy z których jednak enkoder jest urządzeniem najmniej precyzyjnym. Program nie jest dla AVR ale powinieneś wychwycić pewne zależności żeby na podstawie tego napisać własny. Kod jest wykonywany w przerwaniu 128us, czyli faktyczne sprawdzenie stanu odbywa się co 3,2ms. Zrealizowałem to za pomocą automatu stanów, i wyelminowałem pewne niekorzystne efekty jak wystąpienie _|""|_ tylko na jednym kanale.
    INICJALIZACJA
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    KOD
    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  
    PostNapisane: 5 kwi 2012, o 11:42 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2012
    Posty: 193
    Pomógł: 6

    To nasunęło się kolejne pytanie, jak wygląda u Was sprzętowe rozwiązanie enkodera? Jakieś kondensatorki działające przeciwko drganiom styków czy bezpośrednio ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 kwi 2012, o 12:49 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    nie zauważyłem problemów w moim kodzie został zoptymalizowany i skrócony na maxa wystarczy sam enkoder bez niczego :) i działa dobrze

    dla innych szukających link do tematu z kodem: topic817.html

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 kwi 2012, o 12:16 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2012
    Posty: 193
    Pomógł: 6

    Znalazłem w internecie obsługę enkodera pod m32 i przerobiłem na LCD 2x16 oraz ATmega162.
    Jeśli ktoś mógłby zerknąć i podpowiedzieć jakieś ulepszenia/optymalizacje to chętnie poczytam.

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

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


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


    Obsługa enkodera działa rewelacyjnie, jedyne co to nie do końca rozumiem obsługę przerwań/timerow w załączonym kodzie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2012, o 10:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Witam.
    Nie chce zakładać nowego wątku o enkoderach więc napiszę tutaj.
    Korzystając z kodu zamieszczonego na forum przez szanownego kolegę SunRivera chciałbym zliczać impulsy z enkodera.
    Jest mi to potrzebne do późniejszego przeliczania na metry oraz kierunku obrotów silnika.
    Enkoder w silniku to enkoder MEnc 13, 16 Counts per turn, 2 Channels.
    Po resecie procka licznik zlicza sam:/ (silnik w pozycji stop) w górę i tutaj mam problem bo nie wiem dlaczego.
    Także nie zlicza to całkiem płynnie są przeskoki a w tył to czasem w ogóle nie liczy.
    Calutki kod programu:)
    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.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2012, o 10:53 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    problem dotyczy pewnie twojego enkodera , soft był dostosowałem do impulsatorwów/enkoderów
    trzeba zmodyfikować obsługę dopasowując do twojego encodera , który notabene jest zapewne optyczny oparty
    o transoptor szczelinowy ??

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2012, o 11:11 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Mam tylko taką notke katalogową do niego nic więcej.

    Obrazek

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2012, o 11:13 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    za wiele to nie widać :(

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2012, o 11:22 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Może teraz będzie lepiej.
    Obrazek
    Obrazek
    Obrazek

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2012, o 11:29 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    no dobra widzę trzeba będzie zmienić w 2 ch linijkach kawałek kodu , bo troszkę z tym impulsatorem sie będzie kaszanić
    wieczorkiem zapodam ci poprawkę , i sprawdzisz ok ??

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2012, o 11:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Super:)
    Dzięki wielkie:)

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2012, o 11:38 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    niema sprawy tylko mi dostarczą łotry podobny encoder :)

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

    tak w tej chwili mogę ci powiedzieć że trzeba się pobawić przerwaniem od timera bo 1Khz w przypadku twojego encodera będzie powodował
    takie właśnie zachowanie , jak zerkniesz do rozpiski kolegi sirk to zobaczysz o co chodzi , trzeba przesunąć fazy i dostosować
    częstotliwość skanowania bo tu właśnie jest zależność

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 06:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Potrzebuje SunRiver jednak pomocy z tym enkoderem i troszkę objaśnienia.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 07:33 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    No dobra arko pokaż jak podłączyłeś encoder na schemacie, bo mój kod działa poprawnie sprawdziłem na 2ch silnikach z encoderami f-my Pololu
    1 mechaniczny i 2 optyczny , ten optyczny ma podobną charakterystykę do twojego i tu taka kwestia ...

    Twój encoder jest typu OC (open Colector) czyli musisz przez 10K podciągnąć do VCC wyjścia i dopiero je skanować
    na teście kod bez poprawek wydalał na silniku Pololu po podciągnięciu , wcześniej zachowywał się dosyć dziwnie.
    Noty też wynika że masz encoder magnetyczny stąd właśnie to niestabilne zliczanie bez PUL-uP

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

    z tym testowałem teraz
    http://www.skpang.co.uk/catalog/501-met ... p-972.html
    też na magnetyku i jest OK po dodaniu PullUp -a

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 07:41 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Podłączyłem oczywiście bezpośrednio kanały A i B pod PA1 i PA2:/ Zasilanie enkodera oczywiście 5V i zasilanie silnika max24V.

    Obrazek

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 07:42 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    no to dodaj na kanały pullupy 10K do 5V i sprawdź

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 08:03 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    :/ Dalej głupieje - nie bardzo liczy. Może coś z przerwaniami nie teges?
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 08:09 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    dobra ... teraz zajmiemy się fazami

    masz przesunięcie czyli fazaA = 90st , a B 45st
    czyli połowa A --- widzisz to w nocie ??

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 08:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Jest zgadza się:)

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 08:16 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    no to teraz trzeba dopasować ... przesunięcie i tu mały kłopot będzie
    bo chyba jeden pwm nie podoła temu zadaniu
    paskudny masz ten encoder

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 08:21 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Silnik dali mi maxon motor 435394 jeden prawie tys. zł i takie cuś wyszło:)
    Ja to steruje z drivera L293DNE jaki jest na płytce Mirka (oczywiście PWM jest na dwa kanały od razu puszczony).
    Zliczanie w górę jeszcze jeszcze ale w dół jak by gubił kroki i chciał w przeciwną stronę liczyć. Może nie ta częstotliwość próbkowania?

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 08:27 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    nie ... tu jest ok
    tylko nie ta faza po prostu , widzisz trzeba kanał B przesunąć względem A o 45st
    potem będzie można kombinować z OCR2 żeby przy wysokich obrotach nie gubił impulsów

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 09:32 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

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


    Przy obliczaniu pozycji zamieniłem żeby od nowej odejmowało poprzednią.

    Moja euforia nie trwała zbyt długo. Przy małym wypełnieniu 20% dalej świruje.:/

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 09:45 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    no właśnie ...
    tu musisz pokombinować ... tak by dopasować się do swojego impulsatora niestety nie mam dostępu do tego typu , a te niby podobne a jednak
    mają za niskie obroty i z nimi działa...


    Pokombinuj z diff w konkretnych krokach .... powinno załatwić sprawę

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2012, o 11:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Skończyły mi się pomysły i nie wiem jak jak już do tego podejść. Na 100% PWM liczy dobrze a jak zjadę na 25% to głupoty.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    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: 32 ]  Przejdź na stronę 1, 2  Następna strona

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 14 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO