#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define trigPin 9
#define echoPin 8
#define led 2
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servo;
void setup() {
lcd.begin(16, 2);
lcd.init();
lcd.setCursor(2, 0);
lcd.backlight();
lcd.print(" Hello!");
lcd.setCursor(0, 1);
lcd.print(" Microdigisoft");
delay(5000);
Serial.begin (9600);
servo.attach(10);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("OBJECT");
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long distance = pulseIn(echoPin, HIGH) / 58.2;
lcd.setCursor(0, 1);
lcd.print ("distance:");
if (distance <= 20) {
Serial.print(distance);
lcd.print(distance);
lcd.print("cm");
digitalWrite(led, HIGH);
for (int pos = 180; pos > 1; pos--) {
servo.write(pos);
delay(5);
}
digitalWrite(led, HIGH);
Serial.println("cm : LED is on ");
delay(500);
for (int pos = 0; pos < 180; pos++) {
servo.write(pos);
delay(5);
}
} else {
Serial.print(distance);
lcd.print(distance);
lcd.print("cm");
digitalWrite(led, LOW);
Serial.println(" cm : LED is off ");
delay(500);
servo.write(0);
}
}