EEPROM-Werte-Speichern_Tisch_20200130b.ino


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
}