Skip to main content
#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); 
 } }
}
#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); } }
#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); 
  }
}
Source Link

HC-SR04 and LCD Circuit Problem

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: The Schematic

#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!!