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



Teraz jest 1 gru 2024, o 04:21


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
Avatar użytkownika

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

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: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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 ]
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
Avatar użytkownika

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

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 ]
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 ]
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 ]
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 ]
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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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 1 gość


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