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



Teraz jest 10 mar 2025, o 20:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
 Tytuł: Enkoder + AVR.
PostNapisane: 10 paź 2016, o 16:46 
Offline
Nowy

Dołączył(a): 10 paź 2016
Posty: 17
Pomógł: 0

Witam wszystkich bardzo serdecznie !
Potrzebuje zliczać impulsy z enkodera optycznego.
Problem jest w tym, że enkoder wysyła 500 imp/obrót, a silnik kręci się z prędkością 3500obr/min.
Korzystam z arduino UNO.
W przerwania zlicza mi bez najmniejszych problemów kiedy kręcę ręką, a kiedy uruchomie silnik na nominalnych obrotach już moje arduino wariuje.
Potrzebuje rozwiązania, aby zastosować jakiś scalak, mikro kontroler, który wyśle impuls po uzyskaniu odpowiedniej liczby obrotów, lub zredukuje liczbę impulsów.
Z góry dziękuję za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 17:08 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Też jestem ciekawe jak coś takiego się realizuje.
Jeszcze zależy czy to ma być tylko taki encoder do liczenie obrotów w jedną stronę, czy z dwoma sygnałami przesuniętymi w fazie.

Można zastosować szybszy procek, ale to trochę przerost formy.
Można by zaprogramować jakiś układ kombinacyjny i na nim licznik (preskaler) i po osiągnięciu jakiegoś poziomu generował by impuls na wyjściu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 17:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2016
Posty: 258
Lokalizacja: Norwegia
Pomógł: 16

Silnik kręci się 3500 obr/min co daje około 58,4 obr na sek. enkoder generuje 500 impulsów na obrót czyli 500 * 58,4 = 29,2KHz. Taką częstotliwość masz na wyjściu enkodera przy podanych przez Ciebie obrotach silnika. Taka częstotliwość impulsów jest do policzenia bez problemu. Jakiego rodzaju enkodera używasz? Może impulsy na wyjściu są tak zniekształcone że nie da się ich liczyć bez wstępnej obróbki....

_________________
SP2LUB - LA1BUA



Ostatnio edytowano 10 paź 2016, o 18:23 przez SP2LUB, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 17:22 
Offline
Nowy

Dołączył(a): 10 paź 2016
Posty: 17
Pomógł: 0

Jest to enkoder re30-2.
W jaki sposób to policzyłeś ? Mi wychodzi 3500/60 = 58.33 czyli 59*500 = 29166 Hz= 29.166 Kh.
Zapomniałem dodać, że jak liczę w przerwaniu, to gdy kręcę ręką 500 imp = 1 obrót, natomiast przy uruchomieniu przy nominalnych obrotach już gubi impulsy.
Jest przekładnia na silniku 10:1 i za przekładnią koło pasowe. w ręku 5000 imp = 1 jeden pełny obrót, w "automacie" 5000imp = 1,3 obrotu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 17:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2016
Posty: 258
Lokalizacja: Norwegia
Pomógł: 16

Tak przepraszam, przewalił mi się przecinek oczywiście... to jest 29KHz :) czyli nawet nietoperz to policzy :)

_________________
SP2LUB - LA1BUA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 17:29 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Można by timer w procesorze taktować encoderem i np. co setny impuls powodowałby przerwanie.
Wtedy to już będzie tego naprawdę mało.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 17:35 
Offline
Nowy

Dołączył(a): 10 paź 2016
Posty: 17
Pomógł: 0

