Nietypowy problem z nietypowym układem.

Kiedyś słyszałem że ktoś wykorzystał silnika krokowy jako enkoder obrotowy (impulsator) w kodzie Graya.

Zrobiłem coś takiego wykorzystując silnik krokowy ze starego flopa 1,2MB. Cewki silnika krokowego podłączyłem do dwóch wzmacniaczy operacyjnych. Jedne końce uzwojeń do wejść nieodwracających opampów przez dzielniki rezystorowe i a drugie dwa końce uzwojeń połączone są razem i podłączone do wejść odwracających opampów do których też dochodzi połowa napięcia zasilania 5V. Na wejściach nieodwracających oprócz dzielników rezystorowych są jeszcze po dwie obcinające sygnał diody w przeciwnych polaryzacjach. Równolegle z diodami połączone są kondensatory 10uF. Oba wzmacniacze mają sprzężenia zwrotne po 100kohm do wejścia nieodwracającego. Układ obserwowałem na oscyloskopie dwustrumieniowym i działa wyśmienicie (przebiegi kodu Grata na oscyloskopie niemal książkowe). Nawet delikatne ruszenie silnika o jeden krok powoduje zmianę kodu (Graya) na wyjściach opampów. Podłączyłem wkrętarkę akumulatorową do osi silnika krokowego i przy maksymalnych obrotach wkrętarki (około 1000obr/min) nadal przebiegi książkowe. Maksymalne obroty przy których enkoder może prawidłowo działać ograniczone są wartościami kondensatorów 10uF oraz rezystorów. Bez tych kondensatorów delikatne dotykanie osi silnika lub drgania stołu powodowało generowanie stanów nieustalonych na wyjściach opampów.

Poszedłem krok naprzód. Napisałem krótki progamik w C++ na atmegę 32. Na LCDku wyświetlam aktualny stan położenia osi silnika (kod Graya) oraz stan licznika którego wartość zmienia się podczas kręcenia osią silnik krokowego. Tu działa wszystko wyśmienicie. Nie gubi żadnego, nawet najwolniejszego kroku. Silnik ma krok co 1,8stopnia więc 200 kroków to pełny obrót. Zaznaczyłem na osi oraz na korpusie punkt i obróciłem oś o 360stopni. Licznik na wyświetlaczu wskazał wartość 200. Idealnie. Jest jednak jedno ale. Wszystko działa idealnie do czasu gdy nie zmienię kierunku. W przypadku zmiany kierunku, nie wazne czy to szybko czy wolno. Pierwszy krok obrotu osi silnika wyzwala mi dwa impulsy licznika zliczającego a wyświetlany kod graya przyjmuje stany zabronione, tzn przeskakuje jedną kombinację. Po tym jednym jedynym impulsie każdy następny jest prawidłowy aż do ponownej zmiany kierunku obracania gdzie znowu przy jednym kroku dostaję dwa impulsy kody graya. Gdy obracam delikatnie oś silnika tylko o jeden impuls raz w lewo raz w prawo, licznik Na LCDku zmienia wartość naprzemian +2 -2 . Gdy zmiany są np. o 5 kroków na osi silnika to licznik zmienia wartość o +6 -6 Dlaczego tak się dzieje że każde przejście przez zmianę kierunku obracania osią silnika powoduje wyzwolenie dwóch impulsów Graya na wyjściach opampów?

Marek

Reply to
invalid unparseable
Loading thread data ...

Użytkownik "4CX250" <taunusmtv@poćta.łonet.pl> napisał w wiadomości news:4d8b040e$0$2459$ snipped-for-privacy@news.neostrada.pl...

Bo ten typ tak ma? Przecież możesz ten stan zabroniony używać do detekcji zmiany kierunku ruchu. Dlaczego uparłeś się aby rozwiązać problem po stronie silnika, jak można obsłużyć to programowo i z tym żyć. Ba może to być nawet pożyteczne, bo pozwala wykryć zmianę kierunku.

Reply to
Marcin Wasilewski

Może po prostu dlatego, że to silnik a nie enkoder ? To przecież dość oczywiste, że nie jest to przystosowane do działania jako enkoder... Dlaczego kolega tak kombinuje ? Przecież sensowny enkoder można zapewne kupić, i nie mieć tych problemów ?

No, chyba że jest jakiś konkretny powód, no ale jak nie to trochę przytykanie lewej ręki do prawego ucha...

Reply to
sundayman

Użytkownik "sundayman" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:imfee8$jt8$ snipped-for-privacy@news.onet.pl...

No właśnie... powód jest. Enkoder z silnika krokowego ma aż 200kroków na 360stopni obrotu. Przy obracaniu czuć precyzyjnie wuczuwalne w palcach skoki pozwalające na dokładną nastawę pomimo tych 200 kroków. Trudno go też ruszyć przypadkowo trącając palcem. Dobrej jakości enkoder z takimi możliwościami kosztuje sporo a tu mam to w cenie zdemontowanego silnika ze starego flopa. Zawieszenie osi w tych silnikach na łożyskach tocznych powoduje że działać będzie wiecznie.

Marek

Reply to
4CX250

W dniu 2011-03-24 09:42, 4CX250 pisze:

Nie odpowiem dlaczego, ale usuń kondensatory i zobacz co się będzie działo.

Reply to
JK

Użytkownik "JK" <spam snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:imgd2c$jfc$ snipped-for-privacy@news.onet.pl...

Bez kondensatorów niczego sensownego na oscyloskopie nie widać gdyż najmniejsze drgnięcie osią lub uderzenie w stół powoduje przypadkowe występowanie chaotycznych impulsów na wyjściach opampów.

Marek

Reply to
invalid unparseable

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.