Prośba o wykonanie testu enkodera.

To nie jest miejsce tylko dla początkujących, wszyscy jesteśmy w czymś początkujący i wymieniamy się doświadczeniami.
Awatar użytkownika
dambo
Expert
Expert
Posty: 645
Rejestracja: czwartek 17 mar 2016, 17:12

Re: Prośba o wykonanie testu.

Postautor: dambo » środa 01 lut 2017, 13:02

Faktycznie masakra z tymi odczytami. Pamiętam jak u kumpla w mikrofalówce był rozjechany enkoder i trzeba było go sposobem dociskać itp, żeby działał poprawnie.
Są dostępne jakieś zamienniki mechanicznych enkoderów w podobnych rozmiarach itp? Jak szukam to mam tylko do silników. Ciekawi mnie przeskok cenowy, no i skoro nie znalazłem niczego to dostępność też mniejsza.
Nowy blog o tematyce embedded -> https://www.embedownik.pl/

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: Prośba o wykonanie testu.

Postautor: SuperGość » środa 01 lut 2017, 14:52

szukaj enkoder z czujnikiem halla

Awatar użytkownika
Antystatyczny
Geek
Geek
Posty: 1168
Rejestracja: czwartek 03 wrz 2015, 22:02

Re: Prośba o wykonanie testu.

Postautor: Antystatyczny » środa 01 lut 2017, 18:05

tasza pisze:w sumie to już sama nie wiem czy kolejny offtopic czy ostrzeżenie dla innych - encoder, ale zaniedbany, wyleżany w pudełku i mający kontakt z odrobiną wilgoci przez spory czas (vide co pisał Antystatyczny - zaśniedziałe styki)


Żaden offtopic - to jest ważna sprawa, gdy zaczynamy zabawę z enkoderem mechanicznym.

tasza pisze:bo tak wygląda w miarę na żywo, na analogodiscoveroskopie, możliwe że trigger nieumiejętnie ustawiłam, nie zmienia to faktu że .... to jest jakaś masakra normalnie https://youtu.be/h4mzjrOxHjcno i jeszcze jedna sprawa sytuacyjna - nie mam odpowiedniej gałki, więc ośkę kręciłam palcami, aby płytka stykowa nie latała po stole - czasem dociskając to do blatu - to ostatnie sekundy filmy - kształt przebiegu zupełnie inny, styki robią co chcą....


Faktycznie, masakra. Jeśli da się go rozmontować, potraktuj go jakimś spray'em "kontakt", ale zapewne znasz ten sposób.

tasza pisze:@Antystatyczny - no serio szacunek, że twój program w ogóle z tym moim enco. ruszył, bo przypadek zaiste trudny mi się trafił.


Działa jak działa... Dopiero zacząłem jakąś poważniejszą zabawę z enkoderem. Pewnie da się to napisać znacznie lepiej.

tasza pisze:Sorki, ale temat parkuje do czasu zdobycia nowego (sklepowego) encodera, jak na Górzystej w Ostr. nie będzie, to Wol. i Warszawa, ale w weekend dopiero....


Spokojnie, muszę dokończyć obsługę switcha i dorzucić RTC, więc mam przy czym dłubać.
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: Prośba o wykonanie testu.

Postautor: tasza » środa 01 lut 2017, 22:39

dobry wieczór

no trochę chyba opanowałam to nieszczęście zaśniedziałe, sztuki to on z sygnałami wyczynia nieziemskie...

btw: i nie da się go rozmontować, ponieważ spodnia płytka jest zamocowana na takich czterech plastikowych wystajtkach, na gorąco rozciapanych, jak się to ruszy to koniec

aktualnie mam tak :arrow: https://youtu.be/rdjK2A075oo i nie jest w/g mnie tragicznie

na kanale C1 to testowy sygnał, który sobie na boku generuję (pin D.7), a który mi pokazuje wykrycie opadającego zbocza z linii A enkodera, a zarazem otwarcie i potem zamknięcie okna czasowego, w którym interesują mnie próbki (a właściwie jedna) z linii B, co się dzieje na tej linii, pokazuje kanał C2 oscyloskopu

skoro napisano mi, że mogę modyfikować no to się zarządziłam trochę:
po pierwsze oddzielone są handlery obsługujące obrót w prawo i lewo
po drugie ISR timera jest wołany o wiele częściej niż w pierwotnej wersji, dobierałam na tzw. czuja (będę chciała wrócić do oryginalnej wartości, bo ISR napędza też mux LED-ów), wartość debounceCntr też eksperymentalnie dobrane na zasadzie - aż przestanie wierzgać po wyświetlaczu

moje rozumowanie było takie: najczęściej jak się da próbkować linię A enkodera, aby nie zgubić żadnego opadającego zbocza na tej linii.
jak już udało się ten moment złapać - chwilkę później (następne wywołanie ISR-a) - zbadać stan linii B i stosownie ustawić flagi sterujące handlerami
potem odczekać pewien czas, aż zakłócenia na obu liniach się uciszą, zresetować automat i zaczaić się na następne zbocze - czyli tyknięcie enkoderem.
to okno ochronne że tak nazwę - musi być na tyle małe, aby nie zgubić kolejnego tyknięcia gałką, ale na tyle długie, aby przykryć zakłócenia /drgania/ z pierwszej (A) linii, które mogłyby być potraktowane jako to pierwsze /krytyczne/ opadające zbocze

załączam podfolder src.zip z moimi wypocinami, będę to jeszcze poprawiać (powrót do CR0 = 53) no i chce sprawdzić, jak zadziała na innym enkoderze jak tylko takowy zdobędę
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

Awatar użytkownika
Antystatyczny
Geek
Geek
Posty: 1168
Rejestracja: czwartek 03 wrz 2015, 22:02

Re: Prośba o wykonanie testu.

Postautor: Antystatyczny » środa 01 lut 2017, 22:44

Super, dzięki. Jutro to przemagluję, bo dzisiaj już rzuciłem ostatnie moce przerobowe na czynności zwane praniem. A co do TCCR0 = 53;... Nie upieram się przy 200Hz. Zasadniczo może być i 2kHz, byle program się wyrabiał.
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.

Awatar użytkownika
Antystatyczny
Geek
Geek
Posty: 1168
Rejestracja: czwartek 03 wrz 2015, 22:02

Re: Prośba o wykonanie testu.

Postautor: Antystatyczny » czwartek 02 lut 2017, 20:31

No dobra, przejrzałem zmieniony kod i od razu nasuwa mi się pytanie: To jest obsługa pełnokrokowego enkodera, tak? Taką obsługę napisałem kilka lat temu i ona ostatecznie nie okazała się dobra. Fakt, nie miałem debouncu, za to miałem sprzętowe wygaszanie zakłóceń (również kiepskie). Za chwilę przetestuję ten soft w boju i dam znać. Aha, co do osobnych handlerów... Nie jestem pewien, czy w budziku będzie to słuszne podejście. Już wyjaśniam dlaczego:

Wchodzimy w ustawianie czasu, a zatem: godzina plus i minus, potem minuta plus i minus. Następnie ustawianie daty: rok plus i minus, miesiąc plus i minus oraz dzień plus i minus. Na koniec jeszcze budzik: godzina plus i minus oraz minuta plus i minus. Pomijam już regulację jasności świecenia wyświetlacza, wybór trybu pracy budzika (codzienny / jednorazowy / w dni robocze). Do każdej regulacji dwa callbacki... Namnożą się niczym grzyby po deszczu :)

Ostatnio preferuję inny sposób budowania handlerów. Załóżmy, że mamy klawiaturę z 16 przyciskami. Gdyby iść Twoim sposobem, musiałbym pod każdy przycisk zapiąć osobny handler. Mój sposób jest taki, że wywoływany jest zawsze jeden handler, a do niego przekazywana jest informacja o numerze wciśniętego przycisku.

Oczywiście zdaję sobie sprawę z tego, że mój sposób też ma swoje wady. handler musi być rozbudowany i przez to dłużej się wykonuje. Przy wielu handlerach stają się one malutkie i szybkie.
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: Prośba o wykonanie testu.

Postautor: tasza » czwartek 02 lut 2017, 20:57

rozdzielenie handlerów do zdarzeń to już sprawa gustu....pisząc w Delphi / Lazarus zawsze wolałam wiele atomowych zdarzeń niż jedno mega, z którego musiałam pracowicie wydumać co się tam stało....no ale to sprawa osobnicza, każdy pisze jak chce, najważniejsze aby działało jak należy, końcowy użytkownik nie doceni pewnie kunsztu programistycznego i filigranowości rozwiązań, a będzie się wkurzał, że wciska guzik a dzieje się co innego niż w instrukcji lub nic się nie dzieje...przecież piszemy dla innych nie dla siebie, no tak?
sprawę edycji sek/min/godz swego czasu rozpracowałam na `51 ( dokładnie na 89c450 ), nie wiem czy coś to pomoże, można zerknąć: http://bienata.pl/vfd-clk.php możliwe że to i koślawe jest, ale ponoć jakoś działa ( znam dwa klony tego projektu )

zabawa w enkoder była kształcąca jak dla mnie, zatem dziękuje za challenge
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)


Wróć do „Podstawy elektroniki - teoria i praktyka”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości