Steht leider nix drauf auf dem Motor .. das ist das Problem. Steht nur eine 6-stellige Nummer drauf, aber da find ich bei google nichts zu 
Naja, ich gehe mal davon aus, dass der auch 12 V benötigt. Werde den Widerstand der Spulen mal messen, dann kann ich ja I berechnen, oder?
Spätestens wenn der neue Motortreiber da ist, werde ich mich dann nochmal melden. Oder kann mir jetzt schon jemand helfen?
Und zwar habe ich das RN-Control und programmiere in C. Mein Programm sieht in etwa so aus wie das von torax. Meine Versorgungsspannung beträgt ~14,5V.
Wie kann ich dann daraus die 12V gewinnen? Muss ich da PWM nutzen? Und wie kann ich sicher gehen, dass mein Treiber nicht wieder durchfliegt? Getriebemotoren habe ich schon erfolgreich laufen gehabt ..
Viele Grüße und vielen Dank schonmal!
CsT
EDIT:
So, hab mal den Widerstand zwischen Spule 1a und 1b bzw. 2a und 2b gemessen. Dieser beträgt je 17,2 Ohm.
Mit I = U / R hätten wir dann I = 12 V / 17,2 Ohm = 0,70 A
Das würde der Motortreiber ja noch aushalten. Aber das ganze habe ich ja an 2 Spulen, wird das ganze da addiert? Dann hätte ich ja 1,4 A und das hält der L293D ja nicht mehr aus. Muss ich mich auf die Suche nach einem anderen Motor machen?
EDIT 2:
Hier noch die wichtigen Teile aus meinem Programm:
Code:
void init(void)
{
//Port A als Eingang deklarieren ( A/D-Wandler Eingänge )
DDRA = 0x00;
PORTA |= (1<<7); // Taster-Eingang Pullup an
//Port B als Ausgang deklarieren
DDRB = 0xff;
PORTB = 0x00;
//Port C als Ausgang deklarieren
DDRC = 0xff;
PORTC = 0xff;
//Port D als Ausgang deklarieren
DDRD = 0xff;
PORTD = 0x00;
// Timer 0 bzw. 2 Interrupt aktivieren
TIMSK |= (1<<TOIE0);
// Anfangswert auf 0 setzen
TCNT0 = 0x00;
// Prescaler
TCCR0 |= (1<<CS00)|(1<<CS02); // Timer 0: Prescaler 1024
}
void SM_init(void)
{
PORTB &= ~(1<<PB0);
PORTB &= ~(1<<PB1);
PORTC &= ~(1<<PC6);
PORTC &= ~(1<<PC7);
PORTD |= (1<<PD4);
PORTD |= (1<<PD5);
}
void TIMER0_OVF_vect(void)
{
Schritt++; // Fuer Schrittmotor
switch(Schritt)
{
case 0: break;
case 1: PORTB |= (1<<PB0); PORTB &= ~(1<<PB1); PORTC |= (1<<PC6); PORTC &= ~(1<<PC7); break;
case 2: break;
case 3: PORTB |= (1<<PB0); PORTB &= ~(1<<PB1); PORTC &= ~(1<<PC6); PORTC |= (1<<PC7); break;
case 4: break;
case 5: PORTB &= ~(1<<PB0); PORTB |= (1<<PB1); PORTC &= ~(1<<PC6); PORTC |= (1<<PC7); break;
case 6: break;
case 7: PORTB &= ~(1<<PB0); PORTB |= (1<<PB1); PORTC |= (1<<PC6); PORTC &= ~(1<<PC7); Schritt=0; break;
default: break;
}
}
int main(void)
{
// Ports initialisieren
init();
// Motor initialisieren
SM_init();
Schritt=0;
sei();
for(;;) // Endlosschleife fuer main
{
}
return 0;
}
Habe noch eine zweite Version probiert gehabt mit PWM, da ist der Motortreiber dann flöten gegangen .. Mit dieser Version hat der Motor sich gedreht gehabt, wurde aber sehr warm.
Lesezeichen