Witam,
mam mały problem. Aktualnie pracuję nad projektem sterowania silnika krokowego. Chciałbym aby silnik wykonywał przeze mnie określoną ilość kroków w lewo taką samą ilość kroków w prawo.
Silnikiem krokowym steruję za pomocą procesora ATmega 32A i sterownikiem DRV8825 Stepper Motor Driver
https://www.pololu.com/product/2132Na wejście STEP sterownika podaję sygnał PWM.
Na wejście DIR, ENABLE, SLEEP podaję odpowiednio od potrzeb jedynkę bądź zero logiczne. Na M0, M1, M2 steruję załączeniem bądź wyłączaniem sterownika oraz ustawienie mu kroków 1/2, 1/4 kroku również sygnałem logicznym itd.
Układ ma być sterowany potencjometrem. Więc w tym celu wykorzystuję przetwornik ADC mikrokontrolera aby odczytywać napiecie z potencjometru.
I tutaj mam problem bo nie wiem jak ogólnie zliczać kroki silnika bo muszą być one ogarniczone.
Mój pomysł to:
1. Odczyt napięcia z ADC0 gdzie podłączony jest potencjometr
2. Próbkowanie i kwantowanie itd.
3. Ustawienie na wyjściu mikrokontrolera sygnału PWM zmodulowanego w (ustalony sposób) sygnał nie musi się zmieniać. Może to być stała prędkość.
4. Podłączenie sygnału z wyjścia PWM do ADC1 aby ponownie spróbkować sygnał PWM
5. Zliczyć kroki i je po prostu programowo ograniczyć.
Ale nie wiem czy mogę jednocześnie używać sygnału PWM i przetwornika ADC
Ma ktoś z was pomysł jak to zrealizować ? Jak programowo ograniczyć kroki na silniku krokowym ?
Byłbym wdzięczny za każdą podpowiedź
Pozdrawiam
