invert relay bool

This commit is contained in:
lexzach 2023-03-25 23:51:21 -04:00
parent a35cbc7773
commit 8ef9ec0659
Signed by: Lexzach
GPG Key ID: B574880929E6F1F0

View File

@ -3,6 +3,8 @@
#include <LiquidCrystal_I2C.h> #include <LiquidCrystal_I2C.h>
#include <string.h> #include <string.h>
bool invertRelay = false; //------------------IF YOUR RELAYS OPERATE THE OPPOSITE OF HOW YOU EXPECT, CHANGE THIS TO 'TRUE'
unsigned long systemClock; //-----------------SYSTEM CLOCK [VERY IMPORTANT] unsigned long systemClock; //-----------------SYSTEM CLOCK [VERY IMPORTANT]
unsigned long lastPulse; //-------------------LAST void loop() PULSE unsigned long lastPulse; //-------------------LAST void loop() PULSE
bool failsafeMode = false; // If panel fails to boot, you can enter a reduced-feature down panel that is guaranteed to work bool failsafeMode = false; // If panel fails to boot, you can enter a reduced-feature down panel that is guaranteed to work
@ -241,9 +243,16 @@ void setup() {
pinMode(zone2Pin, INPUT); //zone 2 pinMode(zone2Pin, INPUT); //zone 2
pinMode(buzzerPin, OUTPUT); //buzzer pinMode(buzzerPin, OUTPUT); //buzzer
digitalWrite(hornRelay, HIGH); //horn
digitalWrite(strobeRelay, HIGH); //strobe if (not invertRelay){
digitalWrite(smokeDetectorRelay, HIGH); //smoke relay digitalWrite(hornRelay, HIGH); //horn
digitalWrite(strobeRelay, HIGH); //strobe
digitalWrite(smokeDetectorRelay, HIGH); //smoke relay
} else {
digitalWrite(hornRelay, LOW); //horn
digitalWrite(strobeRelay, LOW); //strobe
digitalWrite(smokeDetectorRelay, LOW); //smoke relay
}
pinMode(sclPin, OUTPUT); //scl pinMode(sclPin, OUTPUT); //scl
pinMode(sdaPin, OUTPUT); //sda pinMode(sdaPin, OUTPUT); //sda
@ -386,7 +395,11 @@ void setup() {
panelUnlocked = (digitalRead(keySwitchPin) and keyRequired) ? true : false; //check the key status on startup panelUnlocked = (digitalRead(keySwitchPin) and keyRequired) ? true : false; //check the key status on startup
digitalWrite(silenceLed, LOW); digitalWrite(silenceLed, LOW);
digitalWrite(alarmLed, LOW); digitalWrite(alarmLed, LOW);
digitalWrite(smokeDetectorRelay, LOW); //turn on smoke relay if (invertRelay){
digitalWrite(smokeDetectorRelay, HIGH); //turn on smoke relay
} else {
digitalWrite(smokeDetectorRelay, LOW); //turn on smoke relay
}
Serial.println("-=- STARTUP COMPLETE -=-"); Serial.println("-=- STARTUP COMPLETE -=-");
} else { } else {
Serial.println("-=- ENTERING FAILSAFE MODE -=-"); Serial.println("-=- ENTERING FAILSAFE MODE -=-");
@ -402,7 +415,11 @@ void setup() {
lcd.setCursor(0,1); lcd.setCursor(0,1);
lcd.print("SYSTEM NORMAL"); lcd.print("SYSTEM NORMAL");
digitalWrite(readyLed, HIGH); digitalWrite(readyLed, HIGH);
digitalWrite(smokeDetectorRelay, LOW); //turn on smoke relay if (invertRelay){
digitalWrite(smokeDetectorRelay, HIGH); //turn on smoke relay
} else {
digitalWrite(smokeDetectorRelay, LOW); //turn on smoke relay
}
} }
lastPulse = millis(); //start last pulse lastPulse = millis(); //start last pulse
} }
@ -421,24 +438,48 @@ void noTone() {
} }
void hornOn(bool on){ void hornOn(bool on){
if (on){ if (on){
digitalWrite(hornRelay, LOW); //turn on horn relay if (invertRelay){
digitalWrite(hornRelay, HIGH); //turn on horn relay
} else {
digitalWrite(hornRelay, LOW); //turn on horn relay
}
} else { } else {
digitalWrite(hornRelay, HIGH); //turn off horn relay if (invertRelay){
digitalWrite(hornRelay, LOW); //turn on horn relay
} else {
digitalWrite(hornRelay, HIGH); //turn on horn relay
}
} }
} }
void strobeOn(bool on){ void strobeOn(bool on){
if (on){ if (on){
digitalWrite(strobeRelay, LOW); //turn on strobe relay without strobe sync if (invertRelay){
digitalWrite(strobeRelay, HIGH); //turn on strobe relay without strobe sync
} else {
digitalWrite(strobeRelay, LOW); //turn on strobe relay without strobe sync
}
} else { } else {
digitalWrite(strobeRelay, HIGH); //turn off strobe relay if (invertRelay){
digitalWrite(strobeRelay, LOW); //turn on strobe relay without strobe sync
} else {
digitalWrite(strobeRelay, HIGH); //turn on strobe relay without strobe sync
}
} }
} }
void smokeDetectorOn(bool on){ void smokeDetectorOn(bool on){
if (on){ if (on){
digitalWrite(smokeDetectorRelay, LOW); //turn on smoke relay if (invertRelay){
digitalWrite(smokeDetectorRelay, HIGH); //turn on smoke relay
} else {
digitalWrite(smokeDetectorRelay, LOW); //turn on smoke relay
}
} else { } else {
digitalWrite(smokeDetectorRelay, HIGH); //turn off smoke relay if (invertRelay){
digitalWrite(smokeDetectorRelay, LOW); //turn on smoke relay
} else {
digitalWrite(smokeDetectorRelay, HIGH); //turn on smoke relay
}
} }
} }
//---------------------------------------------------------------------------------------- functions for turning certain things on and off //---------------------------------------------------------------------------------------- functions for turning certain things on and off
@ -1963,8 +2004,13 @@ void failsafe(){ //--------------------------------------------- FAILSAFE MODE I
fullAlarm = true; fullAlarm = true;
silenced = false; silenced = false;
digitalWrite(alarmLed, HIGH); digitalWrite(alarmLed, HIGH);
digitalWrite(hornRelay, LOW); if (invertRelay){
digitalWrite(strobeRelay, LOW); digitalWrite(hornRelay, HIGH);
digitalWrite(strobeRelay, HIGH);
} else {
digitalWrite(hornRelay, LOW);
digitalWrite(strobeRelay, LOW);
}
lcd.clear(); lcd.clear();
lcd.setCursor(0,0); lcd.setCursor(0,0);
lcd.print("FAILSAFE MODE"); lcd.print("FAILSAFE MODE");
@ -1973,8 +2019,13 @@ void failsafe(){ //--------------------------------------------- FAILSAFE MODE I
} }
if (digitalRead(silenceButtonPin) and not silenced and fullAlarm){ if (digitalRead(silenceButtonPin) and not silenced and fullAlarm){
silenced = true; silenced = true;
digitalWrite(hornRelay, HIGH); if (invertRelay){
digitalWrite(silenceLed,HIGH); digitalWrite(hornRelay, LOW);
digitalWrite(strobeRelay, LOW);
} else {
digitalWrite(hornRelay, HIGH);
digitalWrite(strobeRelay, HIGH);
}
digitalWrite(alarmLed,LOW); digitalWrite(alarmLed,LOW);
lcd.clear(); lcd.clear();
lcd.setCursor(0,0); lcd.setCursor(0,0);
@ -1983,8 +2034,15 @@ void failsafe(){ //--------------------------------------------- FAILSAFE MODE I
lcd.print("SILENCED"); lcd.print("SILENCED");
} }
if (digitalRead(resetButtonPin)){ if (digitalRead(resetButtonPin)){
digitalWrite(smokeDetectorRelay, HIGH); if (invertRelay){
digitalWrite(hornRelay, HIGH); digitalWrite(smokeDetectorRelay, LOW);
digitalWrite(hornRelay, LOW);
digitalWrite(strobeRelay, LOW);
} else {
digitalWrite(smokeDetectorRelay, HIGH);
digitalWrite(hornRelay, HIGH);
digitalWrite(strobeRelay, HIGH);
}
digitalWrite(silenceLed,LOW); digitalWrite(silenceLed,LOW);
digitalWrite(alarmLed,LOW); digitalWrite(alarmLed,LOW);
digitalWrite(readyLed,LOW); digitalWrite(readyLed,LOW);