To dlaczego moje arduino jest słabsze od nietoperza ? :(
ciamciak, ciekawe to co mówisz, ale jak to zrealizować(jest laikiem).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 17:50 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Nigdy tego trybu nie używałem i nie wiem jak to ustawić w arduino, ale w atmega328 można sobie wybrać z czego ma być taktowany timer. Może to być generator procesora, zewnętrzny kwarc, lub jakiś sygnał zewnętrzny z Pinu oznaczonego T0 lub T1.:
http://www.atmel.com/Images/Atmel-8271- ... G1.1188844

Jednak warto by było przyjrzeć się tym przebiegom z encodera, bo 30KHz rzeczywiście nie wygląda jakoś strasznie.



Ostatnio edytowano 10 paź 2016, o 18:23 przez ciamciak, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 18:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2016
Posty: 258
Lokalizacja: Norwegia
Pomógł: 16

Jeżeli obecnie Twój arduino się gubi, to znaczy że dostarczane impulsy przy większej częstotliwości niż kręcenie ręką są dla niego nieczytelne. Jeżeli możesz, pokaż proszę jak podłączasz enkoder. Częstotliwość z jaką mamy tu do czynienia jest mała, więc zapewne możliwości liczenia tego jest co najmniej kilka sposobów... Pokaż jak go podłączasz.

_________________
SP2LUB - LA1BUA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 19:57 
Offline
Użytkownik

Dołączył(a): 09 paź 2016
Posty: 71
Lokalizacja: Olsztyn
Pomógł: 1

Czy to taki enkoder ?(inkrementalny):
http://www.wobit.com.pl/produkty/786/en ... entalne-re

Zwróć uwagę na poziom napięcia na wyjściu. Przy wolnych obrotach może być ok, przy wyższych za niskie. Wynika to z czasu oświetlania diody. Trza by to zmierzyć i ew. jakiś wzmacniacz dać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 22:07 
Offline
Nowy

Dołączył(a): 10 paź 2016
Posty: 17
Pomógł: 0

Tak to ten enkoder, ale używam tylko sygnału A i reakcja na zbocze opadające.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2016, o 23:00 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Sprawdź jakie są rzeczywiste poziomy tych sygnałów.
Dobrze by było obejrzeć zbocza na oscyloskopie, przy pełnej prędkości.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 02:07 
Offline
Użytkownik

Dołączył(a): 09 paź 2016
Posty: 71
Lokalizacja: Olsztyn
Pomógł: 1

edzio004 napisał(a):
używam tylko sygnału A

Niezależnie czy kanał A, B czy index, zasada jest taka sama.
Jeśli jest za niskie napięcie, to nie ma stanu wysokiego, więc i nie wykryje opadającego zbocza.
ciamciak napisał(a):
Dobrze by było obejrzeć zbocza na oscyloskopie, przy pełnej prędkości.

Nie każdy ma skopa. Oczywiście tu można użyć np. winskopa + dzielnik napięcia dla ochrony wejścia mikrofonowego.
Do ok 20 kHz powinien łapać. Gdyby przy pełnej prędkości nie łapał, można użyć sygnału index'u - 1 imp/obr.

Można też użyć najprostszego tranzystora, np. BC547, dla wzmocnienia sygnału. Baza do wyjścia enkodera, 5V przez opornik 5 kOhm do kolektora, wyjście emitera do Arduino.
Lub: Baza do enkodera, emiter do masy, zasilanie 5V przez opornik do kolektora i od niego do Arduino.

Edit:

Jeśli masz przełożenie w górę ( 1:10 -jeden obrót napędu, 10 na odbiorze ), to masz prawie 300kHz. Winskop nie da rady, jeśli nie masz normalnego oscyloskopu. Wtedy użyć indexu - będzie 3kHz.

Edit:

Sorki. Nie 3 kHz a niecałe 600 Hz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 12:25 
Offline
Nowy

Dołączył(a): 10 paź 2016
Posty: 17
Pomógł: 0

Niestety oscyloskopu nie posiadam.
3500 obr/min to obroty wirnika silnika, na którym zamontowany jest enkoder.
Wyjścia indeks niestety nie mam, wersja 30-2 :(.
sposób z tranzystorem nie pomógł.
Zasilanie enkodera filtruję równolegle wpiętym ceramikiem 100 nF oraz elektrolitem 2.2 nF. obudowa silnika podłączona do masy.
natomiast wyjście A próbowałem poprzez sposób z tranzystorem, szeregowo rezystor 2.7 kO oraz na pusto- brak różnic.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 12:28 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

A na woltomierzu jaki jest sygnał (pewnie będzie trudno wcelować w 1/500)?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 14:51 
Offline
Użytkownik

Dołączył(a): 09 paź 2016
Posty: 71
Lokalizacja: Olsztyn
Pomógł: 1

Można i zmierzyć na obrotach, sygnał będzie jak PWM 50%. Razy 2 i wynik.
Czy obroty silnika były sprawdzane w inny sposób? Bo już spotkałem się z niezgodnością między tabliczką znamionową a rzeczywistością.



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: 16 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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