#include <LiquidCrystal_I2C.h>
#define trig 8
#define echo 7
#define led_rot 12
#define led_gelb 11
#define led_gruen 10
LiquidCrystal_I2C lcd1(0x27,20,4);
float abstand = 0.0;
float readdistanceCM() {
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
abstand = pulseIn(echo, HIGH) / 58.0;
return abstand;
}
void setLEDs(bool rot, bool gelb, bool gruen){
digitalWrite(led_rot, rot);
digitalWrite(led_gelb, gelb);
digitalWrite(led_gruen, gruen);
}
void setup() {
Serial.begin(115200);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(led_rot, OUTPUT);
pinMode(led_gelb, OUTPUT);
pinMode(led_gruen, OUTPUT);
lcd1.init();
lcd1.backlight();
}
void loop() {
float distance = readdistanceCM();
Serial.print("Abstand in CM: ");
Serial.println(distance);
lcd1.clear();
lcd1.setCursor(0,1);
lcd1.print("CM Abstand:");
lcd1.print(distance);
if(distance < 10){
setLEDs(HIGH,LOW,LOW);
}else if (distance < 30){
setLEDs(LOW,HIGH,LOW);
}else{
setLEDs(LOW,LOW,HIGH);
}
delay(1000);
}