MEMBUAT JEMURAN OTOMATIS


 

1. Berikut adalah video tutorialnya (jangan lupa di subcribe ya)

  ðŸ› ️ Alat dan Bahan

  1. Arduino Uno
  2. Sensor Hujan / Raindrop Module (MH-RD)
  3. Motor Servo (SG90/MG90S)
  4. Kabel jumper
  5. Baterai 3,8V 2 buah (18650 lithium-ion → diseri jadi ±7,6V)
  6. Rumah tiruan (miniatur dari kardus/akrilik)
  7. Pakaian tiruan (kertas/kain kecil untuk gantungan)

Cara Rakit

  1. Sumber daya
    • 2 baterai 18650 (3,8V x 2) = 7,6V.
    • Sambungkan ke jack Arduino UNO (bisa langsung ke pin Vin & GND).
    • Arduino otomatis menurunkan ke 5V untuk sensor dan servo.
  2. Sensor hujan (Raindrop Module)
    • VCC → 5V Arduino
    • GND → GND Arduino
    • AO (Analog OUT) → AO Arduino
  3. Servo
    • VCC → 5V Arduino
    • GND → GND Arduino
    • Signal → pin 8 Arduino
  4. Miniatur Jemuran
    • Pasang servo di atas rumah tiruan, buat lengan jemuran dari stik es krim/kawat.
    • Kaitkan pakaian tiruan di lengan jemuran.
    • Saat servo berputar → jemuran masuk/keluar.

Skema Rangkaian


💻 Program Arduino

#include <Servo.h>

Servo myServo;  // Membuat objek Servo

int rainSensorPin = A0;  // Mendefinisikan pin analog untuk sensor hujan

int servoPin = 8;  // Mendefinisikan pin digital untuk motor servo

int threshold = 700;  // Menetapkan nilai ambang batas untuk mendeteksi hujan

 

void setup() {

  myServo.attach(servoPin);  // Menghubungkan servo ke pin yang ditentukan

  myServo.write(0);  // Menginisialisasi posisi servo pada sudut 0 derajat

  pinMode(rainSensorPin, INPUT);  // Menetapkan pin sensor hujan sebagai input

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

}

 

void loop() {

  int sensorValue = analogRead(rainSensorPin);  // Membaca nilai dari sensor hujan

  Serial.println(sensorValue);  // Menampilkan nilai sensor pada serial monitor

  int currentPos = myServo.read();  // Mendapatkan posisi servo saat ini

  if (sensorValue < threshold) {  // Jika hujan terdeteksi

    for (int pos = currentPos; pos <= 90; pos++) {  // Menggerakkan servo perlahan ke 90 derajat

      myServo.write(pos);

      delay(15);  // Jeda singkat untuk pergerakan halus

    }

  } else {

    for (int pos = currentPos; pos >= 0; pos--) {  // Menggerakkan servo perlahan kembali ke 0 derajat

      myServo.write(pos);

      delay(15);  // Jeda singkat untuk pergerakan halus

    }

  }

  delay(1000);  // Tunggu 1 detik sebelum membaca sensor lagi

 

 

 


Tidak ada komentar:

Posting Komentar