Rabu, 31 Agustus 2016

Water Turn Arduino


Water Turn itu apa Yaaaaa....... ?

Di rumah atau di masjid biasanya menggunakan Torn atau wadah penyimpanan air. Air yang di pompa di tampung terlebih dahulu di Torn baru kemudian di salurkan melalui keran ke kamar mandi dan toilet juga ke depan rumah untuk menyiram kebun dan mencuci motor dan mobil. Masyarakat umumnya mengenal produk yang di kenal dengan nama " Radar" yang di pasang di torn. Ketika Torn air kosong maka pompa akan otomatis mengisi sendiri dan ketika sudah penuh maka pompa akan otomatis mati sendiri, demikianlah cara kerja radar.
Dalam kesempatan kali ini Kakang mas melakukan percobaan mengendalikan pompa air agar bekerja secara otomatis seperti radar. Cara kerja alat yang di rancang pada kesempatan kali ini adalah sebagai berikut  :

* Alat akan mengukur ketinggian air dan menampilkannya di layar Lcd 
* Ketika Air kosong maka pompa otomtis mengisi air.
* Ketika Air penuh maka otomatis pompa air berhenti
* Ketika Saklar no 2 ditekan maka pompa akan bekerja secara manual mengisi air.
* Ketika Saklar no 3 ditekan maka pompa akan berhenti secara manual.

Ya intinya adalah alat ini dapat bekerja  secara otomatis dan juga dapat bekerja secara manual.
Seperti yang kita ketahui bahwaa sensor jarak yang kita gunakan pada prinsipnya adalah mengukur jarak dari sensor ke benda di depannya, dalam hal ini adalah jarak Sensor ke permukaan air. Sedangkan yang kita perlukan adalah jarak atau ketinggian airnya bukan jarak sensornya.



Perhatikan gambar animasi di atas ....
*** Ketika Tinggi air 0 Cm jarak terbaca sensor 80 Cm Seharusnya 0 Cm
*** Ketika Tinggi air 10 Cm jarak terbaca sensor 70 Cm Seharusnya 10 Cm
*** Ketika Tinggi air 20 Cm jarak terbaca sensor 60 Cm Seharusnya 20 Cm
*** Ketika Tinggi air 30 Cm jarak terbaca sensor 50 Cm Seharusnya 30 Cm
*** Ketika Tinggi air 60 Cm jarak terbaca sensor 20 Cm Seharusnya 60 Cm
*** Ketika Tinggi air 75 Cm jarak terbaca sensor 5 Cm Seharusnya 75 Cm
Kita mengnginlan jarak yang di tampilkan adalah jarak seharusnya atau ketinggian air dan bukan jarak benda atau permukaan air dari sensor.. Tenang sahabat... coba perhatikan bahwa intinya adalah Tinggi Air = Ketinggian Sensor - Jarak yang terbaca oleh sensor.. nah itulah rumusnya.. Berbeda ketinggian wadah air maka ketinggian kita meletakan sensornya juga berbeda bukan ...? nah pada saat kita memperogram alat kita harus jeli memasukan rumusnya yaaaaa...




Apa saja yaaa .. yang kita perlukan dalam praktek kali ini......?
Tolong persiapkan yaaa  :
*  Mikrokontroller Arduino
*  Sensor jarak ping parallax
*  3 Buah Rangkaian Saklar
*  LCD 16x2 atau 20x4 Karakter.
*  Led 1 buah saja untuk simulasi Pompa.

Led digunakan sebagai pengganti pompa air. jika led hidup artinya pompa hidup. untuk menjadikannya sebagai alat untuk menghidupkan pompa sungguhan kita perlu relay Shield. tinggal beli di tokopedia. Led ini dihubungkan dengan kaki Arduino nomor 13
Rangkaian saklar dihubungkan dengan kaki mikrokontroller nomor  10, 9,8
Lcd dihubungkan seperti biasa
Bila diantara sobat sobat ada yang belum mengetahui cara membuat rangkaian saklar atau menghubungkan arduino dengan lcd dapat mengunjungi blog saya yang sebelumnya. cari aja yaaaaa....

Alat yang kita praktekan kali ini dapat dipasang pada torn besar atau kecil. Harus diingat pada jaraak berapa kita meletakan sensornya. Maksudnya ketinggian sensor dari dasar torn. sebagai contoh tinggi torn air adalah 75 Cm dan kita meletakan sensor 5 cm di atas Torn yang artinya Tinggi sensor 5 cm + 75 cm alias 80 Cm. Nah kita akan memasukan datanya pada menu pengaturan. Sekalian juga kita akan memasukan data  Batas bawah air dimana pada batas ini pompa akan mulai bekerja dan juga menentukan batas atas air yang artinya pada batas ini pompa akan berhenti bekerja. kita bisa memasukan batas bawah misalnya 10 cm dan batas atas 70 cm.



Setelah alat kita rakit dan program di uploud ke mikrokontroller maka alat akan bekerja seperti cara kerja yang disebutkan di atas. Tempatkanlah sensor ultrasonik di atas torn air agar dapat membaca jarak air. Agar alat dapat bekerja dengan baik maka alat perlu disesuaikan dengan torn air yang di pakai.  Cara Penyetingan Alat adalah sebagai berikut. :
*  Tekan S1 ( Saklar 1) dan tampilan layar LCD akan masuk ke Pengaturan Tinggi Sensor.
     -  Silahkan Masukan tinggi sensor dari dasar Torn.
    -  S2  untuk menambah nilai
    -  S3  untuk mengurangi nilai.
    -  Bila sudah selesai tekan S1 dan data akan disimpan dan akan masuk ke menu selanjutnya
