Tampilkan postingan dengan label Arduino dan water Turn dengan sensor ultrasonik. Tampilkan semua postingan
Tampilkan postingan dengan label Arduino dan water Turn dengan sensor ultrasonik. Tampilkan semua postingan

Rabu, 31 Agustus 2016

Water Turn Arduino Sesi Duo

Halaman ini adalah lanjutan dari praktek sebelumnya pada halaman

Water Turn Arduino Sesi 1

Nah bagi sahabat yang belum mengunjungi halaman sebelumnya silahkan klik link nya yaaaaa.....

 Cara kerja alat yang di rancang pada kesempatan kali ini adalah sebagai berikut  :

* 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.


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.

Alat yang kita praktekan kali ini dapat dipasang pada torn besar atau kecil. Wah kok bisa yaaa....  ?  massa siiich.. kan beda ketinggiannya....?

Alat ini memang dirancang agar dapat di setel dan di sesuaikan dengan ukuran penampung air. karena Sensor ping Parallax yang di gunakan hanya sampai mengukur maksimal 3 meter maka ketinggian Torn harus di bawah 3 meter yaaa..

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.





Pada saat normal atau baru di hidupkan alat akan berada pada posisi Running dimana alat akan bekerja sebagai berikut  :
*  Alat akan mengukur jarak dengan sensor dan akan di konversi ke tinggi air.
*  Tinggi  air akan di tampilkan di layar LCD
*  Jika tinggi air berada di batas bawah maka pompa akan di hidupkan
*  Jika pompa mengisi air dan sudah mencapai batas atas maka pompa akan berhenti.
Nah dengan cara kerja di atas maka air di dalam tower akan tetap terjaga.

Cara Penyetingan Alat
*  Tekan S1 ( Saklar 1) dan tampilan layar LCD akan masuk ke Pengaturan Tinggi Sensor. Sensor akan membaca jarak ke dasar torn. Misalnya jarak sensor dari dasar torn 80 cm Dalam praktek kali ini tirn harus dalam ke adaan kosong. Jarak inilah yang akan di simpan kememori 
     -  Bila jarak sudah sesuai 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 halangi sensor sampai terbaca 70 cm  bila sudah sesuai nilainya tekan S1 untuk menyimpan data dan akan masuk ke menu 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.

Cara menyeting alat
Untuk menyeting alat lakukan langkah berikut


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

#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 (x) +" Cm";
  if(t1 == 1 && K1 == false ) { mode = 3; K1= true ;
   y1=x/100;   EEPROM.write (5,y1);
   y2 = x% 100; EEPROM.write(6,y2);
   mode=3;
   a=x;
  }
  delay (90) ;
}
if (mode == 3 ){
  delay(90);
  if (t1 == 0) K1 = false;
  baris1 = "Set Batas Atas";
  baris2 = "Tinggi  : " + String (z) + " Cm";
  if(t1==1 && K1== false ) {
    K1= true;
    ba1=z/100; ba2=z%100;
  EEPROM.write (1,ba1);
  EEPROM.write (2,ba2);
  ba=z;
  mode=4;
}}

if (mode == 4 ){
  delay(110);
  if (t1 == 0) K1 = false;
  baris1 = "Set Batas Bawah";
  baris2 = "Tinggi  : "+ String (z)+ " Cm" ;
  if(t1==1 && K1== false) {
    K1= true ;
    bb1=z/100; bb2=z%100;
  EEPROM.write (3,bb1);
  EEPROM.write (4,bb2);
  baris2 = "Pompa Air Off";
  bb=z;
  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;
}}

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




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.....