Esp8266 + 1 Led + 1 Buzzer + Sensor Ultrasonic HCSR04

 







CODING:




/*

Jurnalku by Fajar Himawan

Esp8266 + Led + Buzzer + Sensor Ultrasonic HCSR04

1 LED : Kaki Plus di pin D7

1 Buzzer : Kaki Plus di pin D7

Sensor Ultrasonik HCSRO4:

Kaki Trigger di Pin D6

Kaki Echo di Pin D5

*/

#define trigPin D6         // Menetapkan pin trigger sensor ultrasonik

#define echoPin D5         // Menetapkan  pin echo sensor ultrasonik

#define led D7             // Menetapkan pin untuk LED 1

#define led2 D7            // Menetapkan pin untuk LED 2

#define led3 D7            // Menetapkan pin untuk LED 3

#define led4 D7            // Menetapkan pin untuk LED 4

#define led5 D7            // Menetapkan pin untuk LED 5

#define led6 D7            // Menetapkan pin untuk LED 6

#define buzzer D7          // 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()

}



Please Select Embedded Mode For Blogger Comments

أحدث أقدم