1 | #include <EEPROM.h>
|
2 | int acpin = A4;
|
3 | bool volt;
|
4 | bool spggut;
|
5 | unsigned long spggutstart;
|
6 | unsigned long spggutist;
|
7 | unsigned long spggutvz = 45;
|
8 | bool spgguta;
|
9 | bool speichern;
|
10 | int mp = 13; // Messpunkt, LED
|
11 | int drehungenende = 1200; // 1200Maximale Tischhöhe 118cm Hub 55cm
|
12 | int drehungenlinks;
|
13 | int drehungenrechts;
|
14 | bool led; //led MF zur Sichtkontrolle
|
15 | unsigned long ledstart;
|
16 | unsigned long ledist;
|
17 | unsigned long ledvz = 500;
|
18 | void setup() {
|
19 | drehungenlinks = drehungenende;
|
20 | drehungenrechts = drehungenende;
|
21 | pinMode(mp, OUTPUT);
|
22 | }
|
23 | void loop() {
|
24 | if(analogRead(acpin) > 500){volt = HIGH;} // >12V Tatfo hat 15VAC an Steuerwicklung
|
25 | else{volt = LOW;}
|
26 | if(volt == LOW){spggutist = millis(); // Monoflop
|
27 | if(spggutist - spggutstart > spggutvz){spggut = LOW;}}
|
28 | else{spggutstart = millis(); spggut = HIGH;}
|
29 | if(spggut != spgguta){ // Puls bei abfallender Flanke
|
30 | if(spgguta == HIGH){speichern =HIGH;}}
|
31 | else{speichern = LOW;}
|
32 | spgguta = spggut;
|
33 | if(speichern == HIGH){ eepromschreiben();}
|
34 | if(speichern == LOW){ledist = millis(); // Monoflop, damit ich die LED aufblitzen sehe
|
35 | if(ledist - ledstart > ledvz){led = LOW;}}
|
36 | else{ledstart = millis(); led = HIGH;}
|
37 | digitalWrite(mp,led); // Die LED blinkt auf, wenn man den Netzstecker zieht.
|
38 | }
|
39 | void eepromschreiben(){
|
40 | EEPROM.put(0, drehungenlinks);
|
41 | EEPROM.put(2, drehungenrechts);
|
42 | }
|