Alat Ukur Jarak dengan Sensor Ultrasonik dan Arduino Uno

 



List Program :

#include <LiquidCrystal.h>


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int trigPin = A5; // Trigger Pin of Ultrasonic Sensor

const int echoPin = A4; // Echo Pin of Ultrasonic Sensor

const int led1 = 6; // Echo Pin of Ultrasonic Sensor

const int led2 = 7;

const int led3 = 8;

const int led4 = 9;

const int led5 = 10;

const int potensioPin = A0;

int nilaiPotensio = 0;

int sudutPotensio = 0;

int jarakPotensio = 0;

int jarakAnda = 0;

long duration, distance, inches, cm;


void setup() {

  Serial.begin(9600);

  pinMode(A0, INPUT);

  pinMode(echoPin, INPUT);

  pinMode(trigPin, OUTPUT);

  pinMode(led1, OUTPUT);

  pinMode(led2, OUTPUT);

  pinMode(led3, OUTPUT);

  pinMode(led4, OUTPUT);

  pinMode(led5, OUTPUT);


  lcd.begin(16, 2);                  // inisialisasi lcd

  lcd.setCursor(1, 0);// memindahkan kursor ke baris pertama

  lcd.print("SELAMAT DATANG");       // menulis "RG TECH" di baris pertama

  lcd.setCursor (1, 1);

  lcd.print ("SMKN 1 CIKANDE");      // menulis "Belajar Arduino" di baris ke dua

  delay(1000);

  lcd.clear();

}


void loop()

{

    digitalWrite(led1, 0);

    digitalWrite(led2, 0);

    digitalWrite(led3, 0);

    digitalWrite(led4, 0);

    digitalWrite(led5, 0);

  

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);


  duration = pulseIn(echoPin, HIGH);

  inches = microsecondsToInches(duration);

  cm = microsecondsToCentimeters(duration);

  Serial.print(inches);

  Serial.print("in, ");

  Serial.print(cm);

  Serial.print("cm");

  Serial.println();


  nilaiPotensio = analogRead(potensioPin);

  sudutPotensio = map(nilaiPotensio, 0, 1023, 0, 180);

  jarakPotensio = map(sudutPotensio, 0, 180, 0, 254);


  jarakAnda = (cm - jarakPotensio);


  lcd.clear();

  lcd.setCursor(1, 0);

  lcd.print ("JARAK / TINGGI: ");

  lcd.setCursor(0, 1);

  lcd.print(cm);

  lcd.setCursor(8, 1);

  lcd.print(jarakAnda);

  lcd.setCursor(14, 1);

  lcd.print("cm");


  if (cm <= 50) {

    digitalWrite(led1, 1);

    digitalWrite(led2, 1);

    digitalWrite(led3, 1);

    digitalWrite(led4, 1);

    digitalWrite(led5, 1);

  }

  if (cm <= 100) {

    digitalWrite(led1, 1);

    digitalWrite(led2, 1);

    digitalWrite(led3, 1);

    digitalWrite(led4, 1);

    digitalWrite(led5, 0);

  }

  if (cm <= 150) {

    digitalWrite(led1, 1);

    digitalWrite(led2, 1);

    digitalWrite(led3, 1);

    digitalWrite(led4, 0);

    digitalWrite(led5, 0);

  }

  if (cm <= 200) {

    digitalWrite(led1, 1);

    digitalWrite(led2, 1);

    digitalWrite(led3, 0);

    digitalWrite(led4, 0);

    digitalWrite(led5, 0);

  }

  if (cm <= 250) {

    digitalWrite(led1, 1);

    digitalWrite(led2, 0);

    digitalWrite(led3, 0);

    digitalWrite(led4, 0);

    digitalWrite(led5, 0);

  }

  delay(100);

}


long microsecondsToInches(long microseconds)

{

  return microseconds / 74 / 2;

}


long microsecondsToCentimeters(long microseconds)

{

  return microseconds / 29 / 2;

}

Comments