Anda di halaman 1dari 3

Use Case Pemberian Pakan Ikan

Buatlah suatu sistem untuk pemberian pakan ikan yang ada di kolam, dimana
proses pemberian pakan dilakukan secara otomatis, berdasarkan kondisi
pakan dalam wadah tempat pakan. Adapun tahapan dalam menghasilkan
sistem pemberian pakan sebagai berikut:
1. Membuat perangkat keras
Komponen-komponen yang digunakan meliputi:
- Sensor Ultra sonic, berfungsi untuk memantau kondisi pakan dalam wadah
tempat pakan ikan, dimana sensor ultrasonic akan mengukur kondisi pakan
berdasarkan jarak.
- Jika jarak yang terdeteksi berada pada kisaran 20 cm sd 100 cm maka
sistem akan mengaktifkan motor sevo untuk membuka katub guna
mengeluarkan pakan, dimana servo akan bergerak terbuka dengan
sudut 90o (katub terbuka maksimum), serta motor vibrator (untuk
menggetarkan tempat pakan) akan aktif.
- Jika jarak yang terdeteksi berada pada kisaran 101 cm sd 130 cm, maka
secara otomatis servo akan diaktifkan dan mengatur proses penutupan
katub sebesar 30o (katub terbuka 1/3).
- Jika jarak yang terdeteksi berada diatas 130 cm, maka sistem secara
otomatis akan menutup katub (motor servo akan diposisikan ke 0
derajat), vibrator akan dinonaktifkan dan buzzer akan aktif. Untuk
mereset sistem, user harus mengaktifkan saklar Reset, dan segera
mengisi pakan dan menonaktifkan saklar reset, sehingga sistem
pemberi pakan dapat bekerja normal kembali.

Gambar untuk Perangkat Keras


2. Membuat perangkat lunak untuk menjalankan kerja dari sistem pemberi
Pakan Ikan, dimana programnya sebagai berikut:
#define ECHO_PIN 3
#define TRIG_PIN 4
#define vibrator 2
#define buzzer 5
int a = 0;
int tombol = A5;
int reset ;
#include <Servo.h>
Servo myservo;
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(vibrator, OUTPUT);
pinMode(tombol, INPUT_PULLUP);
myservo.attach(11);
myservo.write(0);
}

void loop() {
bacaSensor();
baca_tombol();
}

void bacaSensor(){
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;

// Kondisi Pakan Penuh


if (a == LOW){
if (distance >= 20 && distance <= 100){
myservo.write(90);
delay(15);
digitalWrite (vibrator, HIGH);
}
if (distance > 100 && distance <= 130){
myservo.write(30);
delay(15);
digitalWrite (vibrator, HIGH);
}
if (distance >130){
digitalWrite(vibrator, LOW);
myservo.write(0);
delay(15);
tone (buzzer, 120);
delay(500);
noTone(buzzer);
}
delay(100);
}

if (a == HIGH){
noTone(buzzer);
}
}

void baca_tombol(){
reset = digitalRead(tombol);
if (reset == LOW) {
}
if (reset == HIGH){
digitalWrite(vibrator, LOW);
myservo.write(0);
delay(15);
a = 1;
}
}

Jalankan Programnya dan buat kesimpilannya

Anda mungkin juga menyukai