Werte werden ignoriert

Gast #4792749
Lesenswert?

Hey Leute,

ich habe jetzt schon so ziemlich alles versucht und geprüft, aber der 
Code läuft nicht richtig.

wenn das Tor zu geht soll in void ZU() bei buttonPresses (Zähne am 
Zahnrad zählen) <30 das Tor nur noch mit gedrosselter Geschwindgkeit 
laufen, tut es aber nicht.

Bei Tor auf ist alles in ok und läuft auch so wie es soll.

Jetzt stelle ich mir die Frage:


"Wie zur Hölle geht das,wenn der Code identisch für beide Anweisungen 
ist?"

Ich bin für jede Hilfe dankbar :D



P.s. buttonPresses==0 ist Tor geschlossen und buttonPresses==159 ist Tor 
geöffnet.



1
#include <RCSwitch.h>
2

3
RCSwitch mySwitch = RCSwitch();
4

5

6
int PWM_AUF = 5; //  IBT2 PIN 1
7
int PWM_ZU = 4; // IBT2 PIN 2
8
int K1 = 6;//12v
9
int S3 = 7;//Schalter Tor auf/zu an HCG
10
int Initiator_1 = 10; // Initiator am Zahnrad
11
int S1 = 12;//Tor offen
12
int S2 = 11;//Tor geschlossen
13
int Fhem_Tor_auf = 9;
14
int Fhem_Tor_zu = 3;
15
int Tor_offen_an_Fhem = 7;
16
int Tor_zu_an_Fhem = 8;
17

18
int value_S1 = 0;
19
int value_S2 = 0;
20
int value_S3 = 0;
21
int value_In1 = 0;
22
int value_Fhem_Tor_auf = 0;
23
int value_Fhem_Tor_zu = 0;
24
int value_Tor_offen_an_Fhem = 0;
25
int value_Tor_zu_an_Fhem = 0;
26
int value_FFB = 0;
27
int counter_auf = 0;
28
int counter_zu = 0;
29
int val;
30
int buttonState;
31
int buttonPresses = 0;
32
int vals = 1023;
33
int vall = 370;
34

35

36

37
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
38
void setup() {
39
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
40
  pinMode(PWM_AUF, OUTPUT);
41
  pinMode(PWM_ZU, OUTPUT);
42
  pinMode(K1, OUTPUT);
43
  pinMode(S1, INPUT);
44
  pinMode(S2, INPUT);
45
  pinMode(S3, INPUT);
46
  pinMode(Initiator_1, INPUT);
47
  pinMode(Tor_offen_an_Fhem, OUTPUT);
48
  pinMode(Tor_zu_an_Fhem, OUTPUT);
49
  pinMode(Fhem_Tor_auf, INPUT);
50
  pinMode(Fhem_Tor_zu, INPUT);
51
  digitalWrite(K1, HIGH);
52
  Serial.begin(9600);
53
}
54

55
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
56
void loop() {
57
  value_S1 = digitalRead(S1);
58
  value_S2 = digitalRead(S2);
59
  value_S3 = digitalRead(S3);
60
  value_In1 = digitalRead(Initiator_1);
61
  value_Fhem_Tor_auf = digitalRead(Fhem_Tor_auf);
62
  value_Fhem_Tor_zu = digitalRead(Fhem_Tor_zu);
63
  val = value_In1;
64

65

66

67

68
  if (mySwitch.available())
69
  { int value = mySwitch.getReceivedValue();
70
    value_FFB = mySwitch.getReceivedValue();
71
    mySwitch.resetAvailable();
72
  }
73
  Serial.println(buttonPresses);
74

75

76

77
  //////////////////////////TOR AUF////////////////////////////////////////////////////////////////
78
  if ((buttonPresses == 0) && (value_S1 == 0) && (value_Fhem_Tor_auf == 1) || (value_S3 == 1) || (value_FFB == 452)) {
79
    counter_auf = 1;
80
  }
81

82
  if (buttonPresses == 159) {
83
    counter_auf = 0;
84
  }
85

86
  if (counter_auf == 1) {
87
    AUF();
88
    if (val != buttonState)
89
    {
90
      if (val == LOW)
91
      {
92
        buttonPresses++;
93
      }
94
    }
95
    buttonState = val;
96
    digitalWrite(K1, LOW);
97
  }
98
  else
99
  {
100
    analogWrite(PWM_AUF, 0);
101
  }
102
  /////////////////////////////TOR ZU///////////////////////////////////////////////////////////////
103

104
  if ((buttonPresses == 159) && (value_S2 == 0) && (value_Fhem_Tor_zu == 1) || (value_S3 == 1) || ( value_FFB == 452)) {
105
    (counter_zu = 1);
106
  }
107

108
  if ((buttonPresses == 0)) {
109
    counter_zu = 0;
110
  }
111

112
  if (counter_zu == 1) {
113
    ZU();
114

115
    if (val != buttonState)
116
    {
117
      if (val == LOW)
118
      {
119
        buttonPresses--;
120
      }
121
    }
122
    buttonState = val;
123

124
    digitalWrite(K1, LOW);
125
  }
126

127
  else
128
  {
129
    analogWrite(PWM_ZU, 0);
130
  }
131

132

133

134

135

136
  //////////////////////////////////K3//////////////////////////////////////////
137
  if ((counter_zu == 0) && (counter_auf == 0)) {
138
    digitalWrite(K1, HIGH);
139
  }
140
  value_FFB = 0;
141
}
142

143

144
//////////////////////////////////////////////////////////////////////////////////////////////////////
145
void ZU()
146
{
147

148

149
  if (buttonPresses > 100) {
150
    analogWrite(PWM_ZU, 400); Serial.print("wwwwwwwww");
151
  }
152
  if (buttonPresses < 100) {
153
    analogWrite(PWM_ZU, 1023); Serial.print("kkkkkkkkkk");
154
  }
155
}
156

157
///////////////////////////////////////////////////////////////////////////////////////////////
158
void AUF()
159
{
160

161

162
  if (buttonPresses < 150) {
163
    analogWrite(PWM_AUF, 1023);
164
  }
165
  if (buttonPresses > 150) {
166
    analogWrite(PWM_AUF, 390);
167
  }
168
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren