Algorytm choppera do silnika krokowego

Nov 09, 2009 7 Replies

Witam.



Mam silnik unipolarny i 4 tranzystory sterowane poziomami logicznymi oraz komparator od strony masy na rezestorze pomiarowym.



Chce uzyskac jakiś sensowny algorytm sterowania silnikiem krokowym.



Przekroczenie prądu w silniku sygnalizwoane jest przez komparator i podawane na wejście INT procesora wywołujac przerwanie.



Algorytm teraz wygląda tak:



unsigned char zalaczone_cewki = 0;



void przerwanie_co_1_mikrosekunde( void ) { port_silnikow = zalaczone_cewki }



void przerwanie_przy_przekroczeniu_pradu( void ) { port_silnikow = 0; }



main(void) { while( 1 ) { zalaczone_cewki = 0x01; pauza_1ms(); zalaczone_cewki = 0x02; pauza_1ms(); zalaczone_cewki = 0x04; pauza_1ms(); zalaczone_cewki = 0x08; pauza_1ms(); } }



Problem w tym, że nie wiem czy to sensowny algorytm sterowania silnikiem krokowym. Czy ktoś ma pomysł co mozna zmienić aby uzyskac sensowne działanie? Co prawda to działa poprawnie, ale mam wrażenie, ze silnik moze wyciągnąc więcej, tym bardziej że na scalonym sterowniku wyciąga wyższe obroty. Co robie źle ?


S

Czy przypadkiem sekwencja nie powinna wyglądać tak:

1001 0101 0110 1010

Paweł

zalezy. Moze byc tez tak:

1, 3, 2, 6, 4, 12, 8, 9 albo 5, 3, 10, 6, 5, 12, 10, 9

Waldek

Sebastian Biały przemówił ludzkim głosem:

  1. Po zmianie kroku przez pewien czas powinieneś ignorować sygnał przekroczenia prądu.
  2. Po przekroczeniu prądu i wyłączeniu drivera, powinieneś odczekać trochę, zanim znowu włączysz driver (czas martwy). Jeśli w tym czasie zmieniasz krok, to patrz punkt 1.

Wartości czasów musisz dobrać sam obserwując prąd na oscyloskopie i "uciąg" silnika.

PS. to przerwanie co 1us trochę mnie rozbawiło. To przykład, czy na serio tak masz?

Sprawdzę.

To niefajnie. Głównie dlatego, że moge miec różne silniki. miałem nadzieje, ze chooperowanie nie zalezy tak silnie od silnika.

Przykład. Chodziło mi o to ze kroki sa duzo wolniejsze od choppera.

To tylko przykład był. W rzeczywistości mam 8 kroków a nie 4. Nie ważne, ważny jest sam chopper.

Uf, a juz sie balem .. ze to mozliwe. Chociaz w sumie .. czemu nie ?

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required