extern "C" {
void servo_motor45();
void servo_motor90();
}
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <HCSR04.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
UltraSonicDistanceSensor ultra1(2, 3);
UltraSonicDistanceSensor ultra2(4, 5);
const int batas = 10;
bool status_gate = false;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Sistem Siap...");
Serial.println("sistem siap");
delay(2000);
lcd.clear();
lcd.print("Palang Tertutup");
}
void loop() {
float jarak1 = ultra1.measureDistanceCm();
float jarak2 = ultra2.measureDistanceCm();
if (jarak1 > 0 && jarak1 < batas && jarak2 >= batas ) {
servo_motor90();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Palang Terbuka");
Serial.print("jarak1: ");
Serial.println(jarak1);
status_gate = true;
}
else if(jarak2 > 0 && jarak2 < batas && jarak1 >= batas) {
servo_motor45();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Palang Tertutup");
Serial.print("jarak2: ");
Serial.println(jarak2);
}
else if (status_gate == false){
servo_motor45();
}
}