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 | }
|