Strony

środa, 16 marca 2016

ENKODER obrotowy od podstaw

Witam,

To już kolejny poradnik w którym przewija się tematyka enkoderów, tyle że tym razem nie przewija się ale w końcu uznałem, że nadszedł czas aby zająć się tym od podstaw i zakończyć spreparowaniem jakieś fajnej i porządnej biblioteki do obsługi i to różnych enkoderów na potrzeby oczywiście języka C. Okazuje się, że aby porządnie obsłużyć enkoder trzeba się zmierzyć nie tylko z oprogramowaniem ale też z ?...... zzzz elektroniką! ;) wiem wiem - niektóre osoby się uśmieją w tym momencie bo powiedzą - jaki tam kod, byle kilka linijek wystarczy i już będzie działać, a elektronika ? jakaż to elektronika do enkodera - bez przesady. A jednak postaram się wam udowodnić, że z pozoru błaha sprawa jak enkoder wymaga jednak sporej uwagi jeśli chodzi o kod (o dobry kod) i poprawne działanie w każdych warunkach. Przy czym pokażę wam co mam na myśli, pisząc o poprawnym działaniu enkodera wg mnie. Postaram się również udowodnić, że ważny jest również sposób elektronicznego dopasowania sygnałów z enkodera na potrzeby samego mikrokontrolera. Dowiesz się także - co to znaczy efekt "Opery SYDNEY" z Australii :D ... mam nadzieję, że da to każdemu sporo do myślenia ale też pozwoli spojrzeć nieco z innej strony na tak niby proste i popularne enkoderki.




Poniżej cały cykl filmików, na ten temat - mam nadzieję, że uda mi się go zamknąć prezentacją stworzonej już i świetnie działającej biblioteki "MkEncoder" ;)













- atomowe podejście do odczytu zmiennej enco_cnt !






Kolejne odcinki już tylko dla dociekliwych i tych, którzy lubią szczegóły a także różne moje dodatkowe uwagi, podpowiedzi i wtrącanie czasem innych (mam nadzieję) równie ciekawych tematów, które ot tak ... przychodzą mi do głowy w trakcie ... np będzie na temat optymalizacji pamięci RAM dzięki Eclipse Gadget ;)




;)

38 komentarzy:

  1. Super, na to czekałem! :-)

    OdpowiedzUsuń
  2. Przyda się jak smalec z gęsi do smażenia, zdrowo i ekologicznie ,nie trzeba rafinować tak jak oleju roślinnego benzyną ekstrakcyjną.
    Takie miałem odległe skojarzenie odnośnie enkoderów :) Brawo i dziękuję za tę wiedzę bo napewno się przyda.
    Wojtek.K

    OdpowiedzUsuń
  3. Właśnie ostatnio wziąłem do ręki swój projekt elektroniczny z 2014-go odgrzebany na dnie szafy i tak sobie pomyślałem, że moja obsługa enkoderka troszkę niedomaga. A tu proszę!

    OdpowiedzUsuń
  4. Ooo!.. Mirek nieogolony...

    OdpowiedzUsuń
  5. A gdzie misio??? Może by zasiadł z boczku jak to było przy OLED-ach

    OdpowiedzUsuń
    Odpowiedzi
    1. Też mi zabrakło MIS(I)O'a ... ale kto wie czy nie pojawi się pod koniec na gościnnych występach.

      Usuń
  6. Super cykl poradników się zapowiada:) Czekam na dalsze odcinki:)

    OdpowiedzUsuń
  7. Interesujący temat. Z niecierpliwością czekam na kolejne odcinki. :)

    OdpowiedzUsuń
  8. Kiedy będzie cz.2,3,4,5?

    OdpowiedzUsuń
    Odpowiedzi
    1. spokojnie ... powoli, a wszystko będzie ;) cierpliwości

      Usuń
  9. Panie Mirku. Świetna robota. Nareszcie ktoś podszedł do tematu kompleksowo. Obecnie korzystam z rozwiązania dostępnego na Niemieckim forum:

    http://www.mikrocontroller.net/articles/Drehgeber

    Jest całkiem niełe i działa w kilu moich przemysłowych aplikacjach. Z tego co pamiętam to Pan też z niego korzystał. Jeżeli to rozwiązanie, które opisuje Pan teraz jest lepsze to wspaniała wiadomość. Czekam z niecierpliwością na kolejne odcinki.
    Pozdrawiam
    Andrzej

    OdpowiedzUsuń
    Odpowiedzi
    1. Może nie tyle lepsze ale alternatywne i nie mniej skuteczne. No może czasem okazać się wygodniejsze bo nie trzeba timera sprzętowego tracić że tak powiem. Za to sprzętowe dopasowanie enkodera do procka też będzie można wykorzystać do tego z niemieckiej strony ;) .... myślę, że wiele osób się zdziwi - ile wad ma popularny schemat podłączania enkodera do procka.

      Usuń
  10. Faktycznie, spotykana w sieci metoda podłączania enkodera nie jest do końca dobra. Użycie pojemności i to takiej dużej jak 100n powoduje,że przy szybszym kręceniu osią enkodera nie ma możliwości zliczania kroków. Kiedyś spotkałem się w service manualu urządzenia audio, że użyto kondensatora 10n ale efekt braku reakcji na szybsze kręcenie osią występował. Mam przyjemność używać to urządzenie na przestrzeni wielu lat. Projektanci postarali się tak przygotować procedury obsługi enkodera, że nie ma możliwości pomyłki zliczania ani określania kierunku obrotu nawet gdy enkoder zużył się mechanicznie. Po prostu układ nie reaguje.

    OdpowiedzUsuń
  11. Myślałem, że zasiądę do cz.3 ale jeszcze "nima";( No nic, to idę dalej niezłomnie kaleczyć swój C ;)

    OdpowiedzUsuń
  12. Oczywiście na wstępie także uważam,iż poradniki są ciekawe. Chciałbym jednak podzielić się metodą podłączenia omawianych Enkoderów: otóż np.firma Technics w sprzęcie Audio podłączała niegdyś w taki sposób,że: Piny (kanałów) poprzez rezystory 100k łączono z Vcc (ok.5V) a poprzez kondensatory 100p do masy. Problemów ze zliczaniem nie było. Osobiście także to stosuję i np.w oparciu o program na ATMega644, z wykorzystaniem PCINT działa bez zarzutów. Bibliotekę do obsługi enkodera posiadam od Mirka K, (udostępniona przy omawianiu callback-ów), po drobnej modyfikacji... pozdrawiam

    OdpowiedzUsuń
  13. Właśnie szukałem informacji na temat enkoderów i trafiłem na Twojego bloga - dzięki za poradnik.

    OdpowiedzUsuń
  14. Fajny poradnik, szkoda tylko żeby skorzystać trzeba kupić zieloboka ;)

    OdpowiedzUsuń
    Odpowiedzi
    1. Ach rzeczywiście, rzeczywiście "trzeba kupić" zielonbooka ;) .... a bez zakupu nie da rady hmm? ;) Sorki ale jak takie bzdury słyszę to mi sam się uśmiech pojawia na twarzy. W poradniku mówiłem, że polecam kupić to będzie łatwiej zrozumieć. Rozumiem, że nie chcesz kupić a jednocześnie boisz się sam pomyśleć ? ;) no .... nie jest to postawa godna pochwały delikatnie mówiąc.

      Usuń
    2. Spoko, da radę, ale sugestie są wyraźnie :) nie ma co się krygować. Nieodłączne - tylko musimy jeszcze zainkludować jedną małą biblioteczkę z greenbooka i wszystko jak za dotknięciem czarodziejskiej różdżki zaczyna śmigać - kurka wodna, chyba i ja w końcu kupię zieloną książeczkę :) bo te najlepsze sposoby teraz muszę wymyślać sam.

      Usuń
    3. Ale no panie kolego ;) a dlaczego miały by być niewyraźne? Czy ja kiedyś kryję się z tym, że przy okazji własnych poradników promuję produkty i książki Atnela ? Nigdy się z tym nie kryłem i z pełną odpowiedzialnością je polecam bo wiem co sądzą o nich czytelnicy. Ale na pewno nigdy nie mówię, że zakup książki jest KONIECZNY i tylko o tym napisałem wyżej ;) ...

      Za to tu trafiłeś w sedno - bo bez takiej książki trzeba albo wymyślać pewne sposoby samemu albo szukać ich w internecie albo w innych książkach - i wtedy i tak sprowadzi się to do jednego - do poświęcenia sporej ilości czasu - nieprawdaż? A że czas to pieniądz - to chyba każdy wie ;)

      Usuń
  15. Fajnie, że jest 6 odcinek. W takim razie piątkowy wieczór mam zarezerwowany jako ATOMIC BLOCK;)

    OdpowiedzUsuń
  16. Mogę się mylić bo jeszcze nie testowałem, ale zastanawiam się czy w funkcji ENCODER_EVENT() ten #else po #if USE_INT_IRQ == 0 nie zakłóci działania programu. Jeśli będziemy korzystać z przerwań to flaga enco_flag się nie wyzeruje przy pokręcaniu enkoderem.

    OdpowiedzUsuń
    Odpowiedzi
    1. Masz 100% racji ;) zobaczysz, że będzie mowa o tym w kolejnym poradniku. A mnie cieszy to, że tak uważnie obserwujesz .... ba, analizujesz poradniki ... i widzisz na bieżąco moje wpadki i dajesz znać! ;) to miłe

      Usuń
  17. Czy ta biblioteka będzie gdzieś udostępniona ? ;)

    OdpowiedzUsuń
    Odpowiedzi
    1. Przecież jest, w poradnikach video.

      Usuń
  18. Mirku, wstawisz do sklepiku Atnela sprawdzone enkodery?
    Zakupiłem jakiś badziew na znanym portalu aukcyjnym i nadają się one tylko do wyrzucenia :/

    OdpowiedzUsuń
    Odpowiedzi
    1. Jasne - dobrze, że mi przypomniałeś - bo zapomniałem ... dzięki

      Usuń
    2. Zatem czekam na enkoderki :)

      Usuń
    3. Witam, kiedy enkodery będą w sprzedaży?

      Pozdrawiam.

      Usuń
    4. Kurczaki ... normalnie sam wkurzony jestem bo dostawca jeszcze tych modeli nie ma, ale ponoć do połowy kwietnia mają sprowadzić, wtedy też pojawią się od razu u nas

      Usuń
  19. Czy biblioteka będzie do pobrania ze strony? Swoją drogą gratuluję pracy włożonej w poradniki. Widać, że wszystkie minusy jakie przeszkadzały mi na początku uległy poprawie.

    OdpowiedzUsuń
  20. Ten biały Mirek wygląda na screenach trochę jak Arnold Boczek :)

    Ale poradnik świetny ,zwłaszcza że temat nie łatwy. Dobra robota Mirku!!! :)

    OdpowiedzUsuń
  21. Jeśli podkreśla błędy których nie ma można wybrać na chwilę inny procek we właściwościach, skomponować i ponownie wybrać nasz procek. U mnie pomaga. Pozdrawiam panbosman

    OdpowiedzUsuń
  22. Dużo na początku o enkoderach ale moim zdaniem nie ma wyjaśnienia co on robi w układzie elektronicznym czym steruje, jakie urządzenie steruje jakie ma zadanie do wykonania i w jakim urządzeniu.ja np nie wiem.

    OdpowiedzUsuń
  23. Poradnik wyśmienity, jak wszystkie dzieła p. Mirka. Tylko, niestety, nie mogę nigdzie znaleźć omówionej w nim biblioteki. Podany w poradniku link kieruje do zupełnie innej, starszej biblioteki, omówionej w drugiej części poradnika o callbackach z 2013 roku, która nie działa na przerwaniach INTx lub PCINT, za to zajmuje jeden timer sprzętowy. Wobec tego mam pytanie: gdzie szukać biblioteki z 2016 roku?
    A z racji daty pytania, Panu, panie Mirku i wszystkim miłośnikom programowania serdeczne życzenia wszystkiego najlepszego, udanych projektów i równie wyśmienitych poradników w nowym, 2017 roku.
    Pozdrawiam. Tomek1955

    OdpowiedzUsuń
  24. W końcu istnieje ta biblioteka z ostatniego poradnika?

    OdpowiedzUsuń
    Odpowiedzi
    1. już niedługo będzie do zakupienia w: www.sklep.atnel.pl

      Usuń
  25. Super cykl o enkoderach przyda się w końcu spróbuje zrobić elektroniczny wskaźnik przesuwu na śróbie pociągowej :) WIELKIE DZIĘKI MIREK TWOJE WYKŁADY SĄ SUPER!!!!!

    OdpowiedzUsuń