// Membuat Alat Pendeteksi Gempa Menggunakan Arduino dan Vibration Sensor
// Menambah library unuk LCD
#include <LiquidCrystal.h>
// Letak pin RS, E, D4,D5,D6,D7 LCD
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
// inialisasi pin sensor getaran gempa dan pin buzzer
const int pinSensorGempa = 10;
const int pinBuzzer = 9;
// inialisasi variabel pembacaan sensor
boolean bacaSensor;
// **************************** PROGRAM PENGATURAN AWAL ********************** //
void setup()
{
// Inialisasi status I/o pin
pinMode(pinSensorGempa, INPUT);
pinMode(pinBuzzer, OUTPUT);
// buzzer dimatikan
noTone(pinBuzzer);
digitalWrite(pinBuzzer, LOW);
// deklarasi jumlah baris & kolom LCD
lcd.begin(16, 2);
// Pengaturan baris & kolom dimulainya tulisan
// Baris ke 0, kolom ke 0
lcd.setCursor(0, 0);
//Tulisan awal yang ditampilkan pada baris atas
lcd.print("Alat Pendeteksi");
//Baris ke 0, kolom ke 1
lcd.setCursor(0, 1);
//Tulisan awal yang ditampilkan pada baris bawah
lcd.print("GEMPA...");
delay(1500);
// membersihkan tulisan pada LCD
lcd.clear();
// menulis kembali
lcd.setCursor(0, 0);
lcd.print("Ready.....");
delay(1500);
}
//***************************** PROGRAM UTAMA ****************************** //
void loop()
{
// membaca data sensor
bacaSensor = digitalRead(pinSensorGempa);
// jika terdeteksi getaran gempa
// terbaca output sensor "1" atau logic HIGH
if (bacaSensor == 1)
{
// buzzer menyala
tone(pinBuzzer, 100);
digitalWrite(pinBuzzer, HIGH);
// menulis pada lcd
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Kondisi");
lcd.setCursor(0, 1);
lcd.print("BERBAHAYA... !!!");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GEMPA");
lcd.setCursor(0, 1);
lcd.print("TERDETEKSI...!!!");
delay(1500);
// buzzer dimatikan
digitalWrite(pinBuzzer, LOW);
}
// jika tidak terdeteksi getaran gempa
// terbaca output sensor "0" atau logic LOW
else if (bacaSensor == 0)
{
// buzzer dimatikan
digitalWrite(pinBuzzer, HIGH);
// menulis pada lcd
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Kondisi");
lcd.setCursor(0, 1);
lcd.print("AMAN.....");
delay(300);
}
}