Algorytm choppera do silnika krokowego

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 ?

Reply to
Sebastian Biały
Loading thread data ...
S

Czy przypadkiem sekwencja nie powinna wyglądać tak:

1001 0101 0110 1010

Paweł

Reply to
Paweł

zalezy. Moze byc tez tak:

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

Waldek

Reply to
Waldemar Krzok

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?

Reply to
Zbych

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.

Reply to
Sebastian Biały

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

Reply to
Sebastian Biały

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

J.

Reply to
J.F.

Zalezy ile u-krokow...

Reply to
Jerry1111

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.