www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik L297 Schrittmotoransteuerung mit PIC18F452


Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falsche Info!!!

Es handelt sich hierbei nur um einen L298 Baustein!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.