//project dhimas XI TAV
#define pinTrig 3
#define pinEcho 2
#define buzzer 9
#include <Servo.h>
Servo servodhimas;
long waktu;
void setup() {
Serial.begin(9600);
servodhimas.attach(11);
pinMode(1, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
pinMode(buzzer, OUTPUT);
}
float ultrasonik() {
digitalWrite(pinTrig, LOW);
delayMicroseconds(2);
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW);
waktu = pulseIn(pinEcho, HIGH);
return waktu * 0.034 / 2;
}
void loop() {
float jarak = ultrasonik();
Serial.println(jarak);
if (jarak > 100) {
aman();
servodhimas.write(90);
} else if (jarak > 25 && jarak <= 100) {
hatihati();
servodhimas.write(90);
} else {
bahaya();
servodhimas.write(0);
}
delay(100);
}
void aman() {
digitalWrite(6, HIGH);
digitalWrite(5, LOW);
digitalWrite(1, LOW);
noTone(buzzer);
}
void hatihati() {
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(1, LOW);
tone(buzzer, 1000);
delay(250);
noTone(buzzer);
delay(250);
}
void bahaya() {
digitalWrite(1, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
tone(buzzer, 2000);
delay(100);
noTone(buzzer);
delay(100);
}