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

INILAH 6 PROGRAM PRIORITAS Kemendikdasmen Versi Abdul Mu'ti, Usung Pendidikan Bermutu untuk Semua

INILAH 6 PROGRAM PRIORITAS Kemendikdasmen Versi Abdul Mu'ti, Usung Pendidikan Bermutu untuk Semua INILAH 6 PROGRAM PRIORITAS ...