-
Data: 2011-03-24 08:42:51
Temat: Nietypowy problem z nietypowym układem.
Od: "4CX250" <taunusmtv@poćta.łonet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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
Następne wpisy z tego wątku
- 24.03.11 12:43 Marcin Wasilewski
- 24.03.11 12:46 sundayman
- 24.03.11 20:15 4CX250
- 24.03.11 21:28 JK
- 25.03.11 08:16 4CX250
Najnowsze wątki z tej grupy
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
Najnowsze wątki
- 2025-03-03 a Ty jak się zachowasz w godzinie próby?
- 2025-03-03 nie naprawiam więcej telewizorów
- 2025-03-03 Białystok => Gen AI Engineer <=
- 2025-03-03 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-03 Olsztyn => Sales Specialist <=
- 2025-03-03 Gdy ministrowie sa golodupcami
- 2025-03-03 Pruszków => Specjalista ds. public relations <=
- 2025-03-03 Białystok => System Architect (Java background) <=
- 2025-03-03 Białystok => System Architect (background deweloperski w Java) <=
- 2025-03-03 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-03 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-03 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-03 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-03-03 Gliwice => IT Expert (Network Systems area) <=
- 2025-03-03 Mińsk Mazowiecki => Area Sales Manager OZE <=