Kabar Terkini

ESP8266 + HCSR04 sensor Ultrasonic + BUZZER + LED Trafic Light

Klik Link:  ROBOTIKA








/*
Jurnalku by Fajar Himawan
Esp8266 + Led + Buzzer + Sensor Ultrasonic HCSR04
*/

#define trigPin D7         // Menetapkan pin trigger sensor ultrasonik
#define echoPin D8         // Menetapkan pin echo sensor ultrasonik
#define led D3             // Menetapkan pin untuk LED 1
#define led2 D2            // Menetapkan pin untuk LED 2
#define led3 D1            // Menetapkan pin untuk LED 3
#define led4 D3            // Menetapkan pin untuk LED 4
#define led5 D2            // Menetapkan pin untuk LED 5
#define led6 D1            // Menetapkan pin untuk LED 6
#define buzzer D5          // Menetapkan pin untuk buzzer

int sound = 250;           // Menetapkan variabel untuk frekuensi bunyi buzzer

void setup() {
  Serial.begin (9600);     // Mengaktifkan serial komunikasi dengan baud rate 9600
  pinMode(trigPin, OUTPUT);// Mengatur pin trigger sebagai output
  pinMode(echoPin, INPUT);// Mengatur pin echo sebagai input
  pinMode(led, OUTPUT);   // Mengatur pin LED 1 sebagai output
  pinMode(led2, OUTPUT);  // Mengatur pin LED 2 sebagai output
  pinMode(led3, OUTPUT);  // Mengatur pin LED 3 sebagai output
  pinMode(led4, OUTPUT);  // Mengatur pin LED 4 sebagai output
  pinMode(led5, OUTPUT);  // Mengatur pin LED 5 sebagai output
  pinMode(led6, OUTPUT);  // Mengatur pin LED 6 sebagai output
  pinMode(buzzer, OUTPUT);// Mengatur pin buzzer sebagai output
}

void loop() {
  long duration, distance; // Menetapkan variabel untuk waktu dan jarak

  // Mengirimkan sinyal ultrasonik selama 2 mikro detik
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); // Sinyal ultrasonik dikirimkan selama 10 mikro detik
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH); // Membaca waktu pantulan balik sinyal ultrasonik
  distance = (duration/2) / 29.1;   // Menghitung jarak berdasarkan waktu pantulan balik sinyal ultrasonik

  // Menyalakan LED 1 jika jarak kurang dari atau sama dengan 30 cm dan menyetel frekuensi bunyi buzzer menjadi 250 Hz
  if (distance <= 30) {
    digitalWrite(led, HIGH);
    sound = 250;
  }
  else {
    digitalWrite(led,LOW); // Mematikan LED 1 jika jarak lebih dari 30 cm
  }

  // Menyalakan LED 2 jika jarak kurang dari 25 cm dan menyetel frekuensi bunyi buzzer menjadi 260 Hz
  if (distance < 25) {
    digitalWrite(led2, HIGH);
    sound = 260;
  }
  else {
    digitalWrite(led2, LOW); // Mematikan LED 2 jika jarak lebih dari 25 cm
  }

  // Menyalakan LED 3 jika jarak kurang dari 20 cm dan menyetel frekuensi bunyi buzzer menjadi 270 Hz
if (distance < 20) {
digitalWrite(led3, HIGH); // led3 menyala
sound = 270; // frekuensi bunyi buzzer menjadi 270 Hz
}
else {
digitalWrite(led3, LOW); // led3 mati
}

// jika jarak kurang dari 15 cm
if (distance < 15) {
digitalWrite(led4, HIGH); // led4 menyala
sound = 280; // frekuensi bunyi buzzer menjadi 280 Hz
}
else {
digitalWrite(led4, LOW); // led4 mati
}

// jika jarak kurang dari 10 cm
if (distance < 10) {
digitalWrite(led5, HIGH); // led5 menyala
sound = 290; // frekuensi bunyi buzzer menjadi 290 Hz
}
else {
digitalWrite(led5, LOW); // led5 mati
}

// jika jarak kurang dari 5 cm
if (distance < 5) {
digitalWrite(led6, HIGH); // led6 menyala
sound = 300; // frekuensi bunyi buzzer menjadi 300 Hz
}
else {
digitalWrite(led6, LOW); // led6 mati
}

// jika jarak di luar rentang 0 - 30 cm, maka akan menampilkan pesan "Out of range" pada serial monitor
// dan mematikan bunyi buzzer
if (distance > 30 || distance <= 0){
Serial.println("Out of range");
noTone(buzzer);
}
// jika jarak masih dalam rentang 0 - 30 cm, maka akan menampilkan jarak pada serial monitor
// dan menghasilkan bunyi buzzer sesuai dengan frekuensi yang sudah diatur sebelumnya
else {
Serial.print(distance);
Serial.println(" cm");
tone(buzzer, sound);

}
   
delay(5); // memberikan jeda 5 milidetik (0.005 detik) sebelum mengulang kembali loop()
   
}






No comments

Featured Post

Dokumentasi Pelatihan BPBD JATIM - Optimalkan Kinerja di Bulan Ramadan, Bidang PK BPBD Jatim Bersama IGI Jatim Perkuat Kapasitas SDM Berbasis AI

Optimalkan Kinerja di Bulan Ramadan, Bidang PK BPBD Jatim Bersama IGI Jatim Perkuat Kapasitas SDM Berbasis AI SIDOARJO  – Memasuki bulan suc...