/******************************************************************************* * Türkontrolle * * 2025-01-15 Reich D. * * Eingänge werden gegen GND gezogen * PIN GND * ├─ PIN 7 : AUF, PIN 3 wird auf 5V gesetzt (Relais 1 wird angezogen) * └─ PIN 8 : ZU, PIN 4 wird auf 5V gesetzt (Relais 2 wird angezogen) * * Die Relaisplatine wird konstant mit 12V versorgt (und auch der Arduino). * Die Eingänge IN1 und IN2 werden vom Arduino jeweils nach Abfrage der * Eingänge auf 5V gesetzt. Das jeweilige Relais schaltet den Bluetooth- * schalter für 200ms. Danach wird 5 Sekunden gewartet, damit der Bluetooth- * schalter nicht unnötig "gedrückt" wird. * */ // Eingänge const int BUTTON_AUF_PIN = 7; const int BUTTON_ZU_PIN = 8; // Ausgänge const int RELAY_AUF_PIN = 3; const int RELAY_ZU_PIN = 4; // Standardwerte const int BEGIN_DELAY = 100; const int BUTTON_DELAY = 200; const int DELAY = 4900; const int BAUD = 9600; // Wir geben das Kompilierdatum auf der seriellen Schnittstelle beim Programmstart // aus. Damit kann man später besser einschätzen, welche Programmversion auf dem // Mikroprozessor läuft. const char compile_date[] = __DATE__ " " __TIME__; void setup() { Serial.begin(BAUD); delay(1000); Serial.print("Compiled on "); Serial.println(compile_date); pinMode(BUTTON_AUF_PIN, INPUT_PULLUP); pinMode(BUTTON_ZU_PIN, INPUT_PULLUP); pinMode(RELAY_AUF_PIN, OUTPUT); pinMode(RELAY_ZU_PIN, OUTPUT); } void loop() { // 100ms warten damit wir keine falsche Eingabe an den // Eingängen erhalten delay(BEGIN_DELAY); // Abfrage, ob ein "Knopf" gedrückt ist (am Türcodeschloss) int buttonAufState = digitalRead(BUTTON_AUF_PIN); int buttonZuState = digitalRead(BUTTON_ZU_PIN); if(buttonZuState == LOW) { Serial.println("SCHLIESSEN AKTIVIERT"); digitalWrite(RELAY_ZU_PIN, HIGH); delay(BUTTON_DELAY); digitalWrite(RELAY_ZU_PIN, LOW); Serial.println("SCHLIESSEN BEENDET - warte 5 Sekunden"); delay(DELAY); } else if(buttonAufState == LOW) { Serial.println("OEFFNEN AKTIVIERT"); digitalWrite(RELAY_AUF_PIN, HIGH); delay(BUTTON_DELAY); digitalWrite(RELAY_AUF_PIN, LOW); Serial.println("OEFFNEN BEENDET - warte 5 Sekunden"); delay(DELAY); } }