//1+2+3+4+5+6+7+8
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int ledPin = 10;
const int ledPinPwm = 9;
const int trigPin = 7;
const int echoPin = 6;
const float distanceMin = 100;
float distance;
float measureDistance(int trigPin, int echoPin){
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long impulseTime = pulseIn(echoPin, HIGH);
return impulseTime/58.0;
}
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(ledPinPwm, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.begin(16, 2);
lcd.clear();
lcd.home();
lcd.print("Lucja Waligora");
delay(2000);
}
void showLcd(){
lcd.setCursor(0,0);
lcd.print("Odl: ");
lcd.print(distance);
lcd.print(" ");
String text = distance < distanceMin ? "Za blisko" : " ";
lcd.setCursor(0,1);
lcd.print(text);
}
void showSerial(){
Serial.print("Odleglosc: ");
Serial.println(distance);
}
void loop() {
distance = measureDistance(trigPin, echoPin);
showSerial();
showLcd();
if(distance < distanceMin){
digitalWrite(ledPin, HIGH);
analogWrite(ledPinPwm, 128);
}
else{
digitalWrite(ledPin, LOW);
analogWrite(ledPinPwm, 0);
}
delay(20);
}