Alat dan Bahan yang Dibutuhkan :
- Arduino Uno
- Sensor Ultrasonic HC-SR04
- Servo Motor
- DFPlayer Mini
- Speaker kecil
- Kabel jumper
- Breadboard (opsional)
- Sumber daya eksternal (jika diperlukan)
Skema Rangkaian :
1. Sensor Ultrasonic HC-SR04
- VCC -> Arduino 5V
- Trigger -> Arduino pin 8
- Echo -> Arduino pin 9
- GND -> Arduino GND
2. DFPlayer Mini
- VCC -> Arduino 5V
- GND -> Arduino GND
- RX -> Arduino pin 5 (TX dari SoftwareSerial)
- TX -> Arduino pin 6 (RX dari SoftwareSerial)
3. Servo
- Signal -> Arduino pin 7
- VCC -> Arduino 5V atau sumber daya eksternal
- GND -> Arduino GND
Koding Arduino :
#include <HCSR04.h>
#include <Servo.h>
#include <DFPlayerMini_Fast.h>
#include <SoftwareSerial.h>
// Inisialisasi komunikasi serial untuk DFPlayer Mini
SoftwareSerial mySerial(5, 6); // RX, TX
// Inisialisasi sensor ultrasonic
UltraSonicDistanceSensor distanceSensor(8, 9); // Sensor menggunakan pin digital 8 dan 9
// Inisialisasi variabel untuk menyimpan jarak
int jarak = 0;
// Inisialisasi servo
Servo myservo;
// Inisialisasi DFPlayer Mini
DFPlayerMini_Fast myMP3;
void setup() {
// Menyambungkan servo ke pin 7 dan mengatur posisi awal ke 0 derajat
myservo.attach(7);
myservo.write(0);
// Memulai komunikasi serial
Serial.begin(9600);
mySerial.begin(9600);
// Memulai DFPlayer Mini
myMP3.begin(mySerial, true);
// Mengatur volume DFPlayer Mini ke maksimum (25)
Serial.println("Setting volume to max");
myMP3.volume(25);
}
void loop() {
// Membaca jarak dari sensor ultrasonic
jarak = distanceSensor.measureDistanceCm();
// Jika jarak lebih dari 0 dan kurang dari 50 cm
if (jarak > 0 && jarak < 50) {
// Memutar servo ke 150 derajat untuk membuka tutup tong sampah
myservo.write(150);
delay(500);
// Selama jarak masih dalam rentang 0-50 cm, terus membaca jarak
while (jarak > 0 && jarak < 50) {
jarak = distanceSensor.measureDistanceCm();
delay(100);
}
// Menunggu 2 detik sebelum memutar audio
delay(2000);
// Memutar audio file ke-1
myMP3.play(1);
delay(3000);
// Mengembalikan servo ke posisi 0 derajat untuk menutup tutup tong sampah
myservo.write(0);
}
// Delay 500 ms sebelum membaca jarak lagi
delay(500);
}
Penjelasan Kode
- Inisialisasi dan Deklarasi:
- Mengimpor library yang dibutuhkan:
HCSR04.h
,Servo.h
,DFPlayerMini_Fast.h
,SoftwareSerial.h
. - Membuat objek
mySerial
untuk komunikasi serial dengan DFPlayer Mini. - Mengatur pin untuk sensor ultrasonic menggunakan
UltraSonicDistanceSensor distanceSensor(8, 9);
. - Membuat variabel
jarak
untuk menyimpan jarak yang diukur. - Membuat objek
myservo
untuk servo motor. - Membuat objek
myMP3
untuk DFPlayer Mini.
- Mengimpor library yang dibutuhkan:
- Setup:
- Menyambungkan servo ke pin 7 dan mengatur posisi awal ke 0 derajat.
- Memulai komunikasi serial dengan baud rate 9600.
- Memulai DFPlayer Mini.
- Mengatur volume DFPlayer Mini ke maksimum.
- Loop:
- Membaca jarak dari sensor ultrasonic.
- Mengecek apakah jarak dalam rentang 0-50 cm.
- Memutar servo ke 150 derajat untuk membuka tutup tong sampah.
- Selama jarak masih dalam rentang, terus membaca jarak.
- Menunggu 2 detik sebelum memutar audio.
- Memutar audio file pertama.
- Menutup kembali tutup tong sampah dengan memutar servo ke posisi 0 derajat.