Bendungan adalah konstruksi yang dibangun untuk menahan laju air menjadi waduk, danau, atau tempat rekreasi. Biasanya, bendungan pada sungai digunakan untuk mengendalikan aliran air agar area hilir mendapatkan air yang cukup. Kali ini kita akan membuat sistem bendungan yang bekerja secara otomatis untuk mengendalikan aliran air.
1. Alat / Bahan
- Arduino IDE Download
- Library: LiquidCrystal_I2C Download
- Library: HCSR-04 Download
- Library: Servo Download
- Arduino UNO 1 Buah
- Sensor HC-SR04 1 Buah
- Servo 1 Buah
- LCD 16×2 1 Buah
- I2C 1 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.
2. Skema Rangkaian
Gambar Rangkaian Sistem Bendungan Otomatis Anti Banjir
Keterangan:
- 5V – VCC HC-SR04, VCC Servo, VCC I2C
- GND – GND HC-SR04, GND Servo, VCC I2C
- D5 – Trig HC-SR04
- D6 – Echo HC-SR04
- D9 – Pin Data Servo
- SDA – SDA I2C
- SCL – SCL I2C
- Pin I2C – Pin LCD
3. Langkah Kerja
- Siapkan alat dan juga bahan
- kedua Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
- ketiga Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Unduh semua library di atas dan juga masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library
- Ketikkan sketch program pada halaman Arduino IDE
- kemudian Masukan alamat I2C LCD pada sketch program, untuk mengetahui alamat I2C pelajari materi berikut:
Mencari Tahu Alamat I2C Pada Modul I2C - Untuk dapat memahami cara kerja program HCSR-04, pelajari materi berikut:
Membaca Input Sensor Jarak HC-SR04 - terakhir Lakukan proses uploading program
4. Sketch Program
Dapatkan akses ratusan video tutorial dan pembelajaran dengan registrasi melalui tombol di bawah!
/* Program Sistem Bendungan Otomatis Anti Banjir dibuat oleh Indobot */ #include <HCSR04.h> //Library HCSR04 #include <LiquidCrystal_I2C.h> //Library LCD I2C #include <Servo.h> //Library Servo Servo myservo; LiquidCrystal_I2C lcd(0x27,16,2); //Alamat I2C HCSR04 hc(5,6); //initialisation class HCSR04 (trig pin , echo pin) float TinggiSensor = 20.21; //Tinggi pemasangan sensor float TinggiAir; //Tinggi air int bendungan; //Posisi bendungan void setup() { lcd.init (); //Mulai LCD lcd.setBacklight(HIGH); myservo.attach(9); //Servo pada pin D9 } void loop() { TinggiAir = TinggiSensor - hc.dist(); //Rumus mencari tinggi air bendungan = map(TinggiAir, 0, 12, 0, 100); //konversi ke persen if (TinggiAir > 12){ //Jika melebihi tinggi maksimal TinggiAir = 12; bendungan = 100; } else if (TinggiAir < 0){ //Jika error nilai < 0 TinggiAir = 0; bendungan = 0; } lcd.setCursor(0,0); lcd.print("T Air : "); lcd.print(TinggiAir); //Tampilkan tinggi air lcd.print("cm"); lcd.setCursor(0,1); lcd.print("Bendungan : "); lcd.print(bendungan); //Tampilkan posisi bendungan lcd.print("%"); bendungan = map(bendungan, 0, 100, 0, 90); //Konversi ke sudut 0* - 90* myservo.write(bendungan); delay(1000); lcd.clear(); }
Kesimpulan:
Pembukaan gerbang bendungan akan disesuaikan secara otomatis sesuai dengan ketinggian air. Semakin tinggi air maka semakin tertutup pula gerbang bendungan.
Ingin mengadakan pelatihan Arduino / IoT (Internet of Things) bersama Indobot?