Skocz do zawartości

Silnik krokowy bipolarny - mały moment przy sterowaniu dwufazowym


miccaldo

Pomocna odpowiedź

Witam.

Wyjąłem z komputerowej nagrywarki DVD malutki silniczek krokowy. Przy sterowaniu pełnokrokowym jednofazowym silnik ma zbyt mały moment.

Napisałem więc program do sterowania dwufazowego w oparciu o artykuły w internecie. Jest to niby nic trudnego, jednak moment zamiast zwiększyć się o te 40%, to raczej podziałało w drugą stronę 😋

W sterowaniu jednofazowym kiedy przytknę palcem wału silnika to czuje opór, a z kolei przy dwufazowym już gdy tylko dotknę, to silnik daje rady, zatrzymuje się...

Program jest prawdopodobnie dobrze napisany, gdyż silnik się obraca. Nie wariuje, nie gubi kroków ani nic, jest ok. Tylko coś z tym momentem nie chodzi.

Różnica jest również w temperaturze obudowy. W sterowaniu dwufazowym temperatura jest wyższa zdecydowanie czuć że silnik jest ciepły, ale to normalne raczej.

Silnik zasilam zasilaczem 5V o wydajności prądowej 700mA. Jest to dość mało, jednak jest to mały silniczek więc chyba powinno wystarczyć.

Zamieszczam również program:

#include <avr/io.h>
#include <util/delay.h>


#define T1		(1<<PC1)	//A+
#define T2		(1<<PC2)	//A-
#define T3		(1<<PC3)	//B+
#define T4		(1<<PC4)	//B-


int main( void ){

DDRC |= (T1|T2|T3|T4);
PORTC &= ~(T1|T2|T3|T4);

while(1){

	PORTC = (T2|T4); PORTC &= ~(T1|T3);//	A-, B-
	_delay_ms(100);
	PORTC = (T2|T3); PORTC &= ~(T1|T4);//	A-, B+
	_delay_ms(100);
	PORTC = (T1|T3); PORTC &= ~(T2|T4);//	A+, B+
	_delay_ms(100);
	PORTC = (T1|T4); PORTC &= ~(T2|T3);//	A+, B-
	_delay_ms(100);

}
}

Pozdrawiam

Link do komentarza
Share on other sites

Siema,

1. Czym sterujesz cewki?

2. Zmierz opór pojedynczej cewki i oblicz prąd jaki płynie przy 5V. I=(U/R)n, gdzie n to ilość jednocześnie włączonych cewek, jeżeli wyjdzie Ci więcej ni te 0,7A to wiesz gdzie jest problem.

Link do komentarza
Share on other sites

Pierwsza sprawa to jak napisał Kolega zasilanie. Skoro Tobie nie chce się zmierzyć napięcia zasilacza podczas załączonych dwóch faz to dlaczego my mamy zajmować się zgadywaniem czy ono wystarcza?

A druga to oczywiście program. Dobrze byłoby, gdybyś w takich przypadkach podsyłał schemat połączeń. Jak rozumiem masz silnik 6-wyprowadzeniowy, środki uzwojeń podpiąłeś do +5V a 4 pozostałe przewody sterujesz czterema tranzystorkami do masy czyli masz driver unipolarny, czy tak?

Jażeli tak, a silnik grzeje się bardziej (to bardzo pomocne spostrzeżenie) to jest rzeczą oczywistą, że włączasz dwie fazy, ale niestety nie te. Spróbuj zmienić schemat komutacji, np. na taki:

A+, A-

A-, B+

B+,B-

B-, A+

Oczywiście jeśli masz driver bipolarny, powyższy schemat nie ma sensu.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.