Hallo Zusammen,
ich bastel mir gerade ein kleines Programm zusammen, welches Rechtecksignal für eine Schrittmotorendstufe ausgibt.
Klar, gibts schon.. aber ich wollt mich mal probieren.. Die Rampe zum Anfahren funktioniert ja auch schon..
Mein Problem gerade ist, dass er sich schlicht verrechnet... Und meines erachtens bin ich noch locker im Zahlenbereich von long:
void movemm(int mm){
long steps=mm*spr*wayofstep/p;
Serial.println(" ");
Serial.println("mm:");
Serial.println(mm);
Serial.println("spr:");
Serial.println(spr);
Serial.println("p:");
Serial.println(p);
Serial.println("wayofstep");
Serial.println(wayofstep);
Serial.print("steps in movemm: ");
Serial.println(steps);
//ramp(steps);
Der Serielle Monitor haut folgendes raus..
mm:
2
spr:
200
p:
2
wayofstep
4
steps in movemm: 800 -->richtig
mm:
4
spr:
200
p:
2
wayofstep
4
steps in movemm: 1600 -->richtig
mm:
64
spr:
200
p:
2
wayofstep
4
steps in movemm: -7168 -->falsch, richtig wäre 25600
mm:
100
spr:
200
p:
2
wayofstep
4
steps in movemm: 7232 -->falsch, richtig wäre 40000
mm:
122
spr:
200
p:
2
wayofstep
4
steps in movemm: 16032 -->falsch, richtig wäre 48800
mm:
85
spr:
200
p:
2
wayofstep
4
steps in movemm: 1232 -->falsch, richtig wäre 34000
Hat da jemand ne Idee?
Viele Grüße und vielen Dank schonmal im voraus!
Problem kurz nach dem Posting gelöst -.-
Die anderen Variablen waren vom Typ int.. Hab nun alle auf long geändert.. Funktioniert!