Skocz do zawartości

Odczytanie ruchu silnika krokowego


Pomocna odpowiedź

Napisano

Witam,

mam urządzenie w którym jest silnik krokowy 5V z 4 przewodami. W urządzeniu jest układ który steruje tym silnikiem. Moim zadaniem jest podpiąć się pod te 4 przewody i wykryć ruch silnika w jedną bądź w drugą stronę...Jest jakieś łatwiejsze rozwiązanie, niż podpięcie pod piny atmegi 4 przewodów, ustawienie ich jako "input" oraz analiza które i w jakiej kolejności są włączane?

A co to za układ który steruje tym silnikiem? Co to za "4 przewody"? To jest wyjście enkodera czy może jakaś magistrala? Napisz coś więcej.

Niestety nie znam blizszych informacji. urządzenie to ruchoma kamera wifi firmy foscam 18W. Chciałbym odczytac ruch kamery przez atmegę. najlepiej znając też kierunek ruchu...jest to wykonywalne?

Sorry, źle zrozumiałem. Myślałem że 4 przewody wychodzą też ze sterownika:p Możesz założyć enkoder na oś silnika (jeśli wykonanie kamery na to pozwala). Wtedy bardzo łatwo odczytasz kierunek obrotów.

Jest jakieś łatwiejsze rozwiązanie, niż podpięcie pod piny atmegi 4 przewodów, ustawienie ich jako "input" oraz analiza które i w jakiej kolejności są włączane?

Nie ma. Każde inne jest związane z mechaniczną ingerencją i de facto tym samym algorytmem, który opisałeś.

Ale z tym podpięciem pod mikrokontroler to także nie takie proste, bo bezpieczeństwo mikrokontrolera musisz zapewnić.

Pytanie dodatkowe: Jak dokładne ma być to wykrywanie kierunku?

Czyli czy silnik pracuje na zasadzie kręci się dłużej, czy na przykład wykonuje jeden krok i stoi, itd.?

Wolałbym uniknąć enkoderów bo też nad tym myślałem.

Silnik zapewne kręci się dłużej, zeby ustawić kamerę, ale nie muszę okreśać jego dokładnej pozycji. Zależy mi tylko na wykryciu, że silnik zaczął pracować i najlepiej w którą stronę. Oczywiście zastosuję odpowiednie dzielniki napięcia, żeby nie uszkodzić megi...

Jezeli więc zmierzę maksymalne napięcie na przewodach od silnika i zastosuję dzielniki napięcia to czy będzie bardzo kłopotliwa detekcja przez procesor pracy silniczka? Jak to zrobić na przykładzie chćby pseudo kodu...programuję w BASCOMIE.

Jeżeli wystarczy ci fakt że silnik pracuje, to wystarczy mierzyć prąd pobierany przez sam sterownik silnika. Podczas jego pracy podskoczy o jakaś tam wartość. Z tym kierunkiem obrotów jest trochę gorsza sprawa, bo nie da się tego bardzo zrobić bez enkodera.

Jak wiesz jaki jest sterownik tego silnika to było by łatwiej, bo prawie na pewno ma min, 3 wejścia sterujące, CLK, DIR, EN. Śledząc je można określić wszystko co trzeba, oczywiście jeżeli są i jest dostęp do nich.

Enkoder niestety nie wchodzi w grę ponieważ w przyszłości zamierzam silniki usunąć z urządzenia, więc co za tym idzie teznie będę mógl zbadać prądu. Dodam jeszcze, że muszę "odczytać" ruch dwóch takich samych silników krokowych znajdujących się w kamerze obrotowej...

BlackJack Mógłbyś przybliżyć jak śledzić te wejścia? Za pomoca wejść INT koniecznie? Czy wystarczy odczytanie stanów bez przerwania?

Przybliż ten sterownik silnika, model, jakieś zdjęcie w miarę możliwości, co nim steruje ?

Jeżeli byłby dostępny sygnał taktujący sterownik CLK, to można go mierzyć z pomocą Timera, jego częstotliwość. Znając częstotliwość taktowania, tryb pracy silnika, krok/półkrok, parametry silnika (obrót w °/ jeden krok), obliczysz szybkość obrotową, oraz pokonywany dystans, mając sygnał DIR określisz kierunek obrotów.

Ale jak już pisałem warunek jest taki że masz dostęp do tych sygnałów.

Nie wiem co masz na myśli mówiąc "dostęp"...po prostu chcę odłączyć silnik, podłączyć atmegę i na pinach procesora odczytać konkretny sygnał jeżeli układ elektroniczny kamery będzie chciał uruchomić silnik w prawo oraz odczytać inny sygnał, gdy układ elektroniczny kamery będzie chciał uruchomić silnik w lewo. Mam nadzieję że w miarę zrozumiale piszę 😉

Nie mam jeszcze tej kamery, ponieważ nie mogę jej kupić do puki nie upewnię się że jest to możliwe. Podsyłam 3 zdjęcia kamery "od środka "znalezione w sieci...

http://homesecuritycamerashq.com/wp-content/uploads/2011/07/foscam_inside-300x225.jpg

http://www.neknek.net/wp-content/uploads/2010/07/14072010546.jpg

jeżeli dobrze znalazłem to to jest ten silnik:

http://www.alibaba.com/product-gs/488111482/DS_25BYJ_stepper_motor.html

ma on przekładnię 1:64 która daje obrót o 5,625°/64, max częstotliwość pracy to >=500Hz nominalnie zalecane 100Hz.

Jeżeli dobrze sie orientują po zdjęciach to steruje tym mikroprocesor w kamerze przez układ ULN2803L. Pewnie dało by się podpiąć bezpośrednio pod silnik, znaczy między silnik a płytkę, tylko wtedy trzeba dekodować sygnały sterujące silnikiem i na ich podstawie określać kierunek.

  • Pomogłeś! 1

Skoro jest taka przekładnia, to nikt się zapewne w mikrokroki nie bawił - wniosek prosty, można odczytać stosunkowo łatwo kierunek i prędkość bezpośrednio z pinów silnika (sterownika). Trzeba tylko zastosować jakiś bufor, żeby zabezpieczyć się przed upaleniem atmegi. Polecam przeczytać ten oto artykuł: https://www.forbot.pl/forum/topics20/teoria-sterowanie-silnikow-skokowych-vt6205.htm

  • Pomogłeś! 1

Można badać sygnał na wejściu układu ULN2803L. Myślę że więcej jak 5V to tam nie ma. Wystarczy sprawdzić woltomierzem lub oscyloskopem.

  • Pomogłeś! 1

Dzięki wielkie Panowie 🙂 Jestem pod wrażeniem tego, że rozpoznaliście tam układ ULN2803L 🙂

Pozostało jeszcze jedno pytanie...jak odczytać atmegą te sygnały? Stworzyć 4 zmienne bitowe i za pomocą IF-ów stwierdzić w którą stronę miał się poruszać silnik? Przy tak niskiej częstotliwości sterowania silnika, chyba obędzie się bez przerwań INT?

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...