Senin, 20 Desember 2021

Membuat Tempat Sampah Otomatis Berbasis Arduino, sensor Ultrasonik

Berikut Adalah Skema Rangkaian Komponen :



Keterangan Rangkaian :


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);


}






Previous Post
Next Post

0 comments: