Hallo. Habe ein klitzekleines Problem mit meiner Programmierung. Die Digitaleingänge werden nicht abgefragt. zumindest wird nix angenommen von denen. wenn mir jemand einen "wink mit dem Zaunpfahl" geben könnte währ ich sehr dankbar.
1 | /*Schrittmotorsteuerung für eine Barndormontierung
|
2 | |
3 | Frequenz einstellbar und über SerialPort veränderbar
|
4 |
|
5 | by Michael H
|
6 |
|
7 | version 0.8b
|
8 | */
|
9 | boolean dirPinx = 3; |
10 | boolean stepperPinx = 2; |
11 | boolean dirPiny = 7; |
12 | boolean stepperPiny = 6; |
13 | boolean x_ein_dir = 10; //Motor X Richtung |
14 | boolean en = 12; //Motorfreigabe |
15 | boolean x_4 = 11; //Motor X 4Hz |
16 | int x_sensor = A0; //X-Speed Poti |
17 | int x_sensor_val = 0; //X-Speed Speicher |
18 | boolean x = 0; |
19 | int d_x = true; |
20 | boolean enable = false; |
21 | boolean dir_old = false; |
22 | int serInp = 0; |
23 | |
24 | void setup() |
25 | {
|
26 | Serial.begin(9600); |
27 | pinMode(dirPinx, OUTPUT); |
28 | pinMode(stepperPinx, OUTPUT); |
29 | pinMode(dirPiny, OUTPUT); |
30 | pinMode(stepperPiny, OUTPUT); |
31 | pinMode(x_ein_dir, INPUT); |
32 | pinMode(en, INPUT); |
33 | pinMode(x_4, INPUT); |
34 | |
35 | //interne Pullups:
|
36 | digitalWrite(x_ein_dir, HIGH); |
37 | digitalWrite(en, HIGH); |
38 | digitalWrite(x_4, HIGH); |
39 | |
40 | // Y-Achse auf 0
|
41 | digitalWrite(dirPiny, LOW); |
42 | digitalWrite(stepperPiny, LOW); |
43 | }
|
44 | |
45 | |
46 | void step(boolean dir) |
47 | {
|
48 | |
49 | if(dir != dir_old) |
50 | {
|
51 | digitalWrite(dirPinx,dir); |
52 | delay(50); |
53 | }
|
54 | |
55 | digitalWrite(stepperPinx, HIGH); |
56 | delayMicroseconds(x_sensor_val); |
57 | digitalWrite(stepperPinx, LOW); |
58 | delayMicroseconds(x_sensor_val); |
59 | dir_old= dir; |
60 | return; |
61 | }
|
62 | |
63 | void loop(){ |
64 | |
65 | x = digitalRead(x_4); |
66 | |
67 | if (Serial.available()>0) |
68 | { serInp = Serial.read(); |
69 | Serial.flush(); |
70 | }
|
71 | |
72 | if( x = LOW ) |
73 | {
|
74 | x_sensor_val = 125; |
75 | }
|
76 | else x_sensor_val = serInp; |
77 | |
78 | enable = digitalRead(en); |
79 | |
80 | if (enable = true) |
81 | {
|
82 | d_x = digitalRead(x_ein_dir); |
83 | if(d_x = true) |
84 | {
|
85 | step(true); |
86 | }
|
87 | else
|
88 | {
|
89 | step(false); |
90 | }
|
91 | }
|
92 | |
93 | |
94 | }
|
mfg Michael