pinMode(Switch(INPUT_PULLUP);
??
this suggests something that doesn't match what you posted
you may need to post all of your code...
pinMode(Switch(INPUT_PULLUP);
??
this suggests something that doesn't match what you posted
you may need to post all of your code...
Ok, I see what your saying, but when I copied the error code in here, it inserted strange symbols in, so I tried to correct it myself, but got it wrong....
the coding is as the above set of code, and the error message is indeed
"pinMode(Switch, INPUT_PULLUP);"
sorry, my bad
Complete code which gives me the above error
#include "LiquidCrystal.h"
LiquidCrystal lcd(A5, A4, A3, A2, A1, A0);
#define RELAY_ON 0
#define RELAY_OFF 1
#define Buzzer 2 //output to buzzer +'ve
#define PIRin 3 //from PIR sensor
#define Switch 4 //switch to reverse trigger LED's for exit
// #define Turnon 1 //switch LED's on until switched off
#define RELAY1 5 //relay for LED light section 1 by post
#define RELAY2 6 //relay for LED light section 2
#define RELAY3 7 //relay for LED light section 3
#define RELAY4 8 //relay for LED light section 4
#define RELAY5 9 //relay for LED light section 5
#define RELAY6 10 //relay for LED light section 6
#define RELAY7 11 //relay for LED light section 7 step 1
#define RELAY8 12 //relay for LED light section 8 step 2
#define Led 13 //LED to indicate outside lights triggereed
int count = 0; // Count the number of triggers
int Exit = LOW; // set Exit switch to LOW
int Gate = LOW; // Sets PIR Sensors to Low to start with
// PIR power = Brown > blue > Yellow
// earth = Green > black > Green
// signal = Orange > yellow > Orange
void setup() {
lcd.begin(16, 2); // set up the LCD's number of columns(16) and rows(2):
{
Serial.begin (9600); // initiate serial com
{
// Initialise the Arduino data pins for OUTPUT / INPUT options
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
pinMode(RELAY5, OUTPUT);
pinMode(RELAY6, OUTPUT);
pinMode(RELAY7, OUTPUT);
pinMode(RELAY8, OUTPUT);
pinMode(PIRin, INPUT);
pinMode(Led, OUTPUT);
pinMode(Switch, INPUT_PULLUP);
pinMode(Buzzer, OUTPUT);
// set the outputs ready to start
digitalWrite(RELAY1, RELAY_OFF);
digitalWrite(RELAY2, RELAY_OFF);
digitalWrite(RELAY3, RELAY_OFF);
digitalWrite(RELAY4, RELAY_OFF);
digitalWrite(RELAY5, RELAY_OFF);
digitalWrite(RELAY6, RELAY_OFF);
digitalWrite(RELAY7, RELAY_OFF);
digitalWrite(RELAY8, RELAY_OFF);
Gate = digitalRead(PIRin); // read and rename input value
Exit = digitalRead(Switch); // read and rename input value
lcd.setCursor(0, 0);
lcd.print(" CALIBRATING! ");
delay (1000);
lcd.setCursor(0, 1);
lcd.print(count);
lcd.setCursor(3, 1);
lcd.print(" Objects Seen");
}
}
}
void loop() {
Gate = digitalRead(PIRin); // read and rename input value
Exit = digitalRead(Switch); // read and rename input value
Serial.println(Exit);
// Serial.println(PIRin);
lcd.setCursor(0, 0); // set up lcd display with text..
lcd.print(" STAND BY MODE! ");
lcd.setCursor(0, 1);
lcd.print(count);
lcd.setCursor(3, 1);
lcd.print(" Objects Seen");
digitalWrite(Led, LOW);
delay (1250); // stablise sensor signal
if (Exit == HIGH) // check switch settig for exit mode
{
lcd.setCursor(0, 0);
lcd.print(" <EXIT MODE!> ");
Serial.println("EXIT");
digitalWrite(Led, HIGH); // set LED HIGH
digitalWrite(Buzzer, HIGH); // Beep.. (single for exit)
delay (50);
digitalWrite(Buzzer, LOW);
digitalWrite(RELAY8, RELAY_ON);
delay (300); //time ON between each light
digitalWrite(RELAY7, RELAY_ON);
delay (300);
digitalWrite(RELAY6, RELAY_ON);
delay (300);
digitalWrite(RELAY5, RELAY_ON);
delay (300);
digitalWrite(RELAY4, RELAY_ON);
delay (300);
digitalWrite(RELAY3, RELAY_ON);
delay (300);
digitalWrite(RELAY2, RELAY_ON);
delay (300);
digitalWrite(RELAY1, RELAY_ON);
delay (4000); // TIME ALL ON....
digitalWrite(RELAY8, RELAY_OFF);
delay (100); //time OFF between each light
digitalWrite(RELAY7, RELAY_OFF);
delay (100);
digitalWrite(RELAY6, RELAY_OFF);
delay (200);
digitalWrite(RELAY5, RELAY_OFF);
delay (200);
digitalWrite(RELAY4, RELAY_OFF);
delay (200);
digitalWrite(RELAY3, RELAY_OFF);
delay (200);
digitalWrite(RELAY2, RELAY_OFF);
delay (200);
digitalWrite(RELAY1, RELAY_OFF);
delay (500); // TIME ALL OFF BEFORE RETRIGGER
digitalWrite(Led, LOW);
}
if (Gate == HIGH) // check if the input from PIR is HIGH
{
Serial.println("Detected something...");
count++ ; // increase "Objects seen" count by 1
lcd.setCursor(0, 1);
lcd.print(count);
lcd.setCursor(0, 0);
lcd.print(" LIGHTS ARE ON!"); // Display "Light are On" on LCD inside
digitalWrite(Led, HIGH); // turn LED ON
digitalWrite(Buzzer, HIGH); //Beep beep
delay (50);
digitalWrite(Buzzer, LOW);
delay (50);
digitalWrite(Buzzer, HIGH);
delay (50);
digitalWrite(Buzzer, LOW);
digitalWrite(RELAY1, RELAY_ON);
delay (300); //time ON between each light
digitalWrite(RELAY2, RELAY_ON);
delay (300);
digitalWrite(RELAY3, RELAY_ON);
delay (300);
digitalWrite(RELAY4, RELAY_ON);
delay (300);
digitalWrite(RELAY5, RELAY_ON);
delay (300);
digitalWrite(RELAY6, RELAY_ON);
delay (300);
digitalWrite(RELAY7, RELAY_ON);
delay (300);
digitalWrite(RELAY8, RELAY_ON);
delay (3000); // TIME ALL ON....
digitalWrite(RELAY1, RELAY_OFF);
delay (150); //time OFF between each light
digitalWrite(RELAY2, RELAY_OFF);
delay (150);
digitalWrite(RELAY3, RELAY_OFF);
delay (150);
digitalWrite(RELAY4, RELAY_OFF);
delay (150);
digitalWrite(RELAY5, RELAY_OFF);
delay (150);
digitalWrite(RELAY6, RELAY_OFF);
delay (150);
digitalWrite(RELAY7, RELAY_OFF);
delay (150);
digitalWrite(RELAY8, RELAY_OFF);
delay (500); // TIME ALL OFF BEFORE RETRIGGER
digitalWrite(Led, LOW); // turn LED off again
}
else
{
lcd.setCursor(0, 0);
lcd.print(" STAND BY MODE! ");
}
}
ok, seems like it was just one to many "spaces" between Switch, and INPUT_PULLUP....
but it still loops in Exit mode....
I'm going to start the wiring side again... if you guys say the code is good (which surprises me I got this close on my own after only a month or so of coding ), then it must be a mix up with the wiring....
Don't forget that input pullup means that you need to check for Exit being low when the switch is pressed. And of course you will need to adjust the wiring to accommodate that too.
Right, sorted a lot out, everything seems to work ok, apart from (theres always an "apart from") from when I enter "temp on" (ie flick a rocker switch)
I want it to keep the lights on (ie relays turned on) until the switch is released...
at the moment in te following code, it does that, but also keeps looking for other inputs from the PIR and EXIT switch...... how can I make the code ignore other input when it has the TEMP or TURNON input HIGH...
#include "LiquidCrystal.h"
LiquidCrystal lcd(A5, A4, A3, A2, A1, A0);
#define RELAY_ON 0
#define RELAY_OFF 1
#define Buzzer 2 //output to buzzer +'ve
#define PIRin 3 //from PIR sensor
#define Switch 4 //switch to reverse trigger LED's for exit
#define Turnon 1 //switch LED's on until switched off
#define RELAY1 5 //relay for LED light section 1 by post
#define RELAY2 6 //relay for LED light section 2
#define RELAY3 7 //relay for LED light section 3
#define RELAY4 8 //relay for LED light section 4
#define RELAY5 9 //relay for LED light section 5
#define RELAY6 10 //relay for LED light section 6
#define RELAY7 11 //relay for LED light section 7 step 1
#define RELAY8 12 //relay for LED light section 8 step 2
#define Led 13 //LED to indicate outside lights triggereed
int count = 0; // Count the number of triggers
int Exit = LOW; // set Exit switch to LOW
int Gate = LOW; // Sets PIR Sensors to Low to start with
int Temp = LOW; // set Switch for turning lights temp (no timer!)
void setup() {
lcd.begin(16, 2); // set up the LCD's number of columns(16) and rows(2):
{
// Serial.begin (9600); // initiate serial com
{
// Initialise the Arduino data pins for OUTPUT / INPUT options
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
pinMode(RELAY5, OUTPUT);
pinMode(RELAY6, OUTPUT);
pinMode(RELAY7, OUTPUT);
pinMode(RELAY8, OUTPUT);
pinMode(PIRin, INPUT);
pinMode(Led, OUTPUT);
pinMode(Switch, INPUT);
pinMode(Buzzer, OUTPUT);
// set the outputs ready to start
digitalWrite(RELAY1, RELAY_OFF);
digitalWrite(RELAY2, RELAY_OFF);
digitalWrite(RELAY3, RELAY_OFF);
digitalWrite(RELAY4, RELAY_OFF);
digitalWrite(RELAY5, RELAY_OFF);
digitalWrite(RELAY6, RELAY_OFF);
digitalWrite(RELAY7, RELAY_OFF);
digitalWrite(RELAY8, RELAY_OFF);
Gate = digitalRead(PIRin); // read and rename input value
Exit = digitalRead(Switch); // read and rename input value
lcd.setCursor(0, 0);
lcd.print(" CALIBRATING! ");
delay (1000);
lcd.setCursor(0, 1);
lcd.print(count);
lcd.setCursor(3, 1);
lcd.print(" Objects Seen");
}
}
}
void loop() {
Gate = digitalRead(PIRin); // read and rename input value
Exit = digitalRead(Switch); // read and rename input value
Temp = digitalRead(Turnon); // read and rename input value
// Serial.println(Exit);
// Serial.println(PIRin);
lcd.setCursor(0, 1);
lcd.print(count);
lcd.setCursor(3, 1);
lcd.print(" Objects Seen");
digitalWrite(Led, LOW);
// delay (1250); // stablise sensor signal
if (Exit == HIGH) // check switch settig for exit mode
{
lcd.setCursor(0, 0);
lcd.print(" <EXIT MODE!> ");
// Serial.println("EXIT");
// digitalWrite(Led, HIGH); // set LED HIGH
digitalWrite(Buzzer, HIGH); // Beep.. (single for exit)
delay (50);
digitalWrite(Buzzer, LOW);
digitalWrite(RELAY8, RELAY_ON); //Turn relays ON in sequence 8 > 1
delay (300); //time ON between each light
digitalWrite(RELAY7, RELAY_ON);
delay (300);
digitalWrite(RELAY6, RELAY_ON);
delay (300);
digitalWrite(RELAY5, RELAY_ON);
delay (300);
digitalWrite(RELAY4, RELAY_ON);
delay (300);
digitalWrite(RELAY3, RELAY_ON);
delay (300);
digitalWrite(RELAY2, RELAY_ON);
delay (300);
digitalWrite(RELAY1, RELAY_ON);
delay (4000); // TIME ALL ON....
digitalWrite(RELAY8, RELAY_OFF); //Turn relays OFF in sequence 1 > 8
delay (100); //time OFF between each light
digitalWrite(RELAY7, RELAY_OFF);
delay (100);
digitalWrite(RELAY6, RELAY_OFF);
delay (200);
digitalWrite(RELAY5, RELAY_OFF);
delay (200);
digitalWrite(RELAY4, RELAY_OFF);
delay (200);
digitalWrite(RELAY3, RELAY_OFF);
delay (200);
digitalWrite(RELAY2, RELAY_OFF);
delay (200);
digitalWrite(RELAY1, RELAY_OFF);
// delay (500); // TIME ALL OFF BEFORE RETRIGGER
digitalWrite(Led, LOW);
lcd.setCursor(0, 0); // set up lcd display with text..
lcd.print(" STAND BY MODE! ");
}
if (Gate == HIGH) // check if the input from PIR is HIGH
{
// Serial.println("Detected something...");
count++ ; // increase "Objects seen" count by 1
lcd.setCursor(0, 1);
lcd.print(count);
lcd.setCursor(0, 0);
lcd.print(" LIGHTS ARE ON!"); // Display "Light are On" on LCD inside
digitalWrite(Led, HIGH); // turn LED ON
digitalWrite(Buzzer, HIGH); //Beep beep
delay (50);
digitalWrite(Buzzer, LOW);
delay (50);
digitalWrite(Buzzer, HIGH);
delay (50);
digitalWrite(Buzzer, LOW);
digitalWrite(RELAY1, RELAY_ON); //Turn relays on in sequence 1 > 8
delay (300); //time ON between each light
digitalWrite(RELAY2, RELAY_ON);
delay (300);
digitalWrite(RELAY3, RELAY_ON);
delay (300);
digitalWrite(RELAY4, RELAY_ON);
delay (300);
digitalWrite(RELAY5, RELAY_ON);
delay (300);
digitalWrite(RELAY6, RELAY_ON);
delay (300);
digitalWrite(RELAY7, RELAY_ON);
delay (300);
digitalWrite(RELAY8, RELAY_ON);
delay (3000); // TIME ALL ON....
digitalWrite(RELAY1, RELAY_OFF); //Turn relays OFF in sequence 1 > 8
delay (150); //time OFF between each light
digitalWrite(RELAY2, RELAY_OFF);
delay (150);
digitalWrite(RELAY3, RELAY_OFF);
delay (150);
digitalWrite(RELAY4, RELAY_OFF);
delay (150);
digitalWrite(RELAY5, RELAY_OFF);
delay (150);
digitalWrite(RELAY6, RELAY_OFF);
delay (150);
digitalWrite(RELAY7, RELAY_OFF);
delay (150);
digitalWrite(RELAY8, RELAY_OFF);
// delay (500); // TIME ALL OFF BEFORE RETRIGGER
digitalWrite(Led, LOW); // turn LED off again
lcd.setCursor(0, 0); // set up lcd display with text..
lcd.print(" STAND BY MODE! ");
}
if (Temp == HIGH)
{
lcd.setCursor(0, 0);
lcd.print(" <TEMP MODE!> "); // to turn led ON until switched off...
// Serial.println("TEMP ON");
// digitalWrite(Led, HIGH); // set LED HIGH
// digitalWrite(Buzzer, HIGH); // Beep.. (single for exit)
// delay (50);
digitalWrite(Buzzer, LOW);
digitalWrite(RELAY6, RELAY_ON); //Turn relays ON in sequence ...
delay (00); //time ON between each light
digitalWrite(RELAY1, RELAY_ON);
delay (350);
digitalWrite(RELAY5, RELAY_ON);
delay (00);
digitalWrite(RELAY2, RELAY_ON);
delay (350);
digitalWrite(RELAY4, RELAY_ON);
delay (00);
digitalWrite(RELAY3, RELAY_ON);
delay (350);
digitalWrite(RELAY7, RELAY_ON);
delay (00);
digitalWrite(RELAY8, RELAY_ON);
lcd.setCursor(0, 0); // set up lcd display with text..
lcd.print(" STAND BY MODE! ");
}
else if (Temp == LOW)
{
digitalWrite(RELAY8, RELAY_OFF); //Turn relays ON in sequence ...
delay (00); //time OFF between each light
digitalWrite(RELAY7, RELAY_OFF);
delay (350);
digitalWrite(RELAY6, RELAY_OFF);
delay (00);
digitalWrite(RELAY1, RELAY_OFF);
delay (350);
digitalWrite(RELAY5, RELAY_OFF);
delay (00);
digitalWrite(RELAY2, RELAY_OFF);
delay (350);
digitalWrite(RELAY4, RELAY_OFF);
delay (00);
digitalWrite(RELAY3, RELAY_OFF);
// delay (100); // TIME ALL OFF BEFORE RETRIGGER
digitalWrite(Led, LOW);
lcd.setCursor(0, 0); // set up lcd display with text..
lcd.print(" STAND BY MODE! ");
}
}
if ((Exit == HIGH) && (Temp == LOW))