Modul 2





KONTROL AIR IKAN

1. Pendahuluan
[Kembali]
    Kontrol pada kualitas air kolam ikan air tawar merupakan hal utama yang harus diperhatikan baik ikan air tawar konsumsi atau ikan air tawar hias. Parameter kualitas air kolam ikan yang dapat dikontrol sebagai contoh adalah suhu dan amonia sebagai parameter yang bisa mempengaruhi keberlangsungan hidup dan pola hidup ikan. Untuk mengatasi hal tersebut diperlukan sistem kontrol dan monitoring kualitas air pada kolam ikan air tawar yang dapat membantu permasalahan tersebut.



2. Tujuan [Kembali]
  1. Memahami prinsip dasar input dan output pada mikrokontroler.
  2. Mampu memahami kontrol air kolam ikan berbasis sensor
  3. Mampu memahami simulasi proteus yang dihubungkan kedalam proteus
3. Alat dan Bahan [Kembali]
A. Alat
  • Power Supply
B. Bahan

  • Motor DC


  • Arduino Uno


  • Sensor Hujan 




  • MCP79411




  • Touch Sensor
  • Turbinity Sensor

  • Water Level Sensor


4. Dasar Teori [Kembali]

  • Motor DC

Motor terdiri atas 2 bagian utama yaitu stator dan motor. Pada stator terdapat lilitan (winding) atau magnet permanen, sedangkan rotor adalah bagian yang dialiri dengan sumber arus DC. Arus yang melalui medan magnet inilah yang menyebabkan rotor dapat berputar. Arah gaya elektromagnet yang ditimbulkan akibat medan magnet yang dilalui oleh arus dapat ditentukan dengan menggunakan kaidah tangan kanan.



          


Keuntungan utama motor DC adalah sebagai pengendali kecepatan, yang tidak mempengaruhi kualitas pasokan daya. Motor ini dapat dikendalikan dengan mengatur:
• Tegangan dinamo : meningkatkan tegangan dinamo akan meningkatkan kecepatan
• Arus medan : menurunkan arus medan akan meningkatkan kecepatan.

Mekanisme Kerja Motor D

Mekanisme kerja untuk seluruh jenis motor secara umum sama
  • Arus listrik dalam medan magnet akan menimbulkan gaya.
  • Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran/loop, maka kedua sisi loop yaitu pada sudut kanan medan magnet akan mendapat gaya pada arah yang berlawanan.
  • Pasangan gaya menghasilkan torsi untuk memutar kumparan.
  • Motor- motor memiliki beberapa loop pada dinamonya untuk memberikan tenaga putar yang lebih seragam dari medan magnetnya dihasilkan oleh susunan elektromagnetik yang disebut kumparan medan
  • Touch Sensor


Touch Sensor atau Sensor Sentuh adalah sensor elektronik yang dapat mendeteksi sentuhan. Sensor Sentuh ini pada dasarnya beroperasi sebagai sakelar apabila disentuh, seperti sakelar pada lampu, layar sentuh ponsel dan lain sebagainya. Sensor Sentuh ini dikenal juga sebagai Sensor Taktil (Tactile Sensor). Seiring dengan perkembangan teknologi, sensor sentuh ini semakin banyak digunakan dan telah menggeser peranan sakelar mekanik pada perangkat-perangkat elektronik.

Berdasarkan fungsinya, Sensor Sentuh dapat dibedakan menjadi dua jenis utama yaitu Sensor Kapasitif dan Sensor Resistif. Sensor Kapasitif atau Capacitive Sensor bekerja dengan mengukur kapasitansi sedangkan sensor Resistif bekerja dengan mengukur tekanan yang diberikan pada permukaannya.

Sensor Kapasitif

Sensor sentuh Kapasitif merupakan sensor sentuh yang sangat populer pada saat ini, hal ini dikarenakan Sensor Kapasitif lebih kuat, tahan lama dan mudah digunakan serta harga yang relatif lebih murah dari sensor resistif. Ponsel-ponsel pintar saat ini telah banyak yang menggunakan teknologi ini karena juga menghasilkan respon yang lebih akurat.

Berbeda dengan Sensor Resistif yang menggunakan tekanan tertentu untuk merasakan perubahan pada permukaan layar, Sensor Kapasitif memanfaatkan sifat konduktif alami pada tubuh manusia untuk mendeteksi perubahan layar sentuhnya. Layar sentuh sensor kapasitif ini terbuat dari bahan konduktif (biasanya Indium Tin Oxide atau disingkat dengan ITO) yang dilapisi oleh kaca tipis dan hanya bisa disentuh oleh jari manusia atau stylus khusus ataupun sarung khusus yang memiliki sifat konduktif.

Pada saat jari menyentuh layar, akan terjadi perubahaan medan listrik pada layar sentuh tersebut dan kemudian di respon oleh processor untuk membaca pergerakan jari tangan tersebut. Jadi perlu diperhatikan bahwa sentuhan kita tidak akan di respon oleh layar sensor kapasitif ini apabila kita menggunakan bahan-bahan non-konduktif sebagai perantara jari tangan dan layar sentuh tersebut.

