//Yahya 2022
#include <Servo.h>
Servo myservo;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
float cm;
float inches;
int LED = 4;
int Left = 1;
int Right = 0;
int Servo = 9;
int LEDr = 5;
int LEDg = 6;
int LEDb = 7;
int value = 0;
int val;
long readUltrasonicDistance(int triggerPin, int echoPin)
{
long Entfernung = 0;
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
long Zeit = pulseIn(echoPin, HIGH);
return Entfernung = (Zeit/2)* 0.03432;
}
void setup()
{
Serial.begin(9600);
myservo.attach(11);
lcd.init();
lcd.backlight();
lcd.print(" --> Entfernung <--");
delay(1000);
lcd.clear();
pinMode(LED, OUTPUT);
pinMode(LEDr, OUTPUT);
pinMode(LEDg, OUTPUT);
pinMode(LEDb, OUTPUT);
pinMode(Left, INPUT_PULLUP);
pinMode(Right, INPUT_PULLUP);
}
void Print()
{
Serial.print("Inches ");
Serial.print(inches, 1);
Serial.print(" \t ");
Serial.print("cm ");
Serial.println(cm, 1);
lcd.setCursor(0,0);
lcd.print("Inches ");
lcd.setCursor(4,0);
lcd.setCursor(15,0);
lcd.print("cm ");
lcd.setCursor(1,1);
lcd.print(inches, 1);
lcd.setCursor(15,1);
lcd.print(cm, 1);
lcd.setCursor(14,1);
delay(2000);
lcd.clear();
}
void re()
{
cm = readUltrasonicDistance(3, 2);
inches = (cm / 2.54);
}
void loop()
{
if(digitalRead(Right) == HIGH)
{
digitalWrite(LED, HIGH);
delay(1000);
re();
Print();
}
else
{}
if(digitalRead(Left) == HIGH)
{
digitalWrite(LED, LOW);
lcd.setCursor(0,0);
lcd.print("LED is Off");
}
else
{}
if(digitalRead(Left) == HIGH && digitalRead(Right) == LOW)
{
value = map(analogRead(A3), 0, 1023, 0, 255); // RGP-LED
analogWrite(LEDr, value);
lcd.setCursor(0,2);
lcd.print("RGP-LED =");
val = map(analogRead(A1), 0, 1023, 0, 180); //SERVO-
myservo.write(val);
lcd.setCursor(0,3);
lcd.print("Servo = ");
if(value >= 100 )
{
lcd.setCursor(10,2);
lcd.print(value);
}
if(val >= 100)
{
lcd.setCursor(10,3);
lcd.print(val);
}
if(value < 100 )
{
lcd.setCursor(10,2);
lcd.print(value);
lcd.setCursor(12,2);
lcd.print(" ");
}
if(val < 100){
lcd.setCursor(10,3);
lcd.print(val);
lcd.setCursor(12,3);
lcd.print(" ");
}
if(value < 10 )
{
lcd.setCursor(10,2);
lcd.print(value);
lcd.setCursor(11,2);
lcd.print(" ");
}
if(val < 10)
{
lcd.setCursor(10,3);
lcd.print(val);
lcd.setCursor(11,3);
lcd.print(" ");
}
}
}