#define POTI A0
float potiV;
#define PIN_TRIG 3
#define PIN_ECHO 2
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
float cm;
uint8_t timing;
float pegel;
float posi;
float posi1;
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
return pulseIn(echoPin, HIGH);
}
void setup() {
Serial.begin(9600);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
Serial.println("test");
lcd.init();
lcd.backlight();
}
void loop() {
int po = analogRead(POTI);
potiV = ((float)po/1023.0)*5.0;
Serial.println(potiV);
Serial.println(readUltrasonicDistance(3, 2));
delay(25);
cm = 0.01710132535271483539974348011971 * readUltrasonicDistance(3, 2);
Serial.println(cm);
if (cm<=50){
digitalWrite(4,HIGH);
}else{
if(cm<300){
digitalWrite(4,HIGH);
delay(cm);
digitalWrite(4, LOW);
delay(cm);
}
}
timing++;
if(timing==5){
lcd.clear();
timing=0;
}
lcd.setCursor(0,0);
lcd.print(cm, 1);
lcd.setCursor(6,0);
lcd.print("cm");
lcd.setCursor(9,0);
lcd.print(potiV);
lcd.setCursor(14,0);
lcd.print("V");
pegel=potiV/1;
posi=pegel*3.2;
for (uint8_t posi1 =0;posi1<posi;posi1++){
lcd.setCursor(posi1,1);
lcd.print(char(255));
}
lcd.print(" ");
}