Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <EEPROM.h> // Bibliothek für EEPROM einbinden
- //===================================================================================
- // Konstanten
- //-----------------------------------------------------------------------------------
- // Festlegung der Anschlüsse
- const int TasterPin=2; // Eingang für Taster (LOW bei Betätigung)
- const int RelaisPin=10; // Ausgang für Relais
- const int Led1Pin=11; // Ausgang für Led 1
- const int Led2Pin=12; // Ausgang für Led 2
- // Eeprom-Speicheradressen
- const int VerstaerkerEepromAdr=0; // EEPROM-Speicheradresse
- // für letzte Einstellung
- //===================================================================================
- // Variablen
- //-----------------------------------------------------------------------------------
- boolean TasterVorher; // speichert den vorherigen Zustand des Tasters
- boolean TasterAktuell; // speichert den aktuellen Zustand des Tasters
- int Verstaerker; // speichert den ausgewählten Verstärker, 1 oder 2
- //===================================================================================
- // Initialisierung
- //-----------------------------------------------------------------------------------
- void setup() {
- pinMode(TasterPin,INPUT); // Anschlüsse einstellen
- pinMode(RelaisPin,OUTPUT); // dito
- pinMode(Led1Pin,OUTPUT); // dito
- pinMode(Led2Pin,OUTPUT); // dito
- Verstaerker=EEPROM.read(VerstaerkerEepromAdr); // letzte Einstellung holen
- if (Verstaerker<1 || Verstaerker>2) Verstaerker=1; // eventuell gültig machen
- schalteRelaisUndLeds(); // Relais und Leds entsprechend einstellen
- TasterVorher=digitalRead(TasterPin); // Taster einlesen
- }
- //===================================================================================
- // Programmschleife
- //-----------------------------------------------------------------------------------
- void loop() {
- TasterAktuell=digitalRead(TasterPin); // aktuellen Zustand des Tasters einlesen
- if (TasterAktuell==LOW && TasterVorher==HIGH) { // wurde Taster gerade betätigt?
- if (Verstaerker==1) Verstaerker=2; else Verstaerker=1; // Verstärker umschalten
- EEPROM.update(VerstaerkerEepromAdr,Verstaerker); // Einstellung speichern
- schalteRelaisUndLeds(); // Relais und Leds entsprechend schalten
- }
- TasterVorher=TasterAktuell; // Tastenzustand für nächsten Durchlauf merken
- delay(20); // zum Entprellen etwas warten
- }
- //===================================================================================
- // Unterprogramm
- //-----------------------------------------------------------------------------------
- void schalteRelaisUndLeds() {
- if (Verstaerker==1) {
- digitalWrite(RelaisPin,LOW); // Relais ausschalten
- digitalWrite(Led1Pin,HIGH); // Led 1 einschalten
- digitalWrite(Led2Pin,LOW); // Led 2 ausschalten
- } else {
- digitalWrite(RelaisPin,HIGH); // Relais einschalten
- digitalWrite(Led1Pin,LOW); // Led 1 ausschalten
- digitalWrite(Led2Pin,HIGH); // Led 2 einschalten
- }
- }
- //===================================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement