so I have a switch case for an IR remote in my code that was working like 10 minutes ago but I might have changed something in my code on accident. I need someone to help me figure out why my cases are reading (1,0,1,0,1,0,1,0) instead of a constant stream of 1s or 0s. Here is my code any help is great, thanks.
#include <LiquidCrystal.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
//Valve Control by Nick Harber
const int RECV_PIN = 6;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int WaterSensor1 = A0;
const int WaterSensor2 = A1;
int LimitValveO1 = 9;
int LimitValveO2 = 4;
int LimitValveC1 = 8;
int LimitValveC2 = 5;
int value1;
int value2;
int value3;
int var1 = 0;
int var2 = 0;
int var3 = 0;
int var4 = 0;
int go = 0;
const int rs = A2, en = A3, d4 = A5, d5 = A4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
//int OpenPushButton = 7;
//int ClosePushButton = 6; //dont need buttons anymore
int flag1;
int flag2;
int OpenWValve1 = 10;
int CloseWValve1 = 11;
int OpenWValve2 = 12;
int CloseWValve2 = 13;
//int IRO = 16720605
//int IRC = 16761405
//int PP = 16712445
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // enable receiver module
irrecv.blink13(true);
lcd.begin(16, 2); //set up lcd colums and rows:
lcd.print("why"); //print a message to the lcd
// pinMode(OpenPushButton, INPUT);
//pinMode(ClosePushButton, INPUT);
pinMode(LimitValveO1, INPUT);
pinMode(LimitValveC1, INPUT);
pinMode(LimitValveO2, INPUT);
pinMode(LimitValveC2, INPUT);
pinMode(OpenWValve1, OUTPUT);
pinMode(OpenWValve2, OUTPUT);
pinMode(CloseWValve1, OUTPUT);
pinMode(CloseWValve2, OUTPUT);
pinMode(WaterSensor1, INPUT);
pinMode(WaterSensor2, INPUT);
}
void loop() {
value1 = analogRead(WaterSensor1);//////////// read water sensor ///////////////////////////////////////////LCD SCREEN/////////////////////////////////////////////////////////////////////////////////////////////
value2 = analogRead(WaterSensor2);
Serial.println(digitalRead(LimitValveO1));
// Serial.println(flag1);
Serial.println(var3);
//Serial.println(results.value);
//Serial.println(value1);
//Serial.println(value2);
//Serial.print(lcd.);
//Serial.println(digitalRead(CloseWValve1));
///////////////////////////////LCD////////DISPLAY///////////
if (value1 >= 10 & value2 >= 10) {
lcd.setCursor(0,0);
lcd.write("1 Wet 2 Wet"); // both wet
}
if (value1 >= 10 & value2 <= 10) { //1 wet 2 dry
lcd.setCursor(0,0);
lcd.write("1 Wet 2 Dry");
}
if(value1<=10 & value2>=10){ //1 dry 2 we//t
lcd.setCursor(0,0);
lcd.write("1 Dry 2 Wet");
}
if (value1<=10 & value2<=10){ //both dry
lcd.setCursor(0,0);
lcd.write("1 Dry 2 Dry");
}
//////////////////////////////////////////////////var/////////////////////remote/////////////////
if (irrecv.decode(&results)) {
irrecv.resume();
switch (results.value) {
case 16720605:
var1 = 1; //open
var2 = 1;
var3 = 0;
var4 = 0;
break;
case 16761405:
var3 = 1; //close
var4 = 1;
var1 = 0;
var2 = 0;
break;
case 16712445:
go = 1;
break;
case 16753245:
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
go = 0;
break;
}
}
////////////////////////////////////////////////////////////////////////////////VALVE CONTROL////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (var1 == 1) {
if (digitalRead(LimitValveO1) != 1) {
digitalWrite(OpenWValve1, HIGH);
}
if (digitalRead(LimitValveO1) == 1) {
digitalWrite(OpenWValve1, LOW);
}
}
if (var2 == 1) {
if (digitalRead(LimitValveO2) != 1) {
digitalWrite(OpenWValve2, HIGH);
}
if (digitalRead(LimitValveO2) == 1) {
digitalWrite(OpenWValve2, LOW);
}
}
if ((var1 ==0) || (digitalRead(LimitValveO1) == 1)) {
digitalWrite(OpenWValve1, LOW);
}
if ((var2 ==0) || (digitalRead(LimitValveO2) == 1)) {
digitalWrite(OpenWValve2, LOW);
}
///////////close/////////
if (var3 == 1) {
if (digitalRead(LimitValveC1) != 1) {
digitalWrite(CloseWValve1, HIGH);
}
if (digitalRead(LimitValveC1) == 1) {
digitalWrite(CloseWValve1, LOW);
}
}
if (var4 == 1) {
if (digitalRead(LimitValveC2) != 1) {
digitalWrite(CloseWValve2, HIGH);
}
if (digitalRead(LimitValveC2) == 1) {
digitalWrite(CloseWValve2, LOW);
}
}
if ((var3 ==0) || (digitalRead(LimitValveC1) == 1)) {
digitalWrite(CloseWValve1, LOW);
}
if ((var4 ==0) || (digitalRead(LimitValveC2) == 1)) {
digitalWrite(CloseWValve2, LOW);
}
}