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



Teraz jest 1 mar 2025, o 00:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 34 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
 Tytuł: Encoder
PostNapisane: 4 sty 2015, o 23:09 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Witam, mam mały problem z obsługą enkoderow przemysłowych. Mianowicie mam enkoder 24vdc, 100imp/obr., kanały A i B przesunięte względem siebie o 90st.
Oba kanały mam puszczone przez CNY17 3, (optoizolacja). Z jednej strony 24cdc, z drugiej 5vdc. Podpiolem to do attiny2313 + wyświetlacz 4xled.
Program: z książki bluebok, multipleksowanie i biblioteka z enkodera od P. Mirka.

Ogólnie działa. Ale!
Pojawia mi się problem tego typu, że jak przekręcę enkoderem troszkę szybciej to trace kilka impulsów.
Jeśli zastosuje enkoder o większej ilości impulsów, to będzie jeszcze gorzej.

A sama aplikacja ma wykonywać pomiar odległosci, po prostu enkoder z rolka.

Próbowałem już zmieniać prescaler na 8, częstotliwość 10kHz, ale to nic nie dało (jeśli się nie myślę to przerwanie co 100us).
Może to wina sprzętowa, np optoizolacja jest za wolna.

Proszę o jakąś poradę, jestem początkującym, a chciałbym sobie poprawić działanie jednej maszyny w pracy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2015, o 23:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

I znów mamy prozę zamiast schematu. Jak zrobiona jest ta optoizolacja bo jeśli tak jak myślę to faktycznie może być wolna.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 5 sty 2015, o 10:08 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Przepraszam, ale było już późno. Załączam zdjęcie odręcznego schematu, skóry za jakość. Będę wdzięczny za pomoc. I jestem pełen podziwu dla takich ludzi jak są na tym forum, bo przecież każdy pracuje i ja tez (dom, rodzina itd), a wy jeszcze macie czas żeby pomagać takim jak ja :)
A PAN Mirek to już nie wiem jak to wszystko ogarnia, wydaje mi się że on działa w jakiejś innej czasoprzestrzeni :P

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 5 sty 2015, o 10:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Meloseb napisał(a):
Załączam zdjęcie odręcznego schematu, skóry za jakość.


Teraz jak jest schemat to jest lepiej. Skóry :twisted: Ci nie przetrzepiemy :D

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 5 sty 2015, o 11:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 cze 2012
Posty: 171
Pomógł: 5

Witam,
tylko, że tak jak jest to nie ma prawa działać :). Kolega chyba pominął rezystor w kolektorze.
Pozdrawiam
R.L.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 5 sty 2015, o 12:17 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

A, no oczywiście jest 4,7k do samego 5VDC. Przeoczenie.

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 13:43 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Witam, nie chciałbym nabijać pustych postów żeby nie zaśmiecac forum. Ale ja dalej nic nie wymyśliłem, i nie chce być jakiś nachalny. Może mi ktoś coś pomóc. Czy raczej temat już jest martwy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 14:47 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Witam
Odnośnie rezystora na kolektorze należy go tak dobrać aby prąd Ic nie przekroczył max .prądy tego transoptora w twoim przypadku wychodzi 1mA mam nadzieję iż był on przed załączeniem układu. Zwróć uwagę na rezystor po stronie diody w twoim przypadku prąd diody to 15mA, a z tego co przeczytałem w DataSheet If= 60mA max i to się zgadza ponieważ tam w środku siedzi dioda IR a one trochę więcej prądu potrzebują niż zwykłe ledy także dla 24V i powiedzmy if 50mA to daj koło 470 Ohm.
Miałem coś takiego na jednym encoderze był prawdę powiedziawszy trochę tani i nie spodziewałem się tego że będzie działał sprawnie, może zobacz na innym modelu , co się będzie działo. Trzeba pamiętać iż twoje rozwiązanie z transoptorem odwraca impuls na wyjściu, czyli jak na wejściu diody sygnał wysoki to ten sam sygnał na wyjściu z fototranzystora (kolektor ) będzie niski ściąga do masy, z niskim odwrotnie, mam nadzieję iż to uwzględniłeś w oprogramowaniu ?
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 14:49 
Offline
Użytkownik

Dołączył(a): 01 mar 2014
Posty: 117
Lokalizacja: Kraków
Zbananowany użytkownik

Pomógł: 1

Nie interesowałem się jeszcze biblioteką Mirka, bo kiedy robiłem obsługę enkodera, to nie słyszałem jeszcze o Atnelu;) Rozumiem, że tam działa to tak, że w przerwaniu od przepełnienia któregoś timera sprawdzane są stany wejść? Może mimo, że zwiększasz częstotliwość wystąpienia przerwania, to sytuacja się nie poprawia, bo zawartość przerwania nie wyrabia się do wystąpienia następnego?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 16:36 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 28 gru 2014
Posty: 20
Pomógł: 0

