I was designing a circuit that measure distance using HC-SR04 and display it into a LCD.This circuit also have 4 LEDs indicator.But i have a problem.The LEDs doesn't turn on.The LCDs backlight turn on, but it didnt display anything. Btw, i'm using LCD with I2C module.Here is the code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define trigPin 6
#define echoPin 7
int led5cm = 8;
int led7cm = 9;
int led10cm = 10;
int ledoor = 11; //ledoor means LED Out of Range
void setup() { // put your setup code here, to run once: lcd.begin(16,2); lcd.setCursor(0,0);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led5cm, OUTPUT);
pinMode(led7cm, OUTPUT);
pinMode(led10cm, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
if (distance <= 5)
{ lcd.println("Distance < 5 CM");
lcd.print("Distance = ");
lcd.print(distance);
lcd.print(" CM");
digitalWrite(led5cm, HIGH);
digitalWrite(led7cm, LOW);
digitalWrite(led10cm, LOW);
digitalWrite(ledoor, LOW);
lcd.clear();
delay(200);
} else if (distance >= 5 || distance <= 7) {
lcd.println("Distance < 7 CM");
lcd.print("Distance = ");
lcd.print(distance);
lcd.print(" CM");
digitalWrite(led5cm, LOW);
digitalWrite(led7cm, HIGH);
digitalWrite(led10cm, LOW);
digitalWrite(ledoor, LOW);
lcd.clear();
delay(200);
}
else if (distance >= 7 || distance <= 10) {
lcd.println("Distance < 10 CM");
lcd.print("Distance = ");
lcd.print(distance);
lcd.print(" CM");
digitalWrite(led5cm, LOW);
digitalWrite(led7cm, LOW);
digitalWrite(led10cm, HIGH);
digitalWrite(ledoor, LOW);
lcd.clear();
delay(200);
}
else if (distance > 10) {
lcd.println("Out of Range");
lcd.print("Distance = ");
lcd.print(distance);
lcd.print(" CM");
digitalWrite(led5cm, LOW);
digitalWrite(led7cm, LOW);
digitalWrite(led10cm, LOW);
digitalWrite(ledoor, LOW);
lcd.clear();
delay(200);
}
}
Can you please help me solve this problem? Thank you very much!!