Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Silnik krokowy jako enkoder/impulsator

sq1ftb 21 Sty 2011 17:56 28963 41
  • Silnik krokowy jako enkoder/impulsator

    Do zaprojektowania i skonstruowania enkodera, jak to zazwyczaj bywa, zachęciła mnie dostępność starych napędów FDD i HDD. Do tego typu zastosowań doskonale nadają się silniki krokowe wycofanych już zupełnie stacji 5 ¼” oraz silniki napędzające talarze w dyskach twardych HDD. Podstawową wadą tanich enkoderów impulsowych jest mała precyzja wykonania elementów stykowych, a co za tym idzie, nieprecyzyjne działanie polegające na m.in. „gubieniu” impulsów. Stosunkowo dużym utrudnieniem w odniesieniu do enkoderów mechanicznych jest też używanie odpowiedniego oprogramowania w układach mikroprocesorowych, co czasami uniemożliwia wykorzystanie przerwań do innych celów.
    Serdeczne podziękowania dla kol. Mirley (elektroda.pl) za inspiracje swoim projektem (http://mirley.firlej.org) oraz dla kol. Thomasa OZ2CPU (http://www.webx.dk/oz2cpu/20m/encoder.htm) Thank's Thomas.
    Pracę enkodera mozna zobaczyć poniżej.



    Link
    Załączniki:

    Fajne! Ranking DIY
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
    O autorze
    sq1ftb
    Poziom 12  
    Offline 
    Specjalizuje się w: mikroprocesory jednoukładowe, technika cyfrowa
    sq1ftb napisał 89 postów o ocenie 364, pomógł 0 razy. Mieszka w mieście Świdwin. Jest z nami od 2008 roku.
  • #2
    psine.pl

    Poziom 29  
    W zasadzie to nie jest enkoder tylko impulsator.

    Poza tym ciekawe wykorzystanie silnika krokowego.
  • #5
    CrQ
    Poziom 12  
    Orientujesz się może ile impulsów będzie przypadało na obrót (w przypadku zastosowania silników o których wspomniałeś w temacie) ? Jakie prędkości obrotowe są poprawnie obsługiwane ?
  • #6
    sq1ftb
    Poziom 12  
    Wszystko zależy od ilości biegunów w silniku krokowym. Silniczki od FDD starego typu ok. kilkudziesięciu imp /obr. Silniki od CD i HDD - kilka /obr. Dokładnych pomiarów nie robiłem, bo wszystko zależy od typu użytego silnika. W wykonaniu z CD według pomiarow "szpitalnych" - czyli na oko - działanie jest porownywalne z enkoderem od IC-746. Do pomiaru prędkości obrotowych, musialbym dokonac pomiarów na stanowisku napęd-obrotomierz-licznik. Nie mam takiego stanowiska.

    Dodano po 5 [minuty]:

    aj123 napisał:
    Fajne :D A do czego taka zabawka ma służyć ?

    Zastosowanie ogranicza jedynie wyobraźnia elektronika.
    Np. Obrotowy zamek szyfrowy - jak w filmowych sejfach.
    Kod - 5 imp w prawo 12 w lewo 3 w prawo i otwarte !!!
    Wszystko zależy od programu w mikroprocesorze, ktory bedzie na swoich portach pobierał impulsy.

    Przykład 2:
    Potencjometr cyfrowy - w prawo głośniej w lewo ciszej.

    Przykład 3:
    Zmiana czestotliwości cyfrowego generatora - w prawo zwiększa w lewo zmniejsza

    idt itp
  • #7
    unitral
    Użytkownik obserwowany
    CrQ napisał:
    Orientujesz się może ile impulsów będzie przypadało na obrót (...) Jakie prędkości obrotowe są poprawnie obsługiwane ?


    Na każdym silniku jest napisane ile ma podziałek na obrót.

    Tego silnika nie zakręcisz super szybko, z doświadczenia wiem że ma zbyt wielki opór i bezwładność żeby kręcił się ponad 200obr/min.
  • #8
    sq1ftb
    Poziom 12  
    moon09 napisał:
    dobrze zrozumiałem, że ten silnik krokowy jest użyty jako tzw. cyfrowy potencjometr? (wysylajacy impulsy przód/tył do uC)?


    Właśnie tak działa.

    Dodano po 4 [minuty]:

    Cytat:
    Tego silnika nie zakręcisz super szybko, z doświadczenia wiem że ma zbyt wielki opór i bezwładność żeby kręcił się ponad 200obr/min.


    Zgadza się. Taka bezwładność mechaniczno-magnetyczna bywa czasami zaletą.
    Nie posiada jej natomiast silnik od HDD - obraca się bardzo płynnie i dzięki doskonałemu łożyskowaniu jest "delikatny" w obracaniu.
  • #9
    pier
    Poziom 23  
    Bardzo ciekawy projekt.
    Taki silnik krokowy jak impulsator będzie chyba wieczny.

    A czy w układzie tym da radę zastosować Attiny13?
  • #10
    unitral
    Użytkownik obserwowany
    pier napisał:

    Taki silnik krokowy jak impulsator będzie chyba wieczny.

    Prawie :)
    Większość tych silników posiada łożyska ślizgowe a nie toczne.
  • #11
    sq1ftb
    Poziom 12  
    Sądzę, że powinien pracować z ATTiny13. Niestety nie mam takiego pod ręką. Wszystko wyjdzie po kompilacji. Nie ma nadmiaru zastosowanych zmiennych, obszar stosu ograniczony, powinno działać, ale może ktoś, kto ma większe doświadczenie w "maluchach" się wypowie.
  • #12
    Macosmail
    Poziom 34  
    sq1ftb napisał:
    silnik od HDD - obraca się bardzo płynnie i dzięki doskonałemu łożyskowaniu jest "delikatny" w obracaniu.
    Tak. Tylko trzeba dodać, że to nie jest silnik krokowy. Pozdrawiam.
  • #13
    fgfg
    Poziom 14  
    Cytat:
    Tak. Tylko trzeba dodać, że to nie jest silnik krokowy.

    Tak, a dokładnie to silnik bldc.
  • #14
    WV
    Poziom 16  
    Jest prostszy sposób.
    Wystarczy podłączyć diodę świecącą do wyprowadzeń silnika i będzie mrugać, a jak podłączysz dwie to będzie efekt taki sam jak na tym filmie.
    Pozdrawiam.
  • #15
    SylwekK
    Poziom 31  
    Kurcze, na podobny pomysł wpadłem kiedy rozebrałem uszkodzony czujnik ABS po jego wymianie :) tylko, że ja robię testy na starych silnikach z drukarek atramentowych (kąt 7,5st).


    P.S. Wyszperałem mój schemacik - jak się okazuje jest bliźniaczo podobny jednak nieco prostszy i zdecydowanie o mniejszym poborze prądu. Użyłem tu LM324. Czułość układu określa rezystor 270k (optymalna wartość) - przy większych wartościach wystarczy puknąć palcem w silnik żeby dostać impuls :)
    Zamieszczam schamacik układu formującego, bo reszta może być jak u autora postu. Może ktoś go wykorzysta (nie ma sensu zakładać nowego tematu).
    Aha, impuls to stan niski. W stanie spoczynku jest stan wysoki - odwrotnie niż narysowane na wyjściu układu.

    Silnik krokowy jako enkoder/impulsator

    ...a tu filmik, że działa (kiepska jakość ale coś widać)


    Link
  • #16
    stanley019
    Poziom 15  
    aj123 napisał:
    Fajne Very Happy A do czego taka zabawka ma służyć ?

    ja spróbowałbym użyć tego rozwiązania, do "ręcznego" ustawiania osi w hobbystycznych maszynach CNC, chyba że się do tego nie nadaje?
  • #17
    sq1ftb
    Poziom 12  
    WV napisał:
    Jest prostszy sposób.
    Wystarczy podłączyć diodę świecącą do wyprowadzeń silnika i będzie mrugać, a jak podłączysz dwie to będzie efekt taki sam jak na tym filmie.
    Pozdrawiam.

    Zgadza się, tak będzie, tylko że wtedy amplituda sygnału na wyjściu silnika bedzie uzależniona od jego prędkości obrotowej, a co za tym idzie, może być za niska w stosunku do logiki układu współpracującego.
    Zadaniem tego układu nie jest miganie diodek. Miganie diodek ma pokazywać funkcjonalność.
  • #18
    Freddy
    Poziom 43  
  • #19
    sq1ftb
    Poziom 12  
    Freddy napisał:
    Jakoś ten projekt dziwnie podobny do tego http://www.webx.dk/oz2cpu/20m/encoder.htm

    Powiem więcej. Pierwsza część projektu, formowanie impulsów, to wzięte z projektu Thomasa, co zaznaczyłem w dokumentacji i w opisie do projektu. I jak nakazuje kultura, podziękowałem za inspirację.
    Żeby uprzedzić dalsze śledztwo prowadzone przez kolegę, druga cześć projektu jest inspirowana przez Kolegę Mirleya z elektrody, któremu również z przyjemnością podziękowałem i w dokumentacji podałem wszystkie namiary na źródła inspiracji.
    Reasumując, zastosowano dwa rozwiązania, które w wyniku dały trzecie.

    Cytat:
    Serdeczne podziękowania dla kol. Mirley (elektroda.pl) za inspiracje swoim projektem (http://mirley.firlej.org) oraz dla kol. Thomasa OZ2CPU (http://www.webx.dk/oz2cpu/20m/encoder.htm) Thank's Thomas.

    Nie lubię się sam cytować, ale przecież podałem w opisie projektu
  • #20
    Freddy
    Poziom 43  
    sq1ftb napisał:
    Freddy napisał:
    Jakoś ten projekt dziwnie podobny do tego http://www.webx.dk/oz2cpu/20m/encoder.htm

    Powiem więcej. Pierwsza część projektu, formowanie impulsów, to wzięte z projektu Thomasa, co zaznaczyłem w dokumentacji i w opisie do projektu. I jak nakazuje kultura, podziękowałem za inspirację.
    Żeby uprzedzić dalsze śledztwo prowadzone przez kolegę, druga cześć projektu jest inspirowana przez Kolegę Mirleya z elektrody, któremu również z przyjemnością podziękowałem i w dokumentacji podałem wszystkie namiary na źródła inspiracji.
    Reasumując, zastosowano dwa rozwiązania, które w wyniku dały trzecie.

    Cytat:
    Serdeczne podziękowania dla kol. Mirley (elektroda.pl) za inspiracje swoim projektem (http://mirley.firlej.org) oraz dla kol. Thomasa OZ2CPU (http://www.webx.dk/oz2cpu/20m/encoder.htm) Thank's Thomas.

    Nie lubię się sam cytować, ale przecież podałem w opisie projektu


    Przecież nie napisałem, że ukradłeś, wcięło mi tylko buźkę, za co przepraszam. Już poprawione. :) ;)

    Takie impulsatory z tanich silników krokowych, (bo enkoderami tego nie za bardzo można nazwać) maja swoją wadę.
    Silniki krokowe "chodzą " dość ciężko. Fakt, że mają zwykle (te najpopularniejsze) 200 kroków i są tańsze od fabrycznych enkoderów. (rotary encoder).

    Wykonaj test, po 2 godzinach w temperaturze 10 - 15° rusz o dokładnie 5 kroków !
    Prawie niewykonalne !
  • #21
    Maticool
    Poziom 20  
    fgfg napisał:
    Cytat:
    Tak. Tylko trzeba dodać, że to nie jest silnik krokowy.

    Tak, a dokładnie to silnik bldc.

    Mało tego, silnik HDD jest zazwyczaj zaledwie trójfazowy. Bliżej mu do silników synchronicznych niż krokowych :D. IMHO bez przekładni, taki silnik się nie nadaje zupełnie do tego zastosowania.
    Najlepszy jest taki silnik jaki użył Autor - krokowy (tylko nie reluktancyjny!) o dużej ilości kroków na obrót. Można go łatwo rozpoznać po wielu drobnych "przeskokach" wyczuwalnych podczas kręcenia palcem. Takie silniki są zazwyczaj w posuwie głowic w CD, DVD czy FDD i mnóstwo w drukarkach.:D
  • #22
    sq1ftb
    Poziom 12  
    Masz rację, dlatego wolę zamiast krokowca użyć silnika HDD .Nie ma tych 200 kroków na obrót, ale te kilka impulsów wystarczy do fajnego sterowania.
    Krokowca zastosowałem do zmiany częstotliwości generatora PLL. Chodzi twardo ale za to fajnie akcentuje kroki współdziałaniem pól magnetycznych.
    Dzisiaj zrobię filmik z takim silniczkiem i jeszcze umieszczę. U mnie wyświetlanie "buziek" działa d.d ( wiadomo o co chodzi). Pozdrawiam serdecznie.
  • #23
    Pavlik71
    Poziom 15  
    Witam.

    Jak tu zacząć, aby nie urazić...:D

    Rozwiązanie nadaje się do zmiany warości, która nie ma większego wpływu na pracę urządzenia. Program ma wady. Stosując impulsator mechaniczny program nie jest odporny na drgania styków (może naliczyć dziesiątki lub setki impulsów w czasie drgań styków). Drugim nieporządanym efektem jest generowanie impulsu przy niepełnym cyklu stanów impulsatora.
    Dalatego opisałem na elektrodzie moje rozwiązanie, które zapewnia mi pewne działanie Link Zakładając ten temat chciałem się dowiedzieć, czy są łatwiejsze rozwiązania tego problemu.
  • #24
    sq1ftb
    Poziom 12  
    Cytat:
    Stosując impulsator mechaniczny program nie jest odporny na drgania styków (może naliczyć dziesiątki lub setki impulsów w czasie drgań styków)

    W pełni się z Tobą zgadzam. Przy mechanicznym impulsatorze, takie rozwiązanie programowe nie jest w pełni stabilne. Dlatego też zamiast impulsatora jest umownie mówiąc "prądnica dwufazowa" gdzie problem drgania styków praktycznie nie istnieje. Patrzyłem na Twoje rozwiązanie - bardzo elegancko rozwiązałeś omijanie stanów pośrednich impulsatora mechanicznego. Impulsator mechaniczny - taki za kilka złotych - to doskonałe źródło do tematu o stanach nieustalonych - a nawet - nieprzewidywalnych. Moje rozwiązanie należy traktować jako materiał edukacyjny i można to sobie wszystko modyfikować i eksperymentować. Na moje potrzeby zastosowałem jako impulsator silnik od HDD, cztery imp/360 deg w zupełności mi wystarczą. Miło było poznać rozwiązania Kolegi.
  • #25
    DziadzioMiecio
    Poziom 27  
    Kolejny impulsator na tym "silniczku" już jest gdzieś konstrukcja na Attini zdaj się że kolega z 7 okręgu taki opracował w tym wątku było coś na ten temat http://sp-hm.pl/thread-268-page-2.html . Szkoda że koledzy nie używacie silniczków ze skanerów lub laserówek. Ja osobiście wykonałem na moim silniczku ma on łożyska toczne i po kilku próbach użytkowania zrezygnowałem z niego pamiętam obsługę TS520 jego płynność strojenia i lamba 5 która miała strojenie z kołem zamachowy jak się zadbało to była płynność ruchów może jest to rozwiązanie wielkie ale ma to coś . Szkoda kolego sq1ftb że wstawiłeś punkty za poczytanie dokumentacji no ale pewnie to taki urok.
  • #26
    wkd
    Poziom 18  
    Takie rozwiązanie impulsatora ma jednak pewną wadę (dla mnie dość istotną). Otóż bardzo trudno jest uzyskać pojedynczy impuls. Przy wolnym obracaniu indukujące się napięcie jest niewystarczające do zadziałania np komparatora czy licznika. Przy nieco szybszym obracaniu prawie zawsze uzyskamy przeskok nie o jeden , lecz o kilka impulsów. Nie wiem jak sprawuje się taki impulsator z silniczkami od HDD ,gdyż prób nie robiłem - z uwagi na zbyt małą liczbę impulsów na obrót.
  • #27
    SylwekK
    Poziom 31  
    @wkd, nie do końca się z Tobą zgodzę. Być może z niektórymi silnikami taki problem może wystąpić natomiast przy korzystaniu z silnika drukarki (jak w moim przypadku) nie ma absolutnie żadnego problemu z uzyskaniem jednego impulsu. Każdy ruch osią (nawet bardzo delikatny) jest wyraźnie akcentowany przez jego lekki opór i przeskok co powoduje indukowanie się wystarczającego napięcia dla komparatora (sprawdziłem).
  • #28
    rysta
    Poziom 21  
    Potwierdzam; zrobiłem taki impulsator z wykorzystaniem silniczka Sanyo-Denki typ 103-556-0270 (1,875 deg/step) wymontowanego ze złomowanej drukarki mozaikowej. Elektronika różni się trochę od tej która jest spopularyzowana w impulasatorze OZ2CPU i w odróżnieniu od niego, nie gubi impulsów przy powolnym obracaniu gałką, pracując bardzo pewnie i powtarzalnie w obu kierunkach.
    (Ze schematem może byc ciężko, ale mam gdzieś projekt płytki ze Sprint-Layout'a)
  • #29
    Mariojas
    Poziom 17  
    Jakie jest prawdopodobieństwo że dwa różne uzwojenia silnika nie są przesunięte w fazie między sobą?
    Otóż mój układ nie działa, chyba że usunę rozkaz na "odczekanie" aż zwolni się sygnał na danym kanale, a potem sprawdzenie czy na drugim jest sygnał.
  • #30
    SylwekK
    Poziom 31  
    Jeśli to dwa różne uzwojenia to raczej nie możliwe żeby nie były przesunięte w fazie... Coś musi być na rzeczy z algorytmem rozpoznawania impulsów w programie.