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.

Elektroniczny enkoder do silnika krokowego - działanie komparatora

26 Sie 2012 21:52 3501 4
  • Poziom 8  
    Witam
    Używam silnika krokowego bipolarnego 12V (4 przewody). Ze względu na konieczność oszczędności prądu po użyciu silnik jest wyłączany tak, że może się swobodnie obracać. W tej sytuacji postanowiłem dołączyć "enkoder" elektroniczny, który pozwolił by mi na wykrycie, w którą stronę nastąpił swobodny obrót i mniej więcej o ile kroków. Enkoder zlicza impulsu za pomocą komparatorów dołączonych do mikrokontrolera wykorzystujących impulsy prądu powstające przy swobodnym kręceniu silnikiem.

    Na podstawie tego pomysłu (Link) udało mi się zmontować i uruchomić enkoder. Schemat zmodyfikowałem dodając na wejściu od silnika rezetor 10K aby zmniejszyć czułość układu. Inaczej samo dotknięcie silnika generuje impulsy. Dodatkowo na wyjściu zrezygnowałem z rezystorów wykorzystując rezystory pullup wewnątrz mikrokontrolera. Cały układ działa poprawnie kiedy ruszam ręcznie silnikiem.

    Następnie taki układ enkodera dołączyłem do sterownika silnika krokowego (jak na schemacie) opartego na układzie A4899 (Link). Sterownik silnika krokowego działa poprawnie.

    Elektroniczny enkoder do silnika krokowego - działanie komparatora

    Za pomocą polecenia SLEEP sterownika wprowadzam sterownik w stan uśpienia odłącza to MOSFETY i układy sterownika, tak że silnik nie jest zasilany i może się obracać swobodnie. Spodziewałbym się, że w tej sytuacji enkoder zadziała i komparatory będą generować impulsy kiedy ręcznie poruszę silnikiem. Tymczasem na wyjściach komparatorów jest stan zero. Mam tylko mutimetr więc mierząc napięcia dostarczane do komparatorów stwierdziłem, że są takie same jak przy nie podłaczonym sterowniku kiedy enkoder działa – rzędu kilkudziesięciu mV. Próbowałem zmniejszyć wartości rezystorów ale nie ma to wpływu na działania układu. Wydawało mi się, że odłączone MOSFETY (DMOS Full Bridge) ze sterownika będą zachowywały się tak jakby silnik była fizycznie odcięty od układu. Wtedy enkoder będzie mógł działać tak jak działał przy połączeniu z samym silniku.

    O co chodzi? Dlaczego komparatory przestają reagować na skoki napięcia? Gdzie popełniam błąd?

    Dzięki za ewentualne wskazówki i pozdrawiam
  • Poziom 43  
    Możliwe że komparatory są do wymiany, nie powinieneś do żadnego układu scalonego podawać napięć wykraczających poza zakres zasilania, zasil komparator z 12V lub/i daj rezystory 10k szeregowo z wejściami odwracającymi. Zamiast dawać dzielnik na wejściu, lepiej dać histerezę. Możliwe że układ sterownika wymusza jakiś stan na wyłączonych wyjściach -sprawdź miernikiem, albo ma upływność - wtedy dał bym na każdym wyprowadzeniu silnika rezystory po 10kΩ do masy i zasilania i wtedy zmierzył czy jest tam połowa zasilania.
  • Poziom 8  
    Witam
    Dziękuję za podpowiedź.

    Czy jak komparator zasilę z napięcia +12V, które zasila silniki to czy na wyjściu komparatora będzie sygnał TTL dostosowany do bezpośredniego podłączenia do mikrokontrolera ?

    Czy w razie jakby się komparator spalił to może to uszkodzić mikrokontroler podłączony do jego wyjścia?

    Pozdrawiam
  • Pomocny post
    Poziom 43  
    Komparator LM293, jak prawie każdy inny, ma wyjście typu otwarty kolektor, więc o napięciu w stanie wysokim, decyduje tylko zewnętrzny rezystor podciągający.

    Mój błąd, właśnie sprawdziłem, że LM293 należy do tych nielicznych układów, które wytrzymują napięcia wejściowe wyższe niż zasilanie, więc raczej się nie uszkodził. Ale lepiej zasilić z 12V, zakres napięć, które komparator może porównywać, będzie szerszy.

    Pozostaje sprawdzić czy na pewno wszystkie tranzystory sterownika są wyłączone i czy napięcie na cewkach silnika nie wychodzi poza zakres komparatora np w wyniku upływności.
  • Poziom 8  
    LM293 wytrzymał moje eksperymenty. Porady pomogły - DZIĘKI. Temat zamknięty.