Berikut Adalah Skema Rangkaian Komponen :
1. Bisa menggunakan segala jenis arduino (Uno, Nano, Mega, Mini, dll) karena penomoran pinnya sama. tinggal anda cocokkan saja nomor pin2nya
2. Kabel data untuk servo (biasanya berwarna Orange/kuning)
3. Pin trigger sensor ultrasonic HC-SR04 = pin 8 Arduino
4. Pin Echo sensor ultrasonic HC-SR04 = pin 9 Arduino
5. Kabel vcc pada sensor hubungkan ke sumber power positif 5v (bisa dari 5v Arduino)
6. Kaki GND/Ground atau kabel hitam pada masing-masing komponen hubungkan ke sumber negatif power/ground (dihubungkan ke pin gnd Arduino)
Setelah itu, silahkan upload program serperti dibawah ini pada software Arduino IDE.
// menambahkan lubrary Servo
#include <Servo.h>
// inialisasi variabel untuk servo
Servo servo1;
// inialisasi pin ultrasonic
const int pinTRIGGER = 8;
const int pinECHO = 9;
// inialisasi variabel pembacaan sensor ultrasonic
// gunakan "float" untuk angka dengan koma
// atau gunakan "int" untuk angka tanpa koma
float durasi, jarak;
// ======================= program pengaturan awal ====================== //
void setup()
{
// inialisasi baud rate serial monitor
Serial.begin(9600);
// inialisasi pin servo
servo1.attach(10);
// menulis derajat awal servo (menutup)
servo1.write(0);
// inialisasi stauts I/O pin
pinMode(pinTRIGGER, OUTPUT);
pinMode(pinECHO, INPUT);
delay(1000);
}
// ============================== program utama ============================= //
void loop()
{
//pembacaan sesnor ulrasonic
//Mengaktifak pin Trigger selama 10mikrodetik
//Lalu dia non aktif
digitalWrite(pinTRIGGER, HIGH);
delayMicroseconds(10);
digitalWrite(pinTRIGGER, LOW);
//Mengaktifkan pin Echo yang menerima pantulan gelombang ultrasonik
//pulseIn = Lama durasi pin Echo menerima pantulan gelombang
//Menghitung rumus jarak(Lama durasi dibagi dua)
durasi = pulseIn(pinECHO, HIGH);
jarak = ((durasi * 0.034) / 2);
// menulis data pembacaan ultrasonic pada serial monitor
// jadi kita tahu jarak obejak yang terbaca
Serial.print("Jarak: ");
Serial.println(jarak);
// program buka tutup servo otomatis
// jika jarak objek terbaca <= 7 cm
// ubah dan sesuaikan jarak objek saat buka di sini, satuan cm
if (jarak <= 7)
{
// servo membuka, mnuju derajat 90
// ubah dan asesuaikan derajat buka di sini
servo1.write(90);
// delay membuka servo
// di sini disetting 3 detik membukanya
// ubah durasi buka di sini
delay(3000);
// servo menutup kembali, menuju derajat 0
// ubah dan sesuaikan derajat tutup di sini
servo1.write(0);
}
// jika jarak objek terbaca lebih dari pernyataan di atas
else
{
// servo menutup, menuju derajat 0
// ubah dan sesuaikan derajat tutup di sini
servo1.write(0);
}
// delay program
delay(10);
}

0 comments: