Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 9 lut 2026, o 10:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 5 cze 2013, o 10:30 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Witam, mam problem z odczytywaniem kierunku obrotu enkodera, podczas kręcenia wału niezależnie w jaką stronę, program nie łapie konkretnego kierunku, a ciągle zmienia kierunek, chociaż kręcę ciągle w jedną stronę. Mam taki program:

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


Co zrobić żeby to działało??

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 cze 2013, o 10:38 
Offline
Moderator
Avatar użytkownika

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

miccaldo napisał(a):
Co zrobić żeby to działało??


Np czytać artykuły na moim blogu ;) .... np ten:

http://mirekk36.blogspot.com/2013/04/en ... y-cz2.html

_________________
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: 5 cze 2013, o 15:08 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Ok popróbowałem na tym kodzie, jest lepiej, ale gubi się jeszcze dość mocno. Czy może być to spowodowane tym że kod jest usawiony pod częstotliwość taktowania ~11Mhz? Moja atmega8 chodzi z 8Mhz. Z programu nie dużo zmieniłem, tylko własne ustawienia kanałów, zmieniłem bibliotekę wyświetlacza i parę linijek kodu wysyłających do wyświetlacza wartości po naciśnięciu przycisku enkodera, mój enkoder nie posiada przycisku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 cze 2013, o 18:41 
Offline
Moderator
Avatar użytkownika

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

miccaldo napisał(a):
Czy może być to spowodowane tym że kod jest usawiony pod częstotliwość taktowania ~11Mhz? Moja atmega8 chodzi z 8Mhz.


a co za problem przestawić taktowanie we właściwościach projektu na takie jakie masz w swoim procku ? Toż pewnie że to może być powodem ... albo jednym z powodów

_________________
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: 11 cze 2013, o 21:28 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Witam, podszedłem do tego enkodera z nieco inną, dużo prostszą metodą. Kanał A podłączyłem do INT0, ustawiłem przerwania zewnętrzne wyzwalane zboczem narastającym w celu sprawdzania stanu na sąsiednim pinie PD3, do którego jest podłączony kanał B.
Z tabelki kodu Graya wynika, że przy obracaniu w lewo/prawo, przy zboczu narastającym dla kanału A sekwencje bitowe są odmienne przez co prostą funkcją warunkową mogę sprawdzić kierunek obrotu, a przy okazji w przerwaniu zliczać impulsy. Napisałem kod i wszystko idealnie działało, sprawdzanie kierunków, czy dodawanie licznika w jednym kierunku, a odejmowanie w drugim. Wszystko było ok, do pewnego momentu bo kombinowałem sobie z kodem, i w końcu nagle program przestał działać :shock: nic nie zrobiłem, atmega przestała wykrywać kierunek obrotu :|
Ale już myślę co może być nie tak: jeszcze przed pisaniem tego programu, chciałem sprawdzić czy podczas obracania, sekwencja zmieniających się bitów jest zgodna z kodem Graya, i rzeczywiście tak było. Teraz nie wiem dlaczego, w przejściach brakuje stanu "00", co jak dla mnie może być powodem bo przy kręceniu w prawo, z tego stanu(00), jest zbocze narastające na kanał A, a na kanale B nadal zostaje '0', co program powinien zinterpretować. Co może powodować że na wyjściu enkoder podaje niekompletny kod Graya?

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 cze 2013, o 14:09 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Podłączyłem kondensatory, oporniki ale nadal nie działa.
Z programem Pana SunRiver nie działa raczej dlatego bo ten enkoder podaje na wyjściu tylko impulsy, a nie cały kod Gray'a.
Działało w pełni z tym banalnym programem:

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

Chciałem się również upewnić czy na wyświetlaczu poprawnie wyświetla stan wysoki i niski, no i okazuje się że nie, miernik pokazywał coś innego, a tu zdjęcie:

Obrazek

Na drugim kanale miernik również wskazywał stan niski. Czyli dwa "0", czego wyświetlacz nie chce pokazać. Kombinuje już z tym bardzo długo, ale za nic nie mogę dojść do tego :|



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 cze 2013, o 14:15 
Offline
Moderator
Avatar użytkownika

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

miccaldo napisał(a):
bo ten enkoder podaje na wyjściu tylko impulsy, a nie cały kod Gray'a.


te enkodery obrotowe o których tu mówimy WCALE nie podają żadnego kodu Gray'a - tu kolega coś sobie pokrębasił :( ..... I dlatego przykład który ja pokazywałem, zresztą praktycznie to samo co kolega SunRiver - właśnie zamienia dopiero programowo impulsy z enkodera na kod Gray'a

teraz jaśniej ?

Więc albo masz jakiś przedziwny enkoder (wtedy lepiej zajrzyj do jego noty PDF) albo coś TOTALNIE źle podłączasz lub kompilujesz program.

_________________
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 gru 2013, o 14:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 kwi 2012
Posty: 195
Pomógł: 0

A ja mam pytanie do poradnika :
Jakie zadanie spełnia ta tablica bo nie potrafię tego przeanalizować:
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 gru 2013, o 14:19 
Offline
Moderator
Avatar użytkownika

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

No dzięki tej właśnie tablicy następuje dekodowanie wg Graya

_________________
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 gru 2013, o 15:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 kwi 2012
Posty: 195
Pomógł: 0

A można jaśniej ?? Bo zamiana kodu binarnego na Greay'a i na odwrót wiem jak się robi ( na kartce) ale programowo jak tego dokonać to szczerze mówiąc nie wiem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2013, o 15:19 
Offline
Moderator
Avatar użytkownika

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

kidcowboy napisał(a):
A można jaśniej ?? Bo zamiana kodu binarnego na Greay'a i na odwrót wiem jak się robi ( na kartce) ale programowo jak tego dokonać to szczerze mówiąc nie wiem


Ale pewnie nie zwróciłeś uwagi w poradniku, a wyraźnie mówiłem, że to nie jest tematem poradnika ...

Ok, rozumiem jednak że pytanie tak poza poradnikiem ... to jestem w stanie odpowiedzieć tylko tak...

trzeba sobie wziąć w łapki kartkę i ołówek, rozpisać kilka/kilkanaście możliwych stanów z enkodera po kolei przy jego przekręcaniu w prawo i w lewo a następnie krok po kroku analizować co się dzieje w tym kodzie. Ja to sobie kiedyś zrobiłem i wyjaśniło mi się na moje potrzeby - ale jak myślisz że to pamiętam teraz to się mylisz ;) ....

zresztą podałem też link do strony na której autor też opisuje swoje sposoby i to może być pomocne

ja teraz nie dam rady krok po kroku to opisywać i wyjaśniać - jak już to chyba bym musiał z tego poradnik zrobić i krok po kroku opisać ;) .... tylko że szczerze wątpię żebym taki poradnik zrobił gdyż uważam , że nie jest to zbyt potrzebne, choć może się mylę ... a rozgryzienie tego z kartką krok po kroku może na początku wydaje się trudne ale jak zaskoczysz to sam zobaczysz że nie jest źle ;)

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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