#include <Servo.h>
#include <LiquidCrystal_I2C.h>
int servoPin = 3;
int servoPos = 90;
int servoPos2 = 0;
int servoPos3 = 180;
int LedPin = 12;
int trigPin = 7;
int echoPin = 8;
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myServo;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LedPin, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myServo.attach(servoPin);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(5,0);
lcd.println("Hello");
Serial.println("Hello");
delay(500);
lcd.setCursor(3,1);
lcd.println("I'M JARVIS");
Serial.println("I'M JARVIS");
delay(2000);
lcd.clear();
lcd.setCursor(5,0);
lcd.println("JARVIS");
Serial.println("JARVIS");
lcd.noBacklight();
}
void loop() {
// put your main code here, to run repeatedly:
int distance;
int duration;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin,HIGH);
distance = duration * 0.0344/2;
myServo.write(servoPos);
if (distance <= 50){
digitalWrite(LedPin, HIGH);
lcd.clear();
lcd.backlight();
lcd.setCursor(4,0);
lcd.println("Move Left");
Serial.println("Move Left");
delay(200);
myServo.write(servoPos2);
delay(500);
myServo.write(servoPos);
lcd.clear();
lcd.noBacklight();
digitalWrite(LedPin, LOW);
lcd.clear();
lcd.setCursor(5,0);
lcd.println("JARVIS");
Serial.println("JARVIS");
delay(2000);
lcd.noBacklight();
}else{
myServo.write(servoPos);
}
}