You are on page 1of 3

// ---------------------------------------------------------------------------

// Contoh Project Sensor Parkir CNC Store Bandung


// ---------------------------------------------------------------------------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <NewPing.h>

#define TRIGGER_PIN 3 // Pin Triger Ke Pin Digital 3 Arduino


#define ECHO_PIN 4 // Pin Cho Ke Pin Digital 4 Arduino
#define MAX_DISTANCE 200 // Tentukan Maksimum Jarak Sensor (Kemampuan sebenarnya
hingga400cm)

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); //Setup Sensor Utra sonic


dengan parameter di atas
LiquidCrystal_I2C lcd(0x27, 16, 2); //Tentukan alamat I2C dan Jenis LCD (Alat I2c
0x27, sedangkan jenis lcd 16x2

int jarak = 0; //deklarasi jarak


int distance; // Deklarasi Distance
const int Buzzer = 8; //Pin Buzzer di Digital 8 Arduino
const int ledR = 5; //Led Merah di digital 5 Arduino
const int ledY = 6; ////Led Kuning di digital 6 Arduino
const int ledG = 7; //Led Hijau di digital 7 Arduino

int BuzzerState = LOW;


unsigned long previousMillis = 0;
const long interval = 100; //Menentukan Delay untuk Buzzer dekat
const long interval2 = 500;//Menentukan Delay untuk Buzzer seddang
//
===================================================================================
===============
//
===================================================================================
===============
void setup()
{
lcd.begin(); //Mempersiapkan LCD
pinMode(ledR, OUTPUT); //Seting LedR sebagai Output
pinMode(ledY, OUTPUT);//Seting Ledy sebagai Output
pinMode(ledG, OUTPUT);//Seting Ledg sebagai Output
pinMode(Buzzer, OUTPUT);//Seting Buzzer sebagai Output
}
//
===================================================================================
===============

//
===================================================================================
===============
void loop()
{
distance = (sonar.ping_cm()); //Menyatakan bahwa isi distace adalah Hasil dari
pengukuran sensor
jarak=distance; //Menyatakan bahwa jarak adalah isi dari distace

if (jarak <= 0) //jika jarak kurang dasi sama dengan 0


{
jarak=0; //maka jarak hasilnya 0
digitalWrite(Buzzer, LOW);
digitalWrite(ledR, LOW); //matikan Led Merah
digitalWrite(ledY, LOW); //matikan Led kuning
digitalWrite(ledG, LOW); //matikan Led hijau
lcd.setCursor(8,1);
lcd.print("Aman ");
}

else if (jarak >= 3 && jarak <= 10) //menyatakan jika jarak antara 5-10cm maka
eksekusi perintah di bawah
{
digitalWrite(ledR, HIGH); //nyalakan Led Merah
digitalWrite(ledY, LOW); //matikan Led kuning
digitalWrite(ledG, LOW);//matikan Led hijau
lcd.setCursor(8,1); //Seting Kursor LCD di kolom 8 baris satu
lcd.print("BAHAYA "); //Tulis di LCD bahaya
buzzerDekat(); //eksekusi program buzzerDekat( cek program
}

else if (jarak >= 11 && jarak <= 30)//menyatakan jika jarak antara 11-30cm maka
eksekusi perintah di bawah
{
digitalWrite(ledR, LOW); //ngarti meuren nyak pokona sarua jeung nu di luhur
digitalWrite(ledY, HIGH);
digitalWrite(ledG, LOW);
lcd.setCursor(8,1);
lcd.print("HATI2 ");
buzzerSedang();
}

else if (jarak >= 30)


{
digitalWrite(ledR, LOW);
digitalWrite(ledY, LOW);
digitalWrite(ledG, HIGH);
lcd.print("Aman ");
digitalWrite(Buzzer, LOW);
}

delay(100); // Tampilkan pengyukuran jarak setiap 100mS


lcd.setCursor(0,0); //set kursor di kolom 0 dan baris 0
lcd.print("Jarak : "); //Prin tulisan jarak di lcd pada kursor di atas
lcd.print(sonar.ping_cm()); // tampilkan hasil pengukuran
lcd.print(" cm "); //Tampilkan tulisan CM (otomatis tampil setelah nilai jarak)
lcd.setCursor(0,1); // Set Kursor di kolom 0 baris 1
lcd.print("Status: "); //tau lah yah ini perinta apa
}
//
===================================================================================
===============

//
===================================================================================
===============
void buzzerDekat() //ini merupakan program nyala buzzer tanpa menggunakan delay
dimana nilai delaynya adalah bilangan pada besaran interval
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)
{
// save the last time you blinked the LED
previousMillis = currentMillis;

if (BuzzerState == LOW)
{
BuzzerState = HIGH;
}
else
{
BuzzerState = LOW;
}

digitalWrite(Buzzer, BuzzerState);
}
}
//
===================================================================================
===============

void buzzerSedang() //ini merupakan program nyala buzzer tanpa menggunakan delay
dimana nilai delaynya adalah bilangan pada besaran interval

{
unsigned long currentMillis = millis();

if (currentMillis - previousMillis >= interval2)


{
previousMillis = currentMillis;
if (BuzzerState == LOW)
{
BuzzerState = HIGH;
}
else
{
BuzzerState = LOW;
}
digitalWrite(Buzzer, BuzzerState);
}
}
//
===================================================================================
===============

You might also like