ich hätt' nicht damit anfangen sollen.
Immer noch hässlich, aber die Warnings (vom TO allerdings) sind weg.
#define LED1 2
#define LED2 3
#define ALARM 4
#define TEST1 5
#define TEST2 6
#define CHECK1 7
#define CHECK2 8
#define DIMMER 1 // ganz schlecht, das ist Teil der seriellen Schnittstelle
const byte ignorePin1 = 11; // GPIO mit externem Pulldown Widerstand zum Abschalten der Alarmierung
const byte ignorePin2 = 12;
const byte resetPin1 = A1; // GPIO mit externem Pulldown Widerstand zum Aktivieren der Alarmierung
const byte resetPin2 = A2;
bool isActive1 = true; // bei false unterbleibt bei Alarm das gepiepse
bool isActive2 = true;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(ALARM, OUTPUT); // wird im Sketch nicht verwendet ???
pinMode(CHECK1, INPUT);
pinMode(CHECK2, INPUT);
pinMode(TEST1, INPUT);
pinMode(TEST2, INPUT);
}
void loop() {
int pwm = analogRead(DIMMER);
if (digitalRead(TEST1) && digitalRead(CHECK1)) // Wenn TEST auf HIGH und CHECK auf HIGH steht ist alles in Ordnung.
{
digitalWrite(LED1, pwm);
delay(50);
isActive1 = true; // rücksetzen in Normalzustand
// if (digitalRead(resetPin1) == HIGH) isActive1 = true; // Alternativ rücksetzen mit separatem Taster
}
if (digitalRead(TEST1) && !digitalRead(CHECK1)) // Wenn TEST auf HIGH, CHECK jedoch auf LOW steht soll ein Alarm angehen.
{
if (digitalRead(ignorePin1) == HIGH) isActive1 = false;
if (isActive1)
{
digitalWrite(LED1, pwm);
tone(4, 1000);
delay(1000);
digitalWrite(LED1, 0);
noTone(4);
delay(1000);
}
}
if (digitalRead(TEST2) && digitalRead(CHECK2))
{
digitalWrite(LED2, pwm);
delay(50);
}
if (digitalRead(TEST2) && !digitalRead(CHECK2))
{
digitalWrite(LED2, pwm);
tone(4, 1000);
delay(1000);
digitalWrite(LED2, 0);
noTone(4);
delay(1000);
}
}