Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. #include <EEPROM.h> // Bibliothek für EEPROM einbinden
  2.  
  3. //===================================================================================
  4. // Konstanten
  5. //-----------------------------------------------------------------------------------
  6. // Festlegung der Anschlüsse
  7. const int TasterPin=2; // Eingang für Taster (LOW bei Betätigung)
  8.  
  9. const int RelaisPin=10; // Ausgang für Relais
  10. const int Led1Pin=11; // Ausgang für Led 1
  11. const int Led2Pin=12; // Ausgang für Led 2
  12.  
  13. // Eeprom-Speicheradressen
  14. const int VerstaerkerEepromAdr=0; // EEPROM-Speicheradresse
  15. // für letzte Einstellung
  16.  
  17. //===================================================================================
  18. // Variablen
  19. //-----------------------------------------------------------------------------------
  20. boolean TasterVorher; // speichert den vorherigen Zustand des Tasters
  21. boolean TasterAktuell; // speichert den aktuellen Zustand des Tasters
  22.  
  23. int Verstaerker; // speichert den ausgewählten Verstärker, 1 oder 2
  24.  
  25. //===================================================================================
  26. // Initialisierung
  27. //-----------------------------------------------------------------------------------
  28. void setup() {
  29. pinMode(TasterPin,INPUT); // Anschlüsse einstellen
  30. pinMode(RelaisPin,OUTPUT); // dito
  31. pinMode(Led1Pin,OUTPUT); // dito
  32. pinMode(Led2Pin,OUTPUT); // dito
  33.  
  34. Verstaerker=EEPROM.read(VerstaerkerEepromAdr); // letzte Einstellung holen
  35. if (Verstaerker<1 || Verstaerker>2) Verstaerker=1; // eventuell gültig machen
  36. schalteRelaisUndLeds(); // Relais und Leds entsprechend einstellen
  37.  
  38. TasterVorher=digitalRead(TasterPin); // Taster einlesen
  39. }
  40.  
  41. //===================================================================================
  42. // Programmschleife
  43. //-----------------------------------------------------------------------------------
  44. void loop() {
  45. TasterAktuell=digitalRead(TasterPin); // aktuellen Zustand des Tasters einlesen
  46.  
  47. if (TasterAktuell==LOW && TasterVorher==HIGH) { // wurde Taster gerade betätigt?
  48. if (Verstaerker==1) Verstaerker=2; else Verstaerker=1; // Verstärker umschalten
  49. EEPROM.update(VerstaerkerEepromAdr,Verstaerker); // Einstellung speichern
  50. schalteRelaisUndLeds(); // Relais und Leds entsprechend schalten
  51. }
  52.  
  53. TasterVorher=TasterAktuell; // Tastenzustand für nächsten Durchlauf merken
  54. delay(20); // zum Entprellen etwas warten
  55. }
  56.  
  57. //===================================================================================
  58. // Unterprogramm
  59. //-----------------------------------------------------------------------------------
  60. void schalteRelaisUndLeds() {
  61. if (Verstaerker==1) {
  62. digitalWrite(RelaisPin,LOW); // Relais ausschalten
  63. digitalWrite(Led1Pin,HIGH); // Led 1 einschalten
  64. digitalWrite(Led2Pin,LOW); // Led 2 ausschalten
  65. } else {
  66. digitalWrite(RelaisPin,HIGH); // Relais einschalten
  67. digitalWrite(Led1Pin,LOW); // Led 1 ausschalten
  68. digitalWrite(Led2Pin,HIGH); // Led 2 einschalten
  69. }
  70. }
  71.  
  72. //===================================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement