PROgramm schrittmotor

Gast #3102539
Lesenswert?

Hallo ich habe Mir ein Programm zur Ansteuerung eines Schrittmotors 
geschrieben... für die L297/298....

Fogende Portbelegung habe ich gewählt:

PWM = PD5   ( CLOCK)

PC0 = Reset
PC1 = Half/Full
PC2 = CW/CCW
PC3 = Enable
PC4 = Control

Das Programm sieht wie folgt aus:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  // Port C 0-3 als Ausgänge definieren
  DDRC = 0XFF;
  DDRD = 0xFF;
  // Timer intialisieren
  DDRD = 0x30;  // PD4 und PD5 als Ausgangfreigeben
  TCCR1B = 0x0D;  // Prescaler auf 1024
  TCCR1A = 0x83;
  OCR1A = (1024*197)/100;      // Tastgrad festlegen PD4
  OCR1B = (1024*197)/100;      // Tastgrad festlegen PD5

  //PORTC = 0x1F;
  //PORTD = 0xFF;
    while(1)
    {
    // Motortreiber ansteuern
  PORTC = 0x1C;

  }
}

Leider habe ich das Problem das mein Motor nur ganz leicht dreht wenn 
ich das PWM auf Masse ziehe ( eine Brücke lege) was mir natürlich schon 
sehr merkwürdig vorkommt... das zweite ist wenn er dreht und ich berühre 
das gehäuse bleibt er sofort stehen.

Kann mir diese Phänomen nicht erklären vielleicht könnt ihr mir Helfen 
woran das liegen könnte bzw. auch Mängel am Programm zu beseitigen...


Danke für die Mühen...
#3102582
Lesenswert?

> das zweite ist wenn er dreht und ich berühre
> das gehäuse bleibt er sofort stehen.

Dann würde ich nochmal alles auf Wackelkontakte prüfen.


Ansonsten würde ich an deiner Stelle mal alles ohne PWM machen. Du 
kannst ja beliebig langsam takten :-)
D.h. alle Ausgangsleitungen auf definierte statische Pegel und erst mal 
mit einem Voltmeter nachmessen.
Und dann erst mal laaaaaaaaangsam und gemütlich takten lassen. 1 
Clockpuls pro Sekunde oder noch langsamer reicht fürs erste, damit man 
sieht ob der Motor Schritte macht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren