1. Berikut adalah video tutorialnya (jangan lupa di subcribe ya)
🛠️ Alat dan Bahan
- Arduino
Uno
- Sensor
Hujan / Raindrop Module (MH-RD)
- Motor
Servo (SG90/MG90S)
- Kabel
jumper
- Baterai
3,8V 2 buah (18650 lithium-ion → diseri jadi ±7,6V)
- Rumah
tiruan (miniatur dari kardus/akrilik)
- Pakaian
tiruan (kertas/kain kecil untuk gantungan)
⚡ Cara Rakit
- 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.
- Sensor
hujan (Raindrop Module)
- VCC
→ 5V Arduino
- GND
→ GND Arduino
- AO
(Analog OUT) → AO Arduino
- Servo
- VCC
→ 5V Arduino
- GND
→ GND Arduino
- Signal
→ pin 8 Arduino
- 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