Agustus, 2022
Sensor ultrasonik tipe HCSR04 merupakan perangkat yang digunakan untuk mengukur jarak dari suatu objek. Kisaran jarak yang dapat diukur sekitar 2-450 cm. Perangkat ini menggunakan dua pin digital untuk mengkomunikasikan jarak yang terbaca.
const int triggerPin_1 = 13;
const int echoPin_1 = 12;
unsigned int duration_1;
unsigned int distance_1;
const int triggerPin_2 = 11;
const int echoPin_2 = 10;
unsigned int duration_2;
unsigned int distance_2;
const int triggerPin_3 = 9;
const int echoPin_3 = 8;
unsigned int duration_3;
unsigned int distance_3;
const int triggerPin_4 = 7;
const int echoPin_4 = 6;
unsigned int duration_4;
unsigned int distance_4;
int Relay = 5;
void setup() {
pinMode (Relay, OUTPUT);
pinMode(triggerPin_1, OUTPUT);
pinMode(echoPin_1, INPUT);
pinMode(triggerPin_2, OUTPUT);
pinMode(echoPin_2, INPUT);
pinMode(triggerPin_3, OUTPUT);
pinMode(echoPin_3, INPUT);
pinMode(triggerPin_4, OUTPUT);
pinMode(echoPin_4, INPUT);
Serial.begin(9600);
}
void loop() {
readSensor_1();
readSensor_2();
readSensor_3();
readSensor_4();
relayActivated();
Serial.println(" ");
delay(500);
}
void readSensor_1() {
digitalWrite(triggerPin_1, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_1, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_1, LOW);
duration_1 = pulseIn(echoPin_1, HIGH);
distance_1 = (duration_1 / 2) / 28.5;
Serial.print("Sensor 1 = ");
Serial.print(distance_1);
Serial.println(" cm");
}
void readSensor_2() {
digitalWrite(triggerPin_2, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_2, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_2, LOW);
duration_2 = pulseIn(echoPin_2, HIGH);
distance_2 = (duration_2 / 2) / 28.5;
Serial.print("Sensor 2 = ");
Serial.print(distance_2);
Serial.println(" cm");
}
void readSensor_3() {
digitalWrite(triggerPin_3, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_3, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_3, LOW);
duration_3 = pulseIn(echoPin_3, HIGH);
distance_3 = (duration_3 / 2) / 28.5;
Serial.print("Sensor 3 = ");
Serial.print(distance_3);
Serial.println(" cm");
}
void readSensor_4() {
digitalWrite(triggerPin_4, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_4, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_4, LOW);
duration_4 = pulseIn(echoPin_4, HIGH);
distance_4 = (duration_4 / 2) / 28.5;
Serial.print("Sensor 4 = ");
Serial.print(distance_4);
Serial.println(" cm");
}
void relayActivated() {
if (distance_1 < 50 && distance_2 < 50 && distance_3 < 50 && distance_4 < 50){
digitalWrite (Relay, LOW);
}else {
digitalWrite (Relay, HIGH);
}
}