*  Sekarang kita berada di menu memasukan batas atas, misalkan tingi torn adalah 75 dan kita akan menyetel batas atas di level 70 maka atur dengan S2 dan S3.  bila sudah sesuai nilainya tekan S1 untuk menyimpan data dan akan masuk ke mengatur batas bawah level air.
* Batas bawah level air kita setel saja 10 cm dari dasar torn, Hal ini dimaksudkan agar sebelum air dalam torn habis pompa air akan hidup dan mengisi torn. Cara penaturannya sama dengan batas atas. Bila sudah sesuai tinggal tekan S1 dan selesai sudah pengaturan alat.

Di bawah adalah Sketsa program arduino yang harus sahabat Upload ke mikrokontroller.

*****************************************************************************
#include <EEPROM.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long  x;
int xx = 51;
String baris1, baris2 , b1, b2;
int z, ba,bb, t1,t2, t3;
boolean K1,K2,K3;
int y1,y2,a,ba1,ba2,bb1,bb2; // disimpan di eeprom 1
int mode=1;

void setup() {
pinMode (13 ,OUTPUT);
pinMode (10,INPUT) ;
pinMode (9,INPUT) ;
pinMode (8,INPUT) ;
  lcd.begin(20, 4);
   pinMode (53,OUTPUT); digitalWrite (53,1);
y1 = EEPROM.read (5);
y2 = EEPROM.read (6);a=(y1*100)+ (y2);
ba1 = EEPROM.read(1);
ba2 = EEPROM.read(2);
ba=ba1*100; ba=ba + ba2;
bb1 = EEPROM.read(3);
bb2 = EEPROM.read(4);
bb = bb1*100; bb = bb+bb2;
pinMode(8,INPUT); pinMode(9,INPUT); pinMode(10,INPUT);
}
void loop() {
pinMode(xx,OUTPUT);
digitalWrite(xx,LOW);
delayMicroseconds(2);
digitalWrite(xx,HIGH);
delayMicroseconds(5);
digitalWrite(xx,LOW);
pinMode(xx,INPUT);
x=pulseIn(xx,HIGH);
x=x/29/2;
z=a-x;
t1 = digitalRead(10) ;
t2 = digitalRead(9) ;
t3 = digitalRead(8) ;
delay (150);

if (mode ==1 ){
baris1= "Tinggi Air = "+String(z)+ " Cm";
  if (z <= bb ){
    digitalWrite (13,HIGH);
    baris2= "Pompa Air On" ;
   }
  if (z>=ba ) {
    digitalWrite (13,LOW);
    baris2 = "Pompa Air Off"; }
  if (t1 == 1 && K1 == false ) {
    K1 = true;    mode = 2 ; }

   if (t2 == 1 && K2 == false ) {
    K2= true; digitalWrite (13,1);
    baris2= "Pompa Air On" ; }
   if (t3 == 1 && K3 == false ) {
    K3= true; digitalWrite (13,0);
        baris2= "Pompa Air Off" ;}
   if (t1 == 0) K1= false;
   if (t2 == 0) K2 = false;
   if (t3 == 0) K3=false;
}
if (mode == 2){
  if (t1 == 0) K1 = false;
  baris1 = "Seting Tinggi Sensor";
  baris2 ="Tinggi : "+ String (a) +" Cm";
  if(t1 == 1 && K1 == false ) { mode = 3; K1= true ;
   y1=a/100;   EEPROM.write (5,y1);
   y2 = a% 100; EEPROM.write(6,y2);
   mode=3;
  }
  if(t2 == 1){ a=a+1; if (a>300) a=300;}
  if(t3 == 1 ) {a=a-1; if (a<10) a=10; }
  delay (90) ;
}
if (mode == 3 ){
  delay(90);
  if (t1 == 0) K1 = false;
  baris1 = "Set Batas Atas";
  baris2 = "Tinggi  : " + String (ba) + " Cm";
  if( t2 == 1) {ba=ba+1;}
  if(t3 == 1){ba=ba-1;}
  if(t1==1 && K1== false ) {
    K1= true;
    ba1=ba/100; ba2=ba%100;
  EEPROM.write (1,ba1);
  EEPROM.write (2,ba2);
  mode=4;
}}

if (mode == 4 ){
  delay(110);
  if (t1 == 0) K1 = false;
  baris1 = "Set Batas Bawah";
  baris2 = "Tinggi  : "+ String (bb)+ " Cm" ;
  if(t2==1) {bb=bb+1; if (bb>300) bb=300;}
  if(t3==1){bb=bb-1; if (bb<10) bb=10;}
  if(t1==1 && K1== false) {
    K1= true ;
    bb1=bb/100; bb2=bb%100;
  EEPROM.write (3,bb1);
  EEPROM.write (4,bb2);
  baris2 = "Pompa Air Off";
  mode =1 ;
}}
if (b1 != baris1 || b2 != baris2 ) {
  lcd.clear();
  lcd.setCursor(0, 0); lcd.print(baris1);
  lcd.setCursor(0, 1); lcd.print(baris2);
  b1=baris1 ; b2= baris2;
}}


*****************************************************************************


Bersambung ke halaman Praktek Water Turn Berikutnya.....

Tidak ada komentar:

Posting Komentar