Forum: Mikrocontroller und Digitale Elektronik Skript als Schrittmotor-Test


von Hansel (Gast)


Lesenswert?

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.

von einer (Gast)


Lesenswert?

Hansel schrieb:

> digitalWrite(signal, !digitalRead(signal));

hier machst du "einen" Flankenwechsel
ein Takt besteht aber aus zwei davon.

von Hansel (Gast)


Lesenswert?

Achso, ich dachte ein Flake reicht aus weil im Datenblatt stand:

Step Clock input. The state machine makes one step on
each rising edge.

Werde gleich mal schauen ob es nun besser klappt, vielen Dank :)

von Hansel (Gast)


Lesenswert?

Super habe es gerade getestet und einfach nochmal

digitalWrite(signal, !digitalRead(signal));

eingefügt: der Motor macht alle 8 Schritte die er soll. Vielen Dank 
nochmal!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.