Hi all, i'm having a small problem with a fire alarm system i created, its a very basic system you hit a button and it sounds an alarm, yet i keep getting a false triggers and the bells are a sounding, iv'e recently modified the code to include pullup instead of the pulldown resistors i had on the buttons it worked for a short time but the problem persists, i know the code is long and laborious but i was looking for a stable basic code before i modified it, any help would be gratefully appreciated
#include <LiquidCrystal.h>
#include <Relay.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int PowerRelay = 46;
int AlarmRelay = 47;
int AlarmTest;
int AlarmTestButton = 49;
int ClearAlarm;
int ClearAlarmButton = 48;
int AlarmSilenceButton = 45;
int AlarmSilence;
const int FA1 = 30;
const int FA2 = 31;
const int FA3 = 32;
const int FA4 = 33;
const int FA5 = 34;
const int FA6 = 40;
const int FA7 = 36;
const int FA8 = 37;
const int FA9 = 38;
const int FA10 = 39;
int ButtonState1;
int ButtonState2;
int ButtonState3;
int ButtonState4;
int ButtonState5;
int ButtonState6;
int ButtonState7;
int ButtonState8;
int ButtonState9;
int ButtonState10;
void setup() {
pinMode (PowerRelay, OUTPUT);
pinMode (AlarmRelay, OUTPUT);
pinMode (ClearAlarmButton, INPUT);
pinMode (AlarmSilenceButton, INPUT);
digitalWrite (AlarmRelay, HIGH);
pinMode (PowerRelay, LOW);
pinMode (FA1, INPUT_PULLUP);
pinMode (FA2, INPUT_PULLUP);
pinMode (FA3, INPUT_PULLUP);
pinMode (FA4, INPUT_PULLUP);
pinMode (FA5, INPUT_PULLUP);
pinMode (FA6, INPUT_PULLUP);
pinMode (FA7, INPUT_PULLUP);
pinMode (FA8, INPUT_PULLUP);
pinMode (FA9, INPUT_PULLUP);
pinMode (FA10, INPUT_PULLUP);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("SYSTEM READY");
lcd.setCursor(0, 1);
lcd.print("NO FAULTS");
delay(1000);
}
void loop() {
AlarmTest = digitalRead (AlarmTestButton);
ClearAlarm = digitalRead (ClearAlarmButton);
AlarmSilence = digitalRead (AlarmSilenceButton);
ButtonState1 = digitalRead (FA1);
ButtonState2 = digitalRead (FA2);
ButtonState3 = digitalRead (FA3);
ButtonState4 = digitalRead (FA4);
ButtonState5 = digitalRead (FA5);
ButtonState6 = digitalRead (FA6);
//ButtonState7 = digitalRead (FA7);
//ButtonState8 = digitalRead (FA8);
//ButtonState9 = digitalRead (FA9);
//ButtonState10 = digitalRead (FA10);
if(ButtonState1 == LOW){
digitalWrite (AlarmRelay, LOW);
lcd.clear();
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("FITTING SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #1");
}
if(ButtonState2 == HIGH){
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("FITTING SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #2");
}
if(ButtonState3 == HIGH){
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("FITTING SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #3");
}
if(ButtonState4 == HIGH){
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("FABRICATION SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #1");
}
if(ButtonState5 == HIGH){
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("FABRICATION SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #2");
}
if(ButtonState6 == HIGH){
delay(150);
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MACHINE SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #1");
}
if(ButtonState7 == HIGH){
delay(150);
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("FITTING SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #1");
}
if(ButtonState8 == HIGH){
delay(150);
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("FITTING SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #2");
}
if(ButtonState9 == HIGH){
delay(150);
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MACHINE SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #");
}
if(ButtonState10 == HIGH){
delay(150);
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MACHINE SHOP!");
lcd.setCursor(0, 1);
lcd.print("ALARM NUMBER #");
}
if(AlarmTest == HIGH){
delay(150);
digitalWrite (AlarmRelay, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ALARMS IN TEST!");
delay(10000);
lcd.clear();
digitalWrite (AlarmRelay, HIGH);
lcd.setCursor(0, 1);
lcd.print("TEST COMPLETE");
delay(3000);
lcd.clear();
lcd.print("SYSTEM READY");
lcd.setCursor(0, 1);
lcd.print("NO FAULTS");
}
if (AlarmSilence == HIGH){
digitalWrite (AlarmRelay, HIGH);
}
if (ClearAlarm == HIGH){
digitalWrite (AlarmRelay, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("NO FIRES");
lcd.setCursor(0, 1);
lcd.print("ALL CLEAR");
delay(3000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("SYSTEM RESETTING");
delay(2000);
lcd.clear();
lcd.print("SYSTEM READY");
lcd.setCursor(0, 1);
lcd.print("NO FAULTS");
delay(250);
}
}