Driva bipolära stegmotorer
Postat: 26 april 2009, 20:09:08
Hej!
Jag tänkte bygga en liten robotarm m.h.a. stegmotorer som jag har fått tag i gratis (= många blandade modeller) två av dessa är bipoära och vägrar röra sig ett steg.
Jag försöker driva dem med en driver (som jag också har fått tag i gratis) märkt RIFA u238 P8D 3538-13, kan det vara så att drivern endast klarar att driva unipolära
stegmotorer? Jag har ej lyckats hitta något datablad för dem men dem verkar vara pinkompatibla med uln2803. Koden jag försöker köra med är
Dessutom skulle det vara bra med lite formler för hur mycket motorn måste klara att lyfta om jag tex vill ha en tvådelad arm (armbåge) på 40cm och vill klara att lyfta 100g + armens vikt.
Jag tänkte bygga en liten robotarm m.h.a. stegmotorer som jag har fått tag i gratis (= många blandade modeller) två av dessa är bipoära och vägrar röra sig ett steg.
Jag försöker driva dem med en driver (som jag också har fått tag i gratis) märkt RIFA u238 P8D 3538-13, kan det vara så att drivern endast klarar att driva unipolära
stegmotorer? Jag har ej lyckats hitta något datablad för dem men dem verkar vara pinkompatibla med uln2803. Koden jag försöker köra med är
Kod: Markera allt
void main() {
PORTA = 0;
TRISA = 0;
CMCON = 7;
PORTA = 1;
PORTB = 0;
TRISB = 0;
PORTB = 1;
while(1) { // 1A 1B 2A 2B
PORTA.F0 = 0; // Steg 11: 1 0 0 0 0
PORTB.F0 = 0; // Steg 21: 1 0 0 0
delay_ms(4);
PORTA.F3 = 1; // Steg 18: 1 0 0 1 3
PORTB.F3 = 1; // Steg 28: 1 0 0 1
delay_ms(4);
PORTA.F1 = 0; // Steg 12: 1 1 0 0 1
PORTB.F1 = 0; // Steg 22: 1 1 0 0
delay_ms(4);
PORTA.F0 = 1; // Steg 13: 0 1 0 0 0
PORTB.F0 = 1; // Steg 23: 0 1 0 0
delay_ms(4);
PORTA.F2 = 0; // Steg 14: 0 1 1 0 2
PORTB.F2 = 0; // Steg 24: 0 1 1 0
delay_ms(4);
PORTA.F1 = 1; // Steg 15: 0 0 1 0 1
PORTB.F1 = 1; // Steg 25: 0 0 1 0
delay_ms(4);
PORTA.F3 = 0; // Steg 16: 0 0 1 1 3
PORTB.F3 = 0; // Steg 26: 0 0 1 1
delay_ms(4);
PORTA.F2 = 1; // Steg 17: 0 0 0 1 2
PORTB.F2 = 1; // Steg 27: 0 0 0 1
delay_ms(4);
}
}