Forum: Mikrocontroller und Digitale Elektronik L297 Schrittmotoransteuerung mit PIC18F452


von Tobias (Gast)


Lesenswert?

Hallo Hobby-Bastler,

ich habe ziemliche Schwierigkeiten mit der Programmierung von 
Schrittmotoren. Ich möchte gerne einen Schrittmotor unter 
Vollschritt-Betrieb entweder vorwärts oder rückwärts laufen lassen. Das 
Problem an der ganzen Sache ist aber, daß der Schrittmotortreiber 
(Pollin) nur mit einem L297 Baustein ausgerüstet ist und somit alle vier 
Spulenenden eines bipolaren Schrittmotors angeteuert werden müssen.

Ich habe es nun mithilfe eines Kollegen geschafft, den Schrittmotot in 
eine Richtung um eine vorgegebene Anzahl von Schritten zu bewegen. 
Ändere ich den Code ab, so dass er sich in entgegen gesetzter Richtung 
drehen müßte ruckelt der Motor und übberspringt Schritte.

Hier ist das funktionierende Codeschnipsel:

Interrupt-Serviceroutine 
**************************************************/
#pragma interrupt low_isr
void low_isr (void)
//Die Interrupt-Service-Routine wird bei Überlauf des Counters (also bei 
INTCONbits.TMR0IF=1) angesprungen.
{
  TRISC=0;

  PIR1bits.TMR1IF=0;  //Interruptflag zurücksetzen


  if (r<steps)
  {
    Rlncf(PORTC,1,0);   // Motor Linkslauf
    if (PORTC>8) PORTC=1;
  }




  else if (r=steps)    // Motor aus
  {
    T1CONbits.TMR1ON=0;
    TRISC=0x01;
    PORTC=0x01;
    run=0;
  }

  WriteTimer1(62500);
  r++;

}//end low_isr


#pragma interrupt high_isr
void high_isr (void)
{
  INTCONbits.TMR0IF = 0;        // Interruptflag zurücksetzen
}//end high_isr
**************************************************/

Für den Fall, dass der Motor zurückdrehen soll brauche ich den
Code nur folgendermaßen umschreiben:

  if (r<steps)
  {
    Rrncf(PORTB,1,0);     // Motor Rechtslauf
    if (PORTB<1) PORTB=8;
  }


Die vier Pins (a,b,c,d) für den Schrittmotor greife ich am PORTC an den
bits RC0 bis RC3 ab.

Was mache ich falsch?

Viele Grüße und danke mal!

von Tobias (Gast)


Lesenswert?

Falsche Info!!!

Es handelt sich hierbei nur um einen L298 Baustein!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.