Masz pewność, że enkoder jest sprawny? Spróbuj go jakoś zasymulować np. innym procesorem, i zobacz co się stanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 17:29 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Enkoder jest całkiem nowy. I to nie jakiś tam tanie ździorbi bo kosztowało ok 500zł.
Giciors, ta uwaga odnośnie odwrotnego sygnału to cenna uwaga, nie wziołem tego pod uwagę. Ale jeśli chodzi o samo działanie enkodera jak obracam osią np. pełny obrót na ok 3-5s i powtórze to kilka razy to wszystko się zgadza (1obr 100, 2 obr 200, itd). Natomiast jeśli przyspieszę z obrotami to traci impulsy.
Co o tym myślicie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 17:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Zmień rezystor w emiterze z 4k7 na 1k i zobacz czy jest różnica.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 18:27 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Po zmianie rezystora 4k7, Nadal gubi impulsy, jednak trudno ocenić o ile jest lepiej czy tak samo. Kręce ręcznie i nie wiem przy jakiej prędkości gubi impulsy.
Da coś ta zmiana tego rezystora 1k5 na 470ohm przed diodami, jak twierdzi giciors.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 19:33 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Zobacz w DS, że dla CNY17-3 tabela przełączania jest podawana dla prądu If=10mA ( wtedy częstotliwość przełączania jest max ok.250kHz -tyle to nie da żaden enkoder ). Trzeba tylko uważać przy ustalaniu prądów Ic i If na nasycenie tranzystora ( bo wtedy gwałtownie spadnie częstotliwość przełączania).
Jeżeli manipulacja prądami nie pomoże, to albo trzeba spróbować z innym transoptorem albo najpierw sprawdzić/obliczyć jaką max częstotliwość obsłuży oprogramowanie - może są tam jakieś opóźnienia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 19:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Można spróbować dać zwykły dzielnik napięcia zamiast transoptora i zobaczyć efekty. Od razu wyjdzie czy błąd jest w sofcie czy nie.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 20:01 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Zmiana, tego rezystora 1k5 na 470ohm, nic nie poprawiła. Tylko się strasznie grzały te rezystory.
Jeszcze tylko chciałbym się upewnić z odwróceniem tych sygnałów z optotriaka, przecież to tylko zmienia ewentualnie kierunek obrotów. Jeśli się myślę to mnie poprawcie.

A i zauważyłem że te rezystory 1k5 też się mocno grzeją, czy jak dam o większej mocy to będzie lepiej, bo mam 0,25W.
Już wiem dlaczego taki w miarę zwykły licznik do enkoderów tyle kosztuje, płaci się za wiedzę i nadmiar możliwości.

Dzięki za zainteresowanie, sprawdzeń wszystkie ta uwagi i po dziele się wynikami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 20:17 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Maksymalny prąd jaki możesz puścić to 60mA (470 Ohm daje 51mA) no licząc dalej to moc wydzielana w układzie przy zasilenia 24V to jakieś koło 1,1W, także 470 Ohm na 0,25W będą się grzały (wcześniej też się grzały te 1k5?)
Sprawdź multimetrem (chyba że posiadasz oscyloskop-to już byś wszystko wiedział) jaki jest sygnał z transoptorów , czyli kręcę i spada napięcie na wyjściu.
Patrzę że tam można puścić jakiś prądzik na bazę? ale wszystko zależy od tego co otrzymujesz na wyjsciu. Możesz spróbować innej metody odczytywania enkoderów z tego co pamiętam jest ich chyba 3 a może więcej....? Ja kiedyś 2 sprawdzałem i powiem iż był różnice w działaniu, poszukaj w necie.



Ostatnio edytowano 6 sty 2015, o 20:41 przez giciors, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 20:18 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 28 gru 2014
Posty: 20
Pomógł: 0

Pomierz napięcia DC na tansoptorze w momencie występowania impulsu +24V i przy jego braku, zarówno od strony diody, jak i złącza CE. Zrób taki pomiar dla każdej sztuki. Pokaż wyniki.
Pokaż również pełen schemat, wraz z zasilaniem, oraz fotki tego co podłączyłeś (stykówka? pająk?).
Nie wiem czy kolegom nie przyda się kod źródłowy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 20:19 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

możesz podać typ enkodera jakiś datasheet gdzie znaleźć ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 20:40 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Enkoder MHK40 8/100/1224/BZ/PP

Zasilacz do enkodera to przemysłowy MW MDR 10-24
Układ zasilania z enkoderem i optoizolacją podłączone na stykówce i sygnały pod ciągnięte do płytki PCB z attiny i 4x7 led wyświetlaczem.
Płytka PCB z mikro i led jest zasilana z USB ASP ATNELA.
Kody dam jak będę przy kompie, bo z tableta teraz klikam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 20:45 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

