#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const int readPot = A0;
int potValue = 0;
const int ledPin = 13;
const int trigPin = 12;
const int echoPin = 10;
long currentTime = 0;
int validRate = 100;
long previousValid = 0;
long duration = 0;
long distance = 0;
void setup() {
//SETUP LCD
lcd.init();
lcd.backlight();
//SETUP SONAR & LED
pinMode(ledPin, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
//Readying sonar
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
currentTime = millis();
if(currentTime - previousValid >= validRate){
previousValid = currentTime;
//SONAR START
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.println("Distance: " + String(distance) + " cm");
lcd.setCursor(0, 0);
lcd.print("Distance: " + String(distance));
//SONAR END
//POTENTIOMETER START
potValue = analogRead((readPot));
potValue = map(potValue, 0, 1023, 0, 75);
Serial.println("Seuil: " + String(potValue));
lcd.setCursor(0, 1);
lcd.print("Seuil: " + String(potValue));
//POTENTIOMETER END
//LED START
if(distance < potValue){
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
}
}