PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Softwareproblem bei der Ansteuerung eines RN-Stepp 297 Schrittmotortreibers.



arvonbar
07.11.2011, 21:40
Hallo liebe Forengengemeinde,
ich hab folgendes Problem bei der Ansteuerung des RN-Stepp 297 Schrittmotortreibers. Vllt hat ja jemand direkt nen Tipp was ich an der Software ändern muss.
Der RN-Stepp 297 ist ein fertiges Treibermodul für Schrittmotoren bis 2 A. Zu Ansteuerung nutze ich einen Arduino Duemilanove mit Atmega 328.

Es werden insgesamt zwei Motoren unabhängig voneinander über zwei verschiedene Motortreiber angetrieben.
In dem Programm beschränke ich mich auf einen Motor der in Abhängigkeit von einem Beschleunigungssensor gesteuert werden soll.
Der Motortreiber verfügt über einen Takteingang. Bei jeder Groundflanke bewegt sich der Motor einen Schritt.



const int M_1takt = 13; // Motortakt Pin
int XPin=0; //Analogsensor Eingang
int M_1stat= LOW; // Motorstatus
long vormilli = 0; // Zeit vor Aktualisierung

// Intervallänge in ms

void setup() {
pinMode(M_1takt, OUTPUT);
}

void loop()
{
int interval = analogRead(XPin);
unsigned long aktuellmilli= millis();

if(aktuellmilli - vormilli> interval) {
vormilli= aktuellmilli;

if (M_1stat== LOW)
M_1stat= HIGH;
else
M_1stat= LOW;

digitalWrite(M_1takt, M_1stat);
}
}



Wenn ich für das Intervall feste Werte vorgebe also nicht mit analogRead einlese funktioniert es. Nur bei Daten von dem Beschleunigungssensor nicht. Wieso? Nen Timingproblem?

PicNick
08.11.2011, 09:23
Ich würde auf Verdacht erstmal "interval" auch als unsigned long definieren.