Skocz do zawartości

Odczytanie ruchu silnika krokowego


Tomy89

Pomocna odpowiedź

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?

Link do komentarza
Share on other sites

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?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.

Link do komentarza
Share on other sites

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.?

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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?

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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?

Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.