Arduino Project # Membuat Tempat Sampah Otomatis

Project kali ini ayo kita membuat tempat sampah otomatis dengan menggunakan arduino cara kerjanya nanti jika ada objek yang mendekat ke tempat sampah, Tempat sampah akan terbuka secara otomatis

Konsep Dasar

  • Sensor Ultrasonik: Mendeteksi jarak objek. Jika objek terlalu dekat, tempat sampah akan terbuka.
  • Servo Motor: Menggerakkan tutup tempat sampah untuk membuka dan menutup.
  • Arduino: Sebagai “otak” yang memproses data dari sensor dan mengontrol servo.

Komponen yang Dibutuhkan

  • Arduino Uno (atau jenis Arduino lain yang kompatibel)
  • Sensor Ultrasonik HC-SR04
  • Servo Motor SG90 (atau jenis servo kecil lainnya)
  • Kabel Jumper (Male-to-Male dan Male-to-Female)
  • Breadboard (opsional, untuk kerapian kabel)
  • Tempat Sampah Kecil (dengan tutup yang bisa dimodifikasi agar bisa digerakkan oleh servo)
  • Power Bank/Adaptor 5V (untuk daya, setelah selesai diuji dengan USB dari komputer)

Skema Rangkaian

Berikut adalah cara menghubungkan komponen-komponennya:

  1. Sensor Ultrasonik HC-SR04:
    • VCC ke pin 5V Arduino
    • GND ke pin GND Arduino
    • Trig ke pin digital 9 Arduino
    • Echo ke pin digital 10 Arduino
  2. Servo Motor SG90:
    • Kabel Coklat (GND) ke pin GND Arduino
    • Kabel Merah (VCC) ke pin 5V Arduino
    • Kabel Oranye/Kuning (Signal) ke pin digital 6 Arduino

Kode Arduino (Sketch)

Salin kode ini ke Arduino IDE Anda:

#include <Servo.h> // Library untuk mengontrol servo motor

Servo myServo; // Membuat objek servo
const int trigPin = 9; // Pin Trig sensor ultrasonik
const int echoPin = 10; // Pin Echo sensor ultrasonik
const int tutupPos = 0; // Posisi servo saat tutup tertutup (dalam derajat)
const int bukaPos = 90; // Posisi servo saat tutup terbuka (dalam derajat) - sesuaikan
const int jarakMin = 20; // Jarak minimum (cm) untuk membuka tutup

long duration;
int distance;

void setup() {
  myServo.attach(6); // Menghubungkan objek servo ke pin digital 6
  myServo.write(tutupPos); // Pastikan tutup dalam posisi tertutup saat pertama kali menyala

  pinMode(trigPin, OUTPUT); // Pin Trig sebagai OUTPUT
  pinMode(echoPin, INPUT); // Pin Echo sebagai INPUT

  Serial.begin(9600); // Memulai komunikasi serial untuk debugging
}

void loop() {
  // Membersihkan pin Trig
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  // Mengirim pulsa HIGH selama 10 mikrodetik dari pin Trig
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Membaca waktu tempuh pulsa dari pin Echo
  duration = pulseIn(echoPin, HIGH);

  // Menghitung jarak berdasarkan kecepatan suara (343 m/s atau 0.0343 cm/mikrodetik)
  distance = duration * 0.0343 / 2;

  Serial.print("Jarak: ");
  Serial.print(distance);
  Serial.println(" cm");

  // Logika kontrol servo
  if (distance <= jarakMin) {
    // Jika objek terdeteksi dekat, buka tutup
    myServo.write(bukaPos);
    Serial.println("Tutup terbuka!");
    delay(3000); // Tunggu 3 detik (sesuaikan) sebelum menutup kembali
  } else {
    // Jika tidak ada objek, tutup tutup
    myServo.write(tutupPos);
    Serial.println("Tutup tertutup.");
  }

  delay(100); // Penundaan kecil antar pembacaan sensor
}

Penjelasan Kode

  • #include <Servo.h>: Mengimpor pustaka Servo yang memudahkan kontrol motor servo.
  • myServo.attach(6);: Mengaitkan objek servo ke pin digital 6 Arduino.
  • tutupPos dan bukaPos: Variabel ini menentukan sudut servo untuk posisi tutup tertutup dan terbuka. Anda mungkin perlu menyesuaikan nilai bukaPos (misalnya, 90, 120, atau 180) agar sesuai dengan mekanisme tutup tempat sampah Anda.
  • trigPin dan echoPin: Mendefinisikan pin untuk sensor ultrasonik.
  • jarakMin: Jarak dalam sentimeter di mana tempat sampah akan terbuka. Anda bisa menyesuaikannya.
  • Logika Sensor Ultrasonik: Kode ini menghitung jarak objek berdasarkan waktu yang dibutuhkan gelombang suara untuk pergi dan kembali.
  • Logika Servo:
    • Jika distance kurang dari atau sama dengan jarakMin, servo bergerak ke bukaPos.
    • Setelah 3 detik (bisa diubah), servo kembali ke tutupPos.
    • Jika tidak ada objek dekat, tutup tetap tertutup.
  • delay(): Memberi jeda waktu. Sesuaikan delay(3000) untuk berapa lama tutup akan terbuka.

Cara Kerja

  1. Siapkan Tempat Sampah: Modifikasi tempat sampah Anda agar servo bisa menggerakkan tutupnya. Ini mungkin melibatkan penambahan engsel kecil atau braket.
  2. Rangkai Komponen: Ikuti skema rangkaian di atas untuk menghubungkan semua komponen ke Arduino.
  3. Unggah Kode:
    • Buka Arduino IDE.
    • Salin dan tempel kode di atas.
    • Pilih Tools > Board > Arduino Uno.
    • Pilih Tools > Port dan pilih port COM yang terhubung ke Arduino Anda.
    • Klik tombol Upload (panah kanan) untuk mengunggah kode ke Arduino.
  4. Uji Coba:
    • Setelah kode terunggah, arahkan tangan Anda ke sensor ultrasonik.
    • Servo seharusnya akan bergerak membuka tutup tempat sampah.
    • Setelah beberapa detik, tutup akan menutup kembali.
    • Perhatikan keluaran di Serial Monitor (Tools > Serial Monitor) untuk melihat pembacaan jarak. Ini membantu saat debugging.
Facebook
Twitter
LinkedIn
WhatsApp

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Populer Post

Related Posts

Join Our Newsletter