const int led = 2; // Pin LED terhubung ke pin 2
const int tombol = 3; // Pin push button terhubung ke pin 3
#define echoPin 5// SENSOR ULTRASONIC
#define trigPin 4// SENSOR ULTRASONIC
int jumlahTekanan; //deklarasi variabel untuk jumlah tekanan yang diberikan dari tombol
void setup() {
pinMode(led, OUTPUT); // Atur pin LED sebagai OUTPUT
pinMode(tombol, INPUT_PULLUP); // Atur pin tombol sebagai INPUT_PULLUP
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin (9600);
}
void loop()
{
// Kirimkan pulsa trig
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(2);
digitalWrite(trigPin, LOW);
// Terima echo dan hitung jarak
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Nyalakan LED jika jarak kurang dari 10 cm
if (distance < 10) {
delay(500);
// Mengatur kecepatan motor
digitalWrite(led, LOW); // Nilai PWM antara 0-255
jumlahTekanan=0;
}
int buttonState = digitalRead(tombol); // Baca status tombol
if (buttonState == LOW) // Jika tombol ditekan (LOW)
{
jumlahTekanan ++; //menambahkan nilai +1 ke dalam variabel jumlahTekanan untuk menghitung berapa kali tekanan diberikan
delay(200); //delay agar tidak terjadi pembacaan tekanan dua kali
if(jumlahTekanan==1){ //Jika tombol ditekan 1 kali
digitalWrite(led, HIGH);} // maka ledpin menyala
else if(jumlahTekanan==2) //jika tombol ditekan lagi (2x)
{
digitalWrite(led, LOW); // maka ledpin mati
jumlahTekanan=0; //membuat variabel tekan menjadi 0 lagi
}
}
}