Witam..
Mam silniczek krokowy z 6-cioma przewodami, oporze uzwojeń ok 9 om, prądzie ok 0,3 A oraz podane jest, że posiada 1,875 stopnia na krok. Steruje nim przez uP AT90S2313. A to prosty programik w C:
(Mikrokontroler taktowany kwarcem 4MHz)
Wg danych na silniczku, gdy w pętli for(); ustawię t = 32, kąt powinien wynieść 60 st. Bo 32*1,875 = 60. Natomiast w rzeczywistości silniczek robi 180 st, co daje 5,625 i ta stała pojawia się w każdym przypadku.. Dlaczego na silniczku pisze inaczej, a doświadczalnie jest inaczej? Czy stopień/krok jest zależny od prądu uzwojenia?
Drugie pytanie a w zasadzie problem.. mam wrażenie, że silniczek jakby nawet obracając się płynnie w jedną stronę, posiada jakieś małe drgania w lewo i prawo, drgania te nie są odczuwalne/dostrzegane okiem przy większej częstotliwości. Ale przy większej częstotliwości (max. w programie jest orzy wpisaniu do funkcji _ms_delay() wartości 2). Wówczas jest bardzo płynnie, ale przy samym starcie silniczek drga mocniej w przeciwną stronę do ruchu, którym za chwilę płynnie będzie sie poruszał.. Dlaczego? jak to zniwelować? Czy to wada techniczna? Czy coś źle steruję?
Z góry dziękuję za wskazówki..
Pozdrawiam, galsan
Mam silniczek krokowy z 6-cioma przewodami, oporze uzwojeń ok 9 om, prądzie ok 0,3 A oraz podane jest, że posiada 1,875 stopnia na krok. Steruje nim przez uP AT90S2313. A to prosty programik w C:
#include <avr/io.h>
#include <avr/delay.h>
unsigned char a[4] = {(1<<0), (1<<1), (1<<2), (1<<3)};
unsigned char i = 0;
void main()
{
DDRB = 255;
PORTB = 0;
DDRD = 0;
PORTD = 3;
unsigned char r = 0;
for(int t = 0; t<32; t++){
for(r = 0; r<3; r++){
PORTB = a[i];
_delay_ms(40);
i++;
if(i>3) i=0;
};
PORTB=0;
_delay_ms(1000);
};
PORTB=0;
return 0;
}
(Mikrokontroler taktowany kwarcem 4MHz)
Wg danych na silniczku, gdy w pętli for(); ustawię t = 32, kąt powinien wynieść 60 st. Bo 32*1,875 = 60. Natomiast w rzeczywistości silniczek robi 180 st, co daje 5,625 i ta stała pojawia się w każdym przypadku.. Dlaczego na silniczku pisze inaczej, a doświadczalnie jest inaczej? Czy stopień/krok jest zależny od prądu uzwojenia?
Drugie pytanie a w zasadzie problem.. mam wrażenie, że silniczek jakby nawet obracając się płynnie w jedną stronę, posiada jakieś małe drgania w lewo i prawo, drgania te nie są odczuwalne/dostrzegane okiem przy większej częstotliwości. Ale przy większej częstotliwości (max. w programie jest orzy wpisaniu do funkcji _ms_delay() wartości 2). Wówczas jest bardzo płynnie, ale przy samym starcie silniczek drga mocniej w przeciwną stronę do ruchu, którym za chwilę płynnie będzie sie poruszał.. Dlaczego? jak to zniwelować? Czy to wada techniczna? Czy coś źle steruję?
Z góry dziękuję za wskazówki..
Pozdrawiam, galsan