Sensor Resistif

Tidak seperti sensor sentuh kapasitif, sensor sentuh resistif ini tidak tergantung pada sifat listrik yang terjadi pada konduktivitas pelat logam. Sensor Resistif bekerja dengan mengukur tekanan yang diberikan pada permukaannya. Karena tidak perlu mengukur perbedaan kapasitansi, sensor sentuh resistif ini dapat beroperasi pada bahan non-konduktif seperti pena, stylus atau jari di dalam sarung tangan.

Sensor sentuh resistif terdiri dari dua lapisan konduktif yang dipisahkan oleh jarak atau celah yang sangat kecil. Dua lapisan konduktif (lapisan atas dan lapisan bawah) ini pada dasarnya terbuat dari sebuah film. Film-film umumnya dilapisi oleh Indium Tin Oxide yang merupakan konduktor listrik yang baik dan juga transparan (bening).

Cara kerjanya hampir sama dengan sebuah sakelar, pada saat film lapisan atas mendapatkan tekanan tertentu baik dengan jari maupun stylus, maka film lapisan atas akan bersentuhan dengan film lapisan bawah sehingga menimbulkan aliran listrik pada titik koordinat tertentu layar tersebut dan memberikan signal ke prosesor untuk melakukan proses selanjutnya.

Gambar Grafik Sensor Sentuh


5. Percobaan [Kembali]
a. Prosedur[Kembali]
    • Siapkan segala komponen yang di butuhkan
    • Susun rangkaian sesuai panduan
    • Input codingan arduino
    • Hidupkan rangkaian
    • Apabila tidak terjadi eror, maka rangkaian selesai dibuat.
b. Handware[Kembali]


c. Rangkaian Simulasi dan Prinsip Kerja[Kembali] 


Prinsip kerja dari rangkaian kontrol air kolam ikan nila ini yaitu terdiri dari 3 buah sensor diantaranya sensor Turbinity, Sensor Water Level dan Sensor Touch. Masing masing sensor memiliki kegunaannya masing-masing pada sistem kontrol air kolam ikan ini. 

Sensor Touch berfungsi untuk mengaktifkan pembagian pakan ikan nila otomatis pada kolam ikan. Pada implementasinya, pakan ikan pada kolam ikan menyebabkan air pada kolam ikan menjadi keruh. Disini akan diaktifkan sensor Turbinity sesuai ketentuan air yang keruh atau tidak. Ketika nilai kekruhan air terdeteksi > 50NTU, maka sensor turbinity akan aktif untuk menghidupkan pompa air menguras air kolam ikan. Ketika ketinggian air berkurang, maka akan mengaktifkan sensor water level (ketinggian air) untuk mengaktifkan pompa air mengisi kolam ikan kembali. 



c. Flowchart dan Listing Program[Kembali]

  • Flowchart



    • Listing Program 
#include <Servo.h>

Servo myservo;

// Water level sensor
const int waterSensorPin = A0;

// Touch sensor
const int touchSensorPin = 13;

// Turbidity sensor
const int turbidityPin = A3;
const int Motor1 = 11;
const int Motor2 = 3;
int pos = 0;

void setup() {
  pinMode(touchSensorPin, INPUT);
  pinMode(waterSensorPin,INPUT);
  pinMode(turbidityPin,INPUT);
  pinMode(Motor1,OUTPUT);
  pinMode(Motor2,OUTPUT);
  myservo.attach(5);
  // Start the serial communication
  Serial.begin(9600);
  myservo.write(pos);
}

void loop() {
 
  // Read the analog value from the turbidity sensor
  int turbidityValue = analogRead(turbidityPin);

  // Map the analog value to a turbidity range
  float turbidity = mapFloat(turbidityValue, 0, 1023, 0, 100); // adjust the range based on your sensor

  // Print the turbidity value to the serial monitor
  Serial.print("Turbidity: ");
  Serial.print(turbidity);
  Serial.println("%");

  delay(1000); // Delay for readability, adjust as needed


// Function to map a float value

  // Read water level sensor
  int waterLevel = analogRead(waterSensorPin);
  // Read touch sensor
  int touchValue = digitalRead(touchSensorPin);


  // Print sensor readings
  Serial.print("Water Level: ");
  Serial.print(waterLevel);
  Serial.print(", Touch Sensor: ");
  Serial.print(touchValue);
 

  // Wait for a short duration before taking the next reading
  delay(1000);


if (waterLevel <=500) {
    digitalWrite(Motor1, HIGH);
     
  } else {
    digitalWrite(Motor1, LOW);
   
  }
if (turbidityValue <=100) {
    digitalWrite(Motor2, HIGH);
     
  } else {
    digitalWrite(Motor2, LOW);
if(touchValue == HIGH){
 for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(100);                       // waits 15 ms for the servo to reach the position
  }
  delay(100);
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15 ms for the servo to reach the position
  }
}
}}
float mapFloat(float x, float in_min, float in_max, float out_min, float out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}


d. Video Simulasi[Kembali]

 



e. Download File[Kembali]

0 comments:

Posting Komentar