L297 Schrittmotoransteuerung mit PIC18F452

Gast #1451095
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!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.