w datasheet podają wszystko dla Ic 20mA także jak dasz swój 1k5 czy 1k powinno być dobrze ale trochę 0,25W za mało powinno być 0,5W. Sprawdzałeś multimetrem co się dzieje na wyjściu ?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 21:41 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

właśnie pomierzyłem, bezpośrednio na diodzie optotranzystora jest 1,2V i zmienia się na 0V. na wyjściu czyli na tranzystorze jest 0 i zmienia się na 5V. Czyli jak dla mnie jest ok. Rezystory zmienię jak kupię o większej mocy.
Jedna sprawa mnie troszkę zastanawia, bo zmierzyłem bezpośrednio na enkod. kanał A i B bez optoizolacji, to mam napięcia ok 21V. A jak podłączę już optotranzystory przez opornik to na jednym z wyjść enkodera jest 21V a na drugim 17V. Ale już na samym opto jest tak jak wcześniej pisałem 1,2V na obu.

------------------------ [ Dodano po: 8 minutach ]

main.h

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


mk_enkoder.c

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



d_led.c


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



Proszę o wyrozumiałość co do kodu, nie umiem jeszcze programować tak jak wy i posługuję się kodem P. Mirka.
Sklejam składam i przerabiam jak umiem i rozumiem.
Być może gdzieś coś źle zrobiłem, zakomentowałem te części kodu których nie potrzebowałem.

Jest możliwe że oba timery sobie przeszkadzają?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 22:13 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Korzystając z kodu na jakiś procesor w szczególności bawiąc się w przedziały czasowe powinieneś mieć przynajmniej taką samą częstotliwość jak w przykładzie albo ją obliczyć , faktem jest iż jest tam funkcja która to liczy ale nie wiem czy wychodzi tak jak powinno wychodzić , Jaką masz częstotliwość ustawioną w mikrokontrolerze i w środowisku (np. Eclipsie )?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 6 sty 2015, o 22:42 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

8MHz, ale to i tak chyba program pobiera sam, czy niej tak? ".OCR1AL = (uint8_t)(F_CPU / 8 / 1000 ); "

preskaler zmieniłem na 8 żeby była większa częstotliwość zegara. Ale próbowałem na i na 64 i na 8, co nic nie zmieniło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 8 sty 2015, o 14:08 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Witam, kombinowałem kombinowałem aż się udało :). Ale jestem happy, przez duże H.

No więc miałem błędy w obsłudze preskalerów timerów. Przepełnienia zmieniałem a o preskalerze zapominałem. Od i cała historia. Teraz fajnie to liczy.
Muszę jeszcze tylko zrobić, dodatkowo ręczny reset licznika, oraz żeby mi liczby w minusie wyświetlało bo narazie jakieś bzdury pokazuje.

Super, dzięki wszystkim za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 8 sty 2015, o 15:18 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Tak właśnie myślałem , Dlatego zapytałem czy częstotliwości są odpowiednie w procku , jak podałeś iż na wejściach i wyjściach jest jak trzeba to tylko program. Fajnie że CI się udało samemu dojść :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 8 sty 2015, o 18:13 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Zazwyczaj wolę z żoną he he :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 8 sty 2015, o 21:50 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Jeszcze jedna sprawa.
Mam problem z wyświetlanie wartości ujemnych.

Jak kręcę enkoderem na minus, to pokazuje jedności od -1 do -9 ok,
następnie przeskakuje na dziesiętne -10 ale już jedności to jakieś głupoty
dalej setki -100, ale znowu dziesiątki i jedności to losowe elementy diod wyświetlacza.

Poniżej kod

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


Led_minus to dioda zapalająca minus przed wyświetlaczem led.


Liczę sobie to na kartce i powinno dobrze pokazywać wartości. Zatkało mnie i nie umiem ruszyć, czy ktoś poda rączkę :shock: :!:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Encoder
PostNapisane: 9 sty 2015, o 12:43 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

No, już też sobie z tym poradziłem, pewnie nie jest to zbyt ładne i estetyczne ale działa. :D

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  
 Tytuł: Re: Encoder
PostNapisane: 1 lut 2015, o 17:05 
Offline
Nowy

Dołączył(a): 02 sty 2015
Posty: 16
Pomógł: 0

Niestety dalej mam problem, właśnie podłączyłem enkoder 1000imp/obr.
I źle liczy, więc zmieniłem już optotranzystory na 6N135.
Zauważyłem też problem w ustawieniach timera, mam źle ustawione a liczy, a jak dobrze ustawie w tryb CTC to nic nie liczy.
Tak miałem ustawiony i liczyło, ale to trym PWM!
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


no i jak tak ustawie, to sie nic nie wyświetla?? Rozumiecie coś z tego.



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: 34 ]  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 3 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