Hallo zusammen,
leider verstehe ich (noch) nicht viel von der Programmierung, versuche
mich aber einzuarbeiten.
Nun habe ich einen kleinen Skript geschrieben um die Fehlerquote bei
verschiedenen Schrittmotoren zu testen, nur leider funktioniert es nicht
wie geplant.
Hier erstmal der Skript:
1 | int signal=9;
|
2 | int Richtung=4;
|
3 |
|
4 | //Pinbenennung
|
5 |
|
6 | int zahl=0;
|
7 | int umkehrung=1;
|
8 |
|
9 | //variablen
|
10 |
|
11 | void setup()
|
12 |
|
13 | {
|
14 |
|
15 | pinMode(signal, OUTPUT);
|
16 | pinMode(Richtung, OUTPUT);
|
17 |
|
18 | //Pins als Ausgang
|
19 |
|
20 | }
|
21 |
|
22 | void loop()
|
23 | {
|
24 |
|
25 | zahl = zahl + umkehrung ;
|
26 |
|
27 | //Zahl um 1 erhöhen
|
28 |
|
29 | digitalWrite(signal, !digitalRead(signal));
|
30 |
|
31 | //ein Schritt
|
32 |
|
33 | delay(500);
|
34 |
|
35 | //warten
|
36 |
|
37 | if (zahl == 0 || zahl == 8) {
|
38 |
|
39 | //Wenn Zahl 0 oder 8 ist...
|
40 |
|
41 | digitalWrite(Richtung, !digitalRead(Richtung));
|
42 |
|
43 | //Richtung wechseln
|
44 |
|
45 | umkehrung = -umkehrung ;
|
46 | }
|
47 |
|
48 | //Vorzeichenwechsel um hoch oder runter zu zählen
|
49 |
|
50 | }
|
Eigentlich dachte ich, man könnte nicht so viel falsch machen allerdings
dreht sich der Motor immer nur 4 Schritte in eine Richtung und wechselt
dann die Richtung und nicht wie geplant nach 8.