Hello,
First of all thank you for reading me and the help. I tried to find solution on the web without success. I am new to arduino and the code.
I am trying to control a relay using a digital water level sensor.
The sensor is working fine I get 1 or 0 in the serial monitor based on the level of water from a small tank
Same thing for the relay if I control it itself I can activate or deactivate it without issue. My problem is in the combination of both relay and sensor within an IF ELSE statement.
I want the relay to deactivate if the sensor return 1 or activate the relay if the sensor return 0
I tried the code below. but basically the relay will not change if the sensor value change from 0 to 1 or 1 to 0.
Did I forgot something or is there a mistake in the code ?
FYI I am working with a 8 relays board and an Mega2560
#define RELAY_ON 0
#define RELAY_OFF 1
#define Relay8 31
#define Relay7 33
#define Relay6 35
#define Relay5 37
#define Relay4 39
#define Relay3 41
#define Relay2 43
#define Relay1 45
int Liquid_level=0;
void setup()
{
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);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(Relay3, OUTPUT);
pinMode(Relay4, OUTPUT);
pinMode(Relay5, OUTPUT);
pinMode(Relay6, OUTPUT);
pinMode(Relay7, OUTPUT);
pinMode(Relay8, OUTPUT);
Serial.begin(9600);
pinMode(5,INPUT);
}
void loop()
{
Liquid_level=digitalRead(5);
Serial.print("Liquid_level= ");
Serial.println(Liquid_level,DEC);
delay(100);
if (digitalRead(Liquid_level) == HIGH) {
digitalWrite(Relay1,RELAY_OFF);
}
else{ // sinon
digitalWrite(Relay1,RELAY_ON);
}
}
Thanks in advance for your help.