Priključite sledeče pine LCD prikazovalnika 16×2 (ali drugega z Hitachi HD44780 procesorjem):
#include <Servo.h>
#include <LiquidCrystal.h>
#define echoPin 7 // Pin za sprejem echo impulza
#define trigPin 8 // Pin za oddajo trigger impulza
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Servo MojServo;
void setup()
{
lcd.begin(16, 2); // Pozicija (kolumna in vrstica) prikazovanja naslednjega teksta.
lcd.print(“Razdalja je:”); // izpis teksta
Serial.begin(9600); // nastavitev komunikacije s SRF04
pinMode(echoPin, INPUT); // določitev pina za odčitek SRF04
pinMode(trigPin, OUTPUT); // določitev pina za proženje SRF04
MojServo.attach(6); //analog pin
}
void loop()
{
// obrni na desno
val = 1000;
val1 = map(val, 0, 1000, 179, 0); //pretvori v servo korak
MojServo.write(val1); // ukaz za servo
delay(150); // zakasnitev za premik servomotorja
digitalWrite(trigPin, LOW); // postavi Trigger pin na Low za 2 mikrosekundi
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // postavi Trigger pin na HIGH za 10 mikrosekundi delayMicroseconds(10);
digitalWrite(trigPin, LOW); // postavi Trigger pin na LOW za začetek merjenja
int distance = pulseIn(echoPin, HIGH); // odčitaj
distance= distance/58; // Izračunaj odčitek v cm
lcd.setCursor(0, 1); // pozicioniraj naslednji izpis
lcd.print(”Desno :“); // dodaj še napis cm
lcd.print(distance); // izpiši razdaljo
lcd.print(” cm “); // dodaj še napis cm
delay(50); // zakasnitev do naslednjega merjenja
// obrni do sredino
val = 500;
val1 = map(val, 0, 1000, 179, 0); //pretvori v servo korak
MojServo.write(val1); // ukaz za servo
delay(150); // zakasnitev za premik servomotorja
digitalWrite(trigPin, LOW); // postavi Trigger pin na Low za 2 mikrosekundi
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // postavi Trigger pin na HIGH za 10 mikrosekundi delayMicroseconds(10);
digitalWrite(trigPin, LOW); // postavi Trigger pin na LOW za začetek merjenja
int distance = pulseIn(echoPin, HIGH); // odčitaj
distance= distance/58; // Izračunaj odčitek v cm
lcd.setCursor(0, 1); // pozicioniraj naslednji izpis
lcd.print(”sredina :“); // dodaj še napis cm
lcd.print(distance); // izpiši razdaljo
lcd.print(” cm “); // dodaj še napis cm
delay(50); // zakasnitev do naslednjega merjenja
// obrni na levo
val = 0;
val1 = map(val, 0, 1000, 179, 0); //pretvori v servo korak
MojServo.write(val1); // ukaz za servo
delay(150); // zakasnitev za premik servomotorja
digitalWrite(trigPin, LOW); // postavi Trigger pin na Low za 2 mikrosekundi
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // postavi Trigger pin na HIGH za 10 mikrosekundi delayMicroseconds(10);
digitalWrite(trigPin, LOW); // postavi Trigger pin na LOW za začetek merjenja
int distance = pulseIn(echoPin, HIGH); // odčitaj
distance= distance/58; // Izračunaj odčitek v cm
lcd.setCursor(0, 1); // pozicioniraj naslednji izpis
lcd.print(”Levo :“); // dodaj še napis cm
lcd.print(distance); // izpiši razdaljo
lcd.print(” cm “); // dodaj še napis cm
delay(50); // zakasnitev do naslednjega merjenja
//nazaj
val = 500; // obrni nazaj do sredine
val1 = map(val, 0, 1000, 179, 0); //pretvori v servo korak
MojServo.write(val1); // ukaz za servo
delay(150); /malo zakasnitve, da lahko zaključi ukaz
}