Percobaan 8 Aplikasi I/O sederhana untuk Kontrol Air Kolam Ikan
1. Prosedur [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan sesuai kondisi
Prinsip Kerja :
Pada
percobaan 8 tanpa kondisi, komponen utama dari rangakainnya adalah
potensio yang terkoneksi dengan sensor pH meter dan sensor suhu sebagai input, dimana pada outputan berupa motor dc dan juga motor pwm yang terhubung dengan arduino bagian slave, dimana arduino uno sebagai
mikrokontroler yang digunakan untuk menyimpan dan menjalankan program.
Pada
rangkaian, digunakan 2 arduino uno yang masing-masingnya berfungsi
sebagai master dan slave. Arduino master dihubungkan ke input, sementara
arduino slave dihubungkan ke output.
Pada percobaan 8 tanpa kondisi, dimana ketika suhu > 25 dan pH > 7 maka motor dc akan berputar melawan arah jarum jam serta motor pwm akan membentuk sudut 45 derajat.
dimana ketika suhu < 25 dan pH > 7 maka motor dc tidak hidup dan motor pwm membentuk sudut -90, ketika suhu > 25 dan pH < 7 maka motor dc akan berputar searah dengan jarum jam, serta motor pwm kembali dengan sudut 45 derajat. ketika suhu < 25 dan pH < 7 maka motor dc akan berhenti dan motor pwm membentuk sudut +90. untuk motor dc itu inputan merupakan pin 9 pada arduino dan outputan pin 10 pada arduino.
Arduino Slave
Listing Program :
//MASTER #includeSoftwareSerial mySerial(0, 1); // RX, TX void setup() { Serial.begin(9600); // Inisialisasi komunikasi serial mySerial.begin(9600); // Inisialisasi komunikasi serial untuk komunikasi dengan Arduino Penerima } void loop() { //Baca sensor float suhu = bacaSensorSuhu(); float pH = bacaSensorpH(); // Kirim data suhu & pH ke Arduino Penerima mySerial.println(suhu); Serial.println(suhu); mySerial.println(pH); Serial.println(pH); delay(500); }
float bacaSensorSuhu() { // Baca sensor suhu int sensorValue = analogRead(A0); float suhu = (sensorValue * 5.0 / 1023) * 100.0; return suhu;} float bacaSensorpH() { // Baca sensor pH int sensorValue = analogRead(A1); float pH = map(sensorValue, 0, 1023, 0, 14); return pH; }
//SLAVE #include Servo myservo; int motorin = 9; int motorout = 10; void setup() { Serial.begin(9600); // Inisialisasi komunikasi serial pinMode(motorin, OUTPUT); pinMode(motorout, OUTPUT); myservo.attach(6); } void loop() { // Menunggu data suhu & pH masuk dari Arduino Pengirim if (Serial.available() > 0) { // Membaca data suhu & pH yang diterima float suhu = Serial.parseFloat(); float pH = Serial.parseFloat(); // Lakukan sesuatu berdasarkan data suhu & pH if (suhu > 25 && pH > 7) { digitalWrite(motorin, HIGH); digitalWrite(motorout, LOW); myservo.write (93); } if (suhu < 25 && pH > 7){ digitalWrite(motorin, LOW); digitalWrite(motorout, LOW); myservo.write(3); }if (suhu > 25 && pH < 7){ digitalWrite(motorin, LOW); digitalWrite(motorout, HIGH); myservo.write (117); } if (suhu < 25 && pH < 7){ digitalWrite(motorin, LOW); digitalWrite(motorout, LOW); myservo.write (180); }
} }
Tanpa Kondisi
HTML
Rangkaian Simulasi klik disini
Video Simulasi klik disini
Listing Program klik disini
Tidak ada komentar:
Posting Komentar