i have a problem , i need help from here
i need to switch relay but stays on
but its blinking ,, dont know how to stop those blinking
i have 3 relays
2nd , 3rd relays have to switch on
after 2 sec the 2nd relay turn off & 1st relay1 turn on
finally rly1 & rly3 stay on,,, but 2nd rly blinking
is there anyone to help me,,,???
i need help from here
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x3F // <<----- Add your address here. Find it from I2C Scanner
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
#define trigPin 12
#define echoPin 13
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
int Relay1 = 7;
int Relay2 = 8;
int Relay3 = 9;
void setup() {
Serial.begin(9600);
pinMode(Relay1, OUTPUT);
digitalWrite(Relay1,HIGH);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay2, HIGH);
pinMode(Relay3, OUTPUT);
digitalWrite(Relay3, HIGH);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.begin (16,2);
}
void loop() {
float duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) * 0.0344;
if (distance >= 150 || distance <= 2){
lcd.print("Out of range");
Serial.print("Out of range");
lcd.setCursor(0,1);
delay(500);
digitalWrite(Relay2, LOW);
digitalWrite(Relay3, LOW);
delay(1000);
digitalWrite(Relay2, HIGH);
digitalWrite(Relay1, LOW);
}else {
lcd.print("WATER LEVEL");
lcd.setCursor(0,1);
digitalWrite(Relay2, HIGH);
digitalWrite(Relay3, HIGH);
digitalWrite(Relay1, HIGH);
lcd.print(distance);
lcd.print(" cm");
delay(500);
}
delay(500);
lcd.clear();
}
original_copy.ino (1.57 KB)