Sabtu, 31 Januari 2015

Berlatih led aneka gaya

Ke Halaman Utama

Dalam kesempatan kali ini kang mas Yadi ingin berlatih agar led dapat menyala dengan kendali satu buah saklar. begini lhooo  idenya
  • pada saat saklar ditekan pertama kali Led akan menyala terus.
  • pada saat saklar ditekan lagi led akan menyala berkedip seperti blingking led laaah gayanya.
  • pada saat saklar ditekan lagi led akan mati.
dalam percobaan kali ini Kita membutuhkan  :
*  LED  1 buah saja
*  Mikrokontroller Arduino Uno atau yang lain juga boleh.
*  1 Buah Resistor
*  1 Buah Tactile switch
Rangkai lah bahan bahan di atas seperti rangkaian di bawah ini bila ada kekurangan maka mohon di maapkan dan tolong dibetulkan sendiri yaaach.... ma kaciiih..  Merangkainya silahkan gunakan BreadBoard atau disolder juga boleh.



Listing Programnya adalah sebagai berikut.
-------------------------------------------------------------------
byte a,c;
boolean b=false;
void setup() {
pinMode(10,INPUT);
pinMode (13,OUTPUT);
c=0;

}

void loop() {

// Membaca Data Saklar yang dihubungkan dengan pin 10 (High atau Low)
a = digitalRead(10);
  if (a  == HIGH  &&  b == false )  {
     c=c+1; if (c==3) c=0;
     b=true ; }

  if (a==LOW)  b=false;
if (c == 0) digitalWrite (13,LOW) ;

if ( c == 1)  digitalWrite ( 13,HIGH ) ;
if (c == 2) {
digitalWrite (13,LOW );  delay(322);
digitalWrite (13,HIGH );  delay(322); }

}

--------------------------------------------------------------------------------
Nah Coba program di atas di pindah ke Arduino Ide dan Uploud ke Arduino. Coba perhatikan kerja alatnya. coba saklarnya tekan tekan dan catat hasilnya. semoga tulisan ini dapat berguna bagi rekan rekan.
 Jika Rekan rekan baru belajar ada baiknya mengunjungi halaman sebelumnya yang membahas led yang lebih dasar. klik Linknya yaaaaa

Dari latihan di atas silahkan dikembangkan lagi menjadi rangkaian led dengan tambahan bila kita  tekan tombol sekali lagi maka akan menjadi running led.. wah pusiing yaaa.. Ga apa apa. terus berlatih dan berkreasi yaaa.. Semangaaath.....,.,


Ke Halaman Utama 

Kamis, 22 Januari 2015

Lampu Otomatis dengan arduino

Link ke Halaman Utama


Ceritanya Kang Mas Yadi ingin membuat sebuah lampu yang dapat menyala secara otomatis, kalo waktu malam sekitar jam 6 sore lampu akan  menyala sendiri dan jika sudah pagi sekitar jam 6 pagi maka lampunya dapat secara otomatis dengan sendirinya.
untuk latihan percobaan maka kita gunakan saja led yang dihubungkan ke kaki arduino no 13.




Progrmnya dimodip aja dulu dari program blink led yang ada di conto program, Inti programnya adalah lampu dinyalakan dengan perintah :
      digitalWrite( 13, HIGH);
Sesudah itu dilakukan delay selama 12 jam (jam 6 sore sampai 6 pagi ), 12 jam kita rubah dulu ke menit  12 X 60 =  720 menit , kemudian kita rubah ke detik 720 X 60 = 43.200 detik, 1 detik dalam program menggunakan  :
       delay(1000);
maka  Perintah untuk delay selama 12 jam adalah :
  delay(43200000);          
Setelah 12 jam lampu dimatikan dengan perintah  :
  digitalWrite(led, LOW); 
dan kita lakukan delay selama 12 jam agar lampu tetap mati sampai jam 6 sore :
  delay(43200000);          
Programnya seperti dibawah ini :

void setup() {
  pinMode(13, OUTPUT);

  void loop() {
  digitalWrite( 13, HIGH);  
  delay(43200000);          
  digitalWrite(led, LOW);      
  delay(43200000); 
}        

Program di atas jika kita upload ke mikrokontroller maka led akan menyala selama 12 jam dan kemudian akan mati selama 12 jam. supaya menyalanya jam 6 sore maka kita hidupkan deh mikrokontroller nya jam 6 sore maka lampunya akan hidup deh jam 6 sore sampai jam 6 pagi, Waaah repot yaaaaaa...  hehehehehhehee



ayo teruskan ke latihan berikutnya


Rabu, 21 Januari 2015

Berlatih LED sesi 3


Halaman Blog ini adalah sambungan dari sesi 2
Setelah berklatih di sesi pertama sekarang marilah kita coba kembali praktek dengan rangkaian yang sama tetapi programnya yang kita rubah. Eiit tunggu dulu. rangkaaian led nya sama hanya saja kita tambah rangkaian saklar. coba perhatikan gambar di bawah ini


Pada kesempatan kali ini kita akan menggunakan saklar yang akan dihubungkan dengan pin 2 dan pin 3 dan untuk saklar yang dihubungkan dengan pin 4 kita abaikan dahulu. tidak apa apa dipasang atau dirangkai. ini kita perlukan untuk praktek pada sesi berikutnya..

Karena program yang akan kita masukan berbeda tentunya hasil kerja alatnya akan berbeda dari percobaan sebelumnya. cobalah Upload program di bawah ke mikrokontroller. amati dan perhatikan cobalah tekan saklar yang di hubungkan ke pin nomor 2 dan perhatikan apa yang terjadi dan coba juga tekan saklar yang dihubungkan dengan pin nomor 3 dan perhatikan apa yang terjadi.
----------------------------------------------------------------------

boolean a,b;
byte j,k,l;
void setup() {
a = true; b = false ;  
pinMode(10,OUTPUT); pinMode(9,OUTPUT); pinMode(8,OUTPUT);
pinMode(7,OUTPUT); pinMode(6,OUTPUT); pinMode(5,OUTPUT);
pinMode(2,INPUT) ;  pinMode(3,INPUT) ; 

}

void loop() {
if (digitalRead(2) == HIGH ) { a = true; b = false;}
if (digitalRead (3) == HIGH ) { b = true; a= false; }

if (a==true ){ 
for (int x = 5 ; x < 11 ; x ++ ) {
  digitalWrite ( x, HIGH ); delay (555);
}
for (int y = 5 ; y < 11 ; y ++ ) {
  digitalWrite ( y, LOW ); delay (555);
}}

if (b==true) {
for (int x = 5 ; x < 11 ; x ++ ) {
  digitalWrite ( x, HIGH ); delay (555);
}
for (int y = 5 ; y < 11 ; y ++ ) {
  digitalWrite ( y, LOW ); delay (555);
}
  for (int a = 10 ; a > 4 ; a -- ) {
  digitalWrite ( a, HIGH ); delay (555);
}
for (int b = 10 ;  b > 4 ; b --  ) {
  digitalWrite ( b, LOW ); delay (555);
}}

}
----------------------------------------------------------------------------

Sekarang cobalah Upload program di bawah ini dan perhatikan perbedannya. coba tekan saklar saru persatu dan perhatikan reaksi pada lednya.

--------------------------------------------------------------------
/boolean a,b;
byte c,d,e,f;
void setup() {
a = true; b = false ;
pinMode(10,OUTPUT); pinMode(9,OUTPUT); pinMode(8,OUTPUT);
pinMode(7,OUTPUT); pinMode(6,OUTPUT); pinMode(5,OUTPUT);
pinMode(2,INPUT) ;  pinMode(3,INPUT) ; 

}

void loop() {
if (digitalRead(2) == HIGH ) {
a = true; b = false; c=4 ; d=4; e=1;
for (byte aa=5 ; aa<= 10; aa++ ){ digitalWrite(aa,LOW);}
delay (199); }
if (digitalRead (3) == HIGH ) {
  b = true; a= false; c=4 ; d=4; e=1;
for (byte ab=5 ; ab<= 10; ab++ ){ digitalWrite(ab,LOW);}
delay(199);}

if (a==true ){ 
 if (c <=10 ) { c=c+1; d=c; e=1; }
 if (c >10 )  { c=c+1; d=c-7; e=0; }
 if (c >17 ) { c=4; d=c; }
 digitalWrite ( d, e ); delay (222);

}

if (b==true) {

 if (c > 28) {c=4 ; d=c; }
 if (c >22 && c <=28 ) { c=c+1; d=34-c ; e=0; }
  if (c >16 && c <=22 ) { c=c+1; d=28-c ; e=1; }
 if (c <=10 ) { c=c+1; d=d+1; e=1; }
 if (c >10 && c <= 16 )  { c=c+1; d=c-7; e=0; }
  digitalWrite ( d, e ); delay (222);

}

}

------------------------------------------------------------------------
Bersambung ke Paktek sesi ke empat
Kembali Ke halaman Awal




Berlatih Led Sesi Ke 2


Halaman ini adalah sambungan dari Halaman Berlatih Led sesi 1
Link untuk meloncat ke sesi 3


Untuk membuat program arduino agar dapat mengendalikan led seperti di atas caranya mudah saja, kita modifikasi program yang sudah dibuat pada latihan sesi kesatu. Oh iya rangkaiannya adalah seperti gambar di bawah. Masih sama dengan rangkaian pada latihan Led sesi pertama


------------------------------------------------------------------------
// Lampu beralan sampai nyala semua
// Terus mati sampai mati semua
void setup() {
pinMode(10,OUTPUT); pinMode(9,OUTPUT); pinMode(8,OUTPUT);
pinMode(7,OUTPUT); pinMode(6,OUTPUT); pinMode(5,OUTPUT);
}

void loop() {
for (int x = 5 ; x < 11 ; x ++ ) {
  digitalWrite ( x, HIGH ); delay (555);
}
for (int y = 5 ; y < 11 ; y ++ ) {
  digitalWrite ( y, LOW ); delay (555);
}
for (int a = 10 ; a > 4 ; a -- ) {
  digitalWrite ( a, HIGH ); delay (555);
}
for (int b = 10 ;  b > 4 ; b --  ) {
  digitalWrite ( b, LOW ); delay (555);
}

}
------------------------------------------------------------------------------------------

Bersambung Ke sesi 3

Link menuju halaman pemandu

Berlatih LED

Link Menuju Sesi 2
Saat ini ceritanya ingin berlatih Arduino untuk membuat led berjalan nih.. yang namanya berlatih itu bukan masalah latihannya ringan atau sukar yang penting kita harus berlatih dengan semangat.. seperti pepatah orang tua mengatakan " Practice make perpect " yang terjemahannya yang jelas bukan  " Lebih praktis makan kripik " .




 untuk membuat alat ini yang dibutuhkan adalah :
Mikrokontroller Arduino
Led 6 Buah,
BreadBoard dan kabel jumper secukupnya

Led yang enam buah tersebut dipasang di papan Bredboard yang rapi yaaa pemasangannya. Kemudian kaki led dihubungkan ke pin digital arduino nomor : 8,9,10,11,12 dan 13. Yang dihubungkan ke kaki digital adalah bagian anodanya. Sedangkan bagian katoda dihubungkan ke negatif yang ada di arduino.


 Untuk menghidupkan led pada prinsipnya mudah saja perintahnya adalah seperti di bawah ini
  digitalWrite ( 1, HIGH ) ;
perintah di atas itu artinya adalah memerintahkan  pin digital Arduino no 1 agar supaya berlogika HIGH ( Bertegangan 5 Volt ), tegangan tersebut akan menghidupkan led. untuk mematikan lednya perintahnya adalah
  digitalWrite ( 1, LOW );
Perintah low di atas berarti kaki akan berlogika LOW yang artinya tegangan kaki no 1 bernilai Nol Volt. dan tentunya led akan mati.
Untuk membuat sebuah lampu berjalan seperti animasi di atas maka perintahnya harus di modifikasi sedemikian rupa
Contoh Listing Programnya adalah seperti dibawah ini.

-----------------------------------------------------------------------------------------------
// Lampu beralan sampai nyala semua
// Terus mati sampai mati semua
void setup() {
pinMode(13,OUTPUT); pinMode(12,OUTPUT); pinMode(8,OUTPUT);
pinMode(11,OUTPUT); pinMode(10,OUTPUT); pinMode(9,OUTPUT);
}

void loop() {
for (int x = 8 ; x <= 13 ; x ++ ) {
  digitalWrite ( x, HIGH ); delay (555);
}
for (int y = 8 ; y <= 13 ; y ++ ) {
  digitalWrite ( y, LOW ); delay (555);
}
for (int a = 13 ; a >= 8 ; a -- ) {
  digitalWrite ( a, HIGH ); delay (555);
}
for (int b = 13 ;  b >= 8 ; b --  ) {
  digitalWrite ( b, LOW ); delay (555);
}

}
------------------------------------------------------------------------------------------------------

Nah sekarang bagaimanakah caranya memprogram alat agar dapat menyala seperti animasi dibawah ini




Tutorialnya ada di halamnn Berikut ---->  Berlatih Led Sesi Ke 2


Nah Latihan yang akan dilakukan pada percobaan di bawah adalah latihan mikrokontroller Arduino dengan saklar dan 6 buah led. susunlah rangkaian seperti di bawah ini


Nah listing programnya adalah seperti di bawah ini. coba pindahkan ke IDE Arduino yang ada di laptop Saudara.
------------------------------------------------------------------------------------------------------

 int Saklar =2;
int Led1 = 8 ;
int Led2 = 9 ;
int Led3 = 10 ;
int Led4 = 11 ;
int Led5 = 12 ;
int Led6 = 13 ;
int x =0 ; int y =0;
int KondisiSaklar;
boolean s =false;
void setup() {
  pinMode(Led1, OUTPUT);  pinMode(Led4, OUTPUT);
  pinMode(Led2, OUTPUT);  pinMode(Led5, OUTPUT);
  pinMode(Led3, OUTPUT);  pinMode(Led6, OUTPUT);
  pinMode (Saklar, INPUT);
}

void loop() {
  KondisiSaklar = digitalRead (Saklar);
  if (KondisiSaklar == HIGH && s == false)  {
   s = true;
    x=x+1; if (x>=4) x=0;
    delay (80);
  }
  if (KondisiSaklar == LOW ) s = false ;
 if (x == 0) {
 digitalWrite (Led1, LOW);  digitalWrite (Led2, LOW);
 digitalWrite (Led3, LOW);  digitalWrite (Led4, LOW);
 digitalWrite (Led5, LOW);  digitalWrite (Led6, LOW);
 }
 if (x == 1) {
 digitalWrite (Led1, HIGH);  digitalWrite (Led2, HIGH);
 digitalWrite (Led3, HIGH);  digitalWrite (Led4, HIGH);
 digitalWrite (Led5, HIGH);  digitalWrite (Led6, HIGH);
 }
 if (x == 2) {
 y=y+1; if (y>=80) y=0;
 if (y <= 10) {
 digitalWrite (Led1, HIGH);  digitalWrite (Led2, HIGH);
 digitalWrite (Led3, HIGH);  digitalWrite (Led4, HIGH);
 digitalWrite (Led5, HIGH);  digitalWrite (Led6, HIGH);
 }
 if (y >10 && y <=20){
 digitalWrite (Led1, LOW);  digitalWrite (Led2, LOW);
 digitalWrite (Led3, LOW);  digitalWrite (Led4, LOW);
 digitalWrite (Led5, LOW);  digitalWrite (Led6, LOW);
 }
 if (y>20) y=0;
 }
 if (x == 3) {
  if (y <= 10){
 digitalWrite (Led1, LOW);  digitalWrite (Led2, LOW);
 digitalWrite (Led3, LOW);  digitalWrite (Led4, LOW);
 digitalWrite (Led5, LOW);  digitalWrite (Led6, LOW);
  }
  if (y> 10 && y <= 20){
 digitalWrite (Led1, HIGH);  digitalWrite (Led2, LOW);
 digitalWrite (Led3, LOW);  digitalWrite (Led4, LOW);
 digitalWrite (Led5, LOW);  digitalWrite (Led6, LOW);
  }
  if (y >20 && y <= 30){
 digitalWrite (Led1, HIGH);  digitalWrite (Led2, HIGH);
 digitalWrite (Led3, LOW);  digitalWrite (Led4, LOW);
 digitalWrite (Led5, LOW);  digitalWrite (Led6, LOW);
  }
  if (y> 30 && y <= 40){
 digitalWrite (Led1, HIGH);  digitalWrite (Led2, HIGH);
 digitalWrite (Led3, HIGH);  digitalWrite (Led4, LOW);
 digitalWrite (Led5, LOW);  digitalWrite (Led6, LOW);
  }
  if (y > 40 && y <= 50){
 digitalWrite (Led1, HIGH);  digitalWrite (Led2, HIGH);
 digitalWrite (Led3, HIGH);  digitalWrite (Led4, HIGH);
 digitalWrite (Led5, LOW);  digitalWrite (Led6, LOW);
  }
  if (y > 50 && y <= 60){
 digitalWrite (Led1, HIGH);  digitalWrite (Led2, HIGH);
 digitalWrite (Led3, HIGH);  digitalWrite (Led4, HIGH);
 digitalWrite (Led5, HIGH);  digitalWrite (Led6, LOW);
  }
  if (y >60 && y <= 70){
 digitalWrite (Led1, HIGH);  digitalWrite (Led2, HIGH);
 digitalWrite (Led3, HIGH);  digitalWrite (Led4, HIGH);
 digitalWrite (Led5, HIGH);  digitalWrite (Led6, HIGH);
  }
 y=y+1; if (y>=80) y=0;
 }
 delay (50);
}
------------------------------------------------------------------------------------------------------

Setelah Rekan-rekan mencobanya coba rasakan apa bedanya dengan latihan yang ada di atas. Silahkan rekan -rekan terus kembangkan sesuai dengan imajinasi rekan rekan semua

Link menuju Halaman Pemandu



Selasa, 20 Januari 2015

Berlatih Pin Analog Dan Pin Digital Arduino Untuk Saklar

Link menuju Halaman Utama

Dalam kesempatan kali ini kang mas Yadi ingin berlatih menggunakan pin analog arduino. biasanya kang mas menggunakan pin digital sebagai input yang dihubungkan ke saklar agar dapat menyalakan sebuah lampu led, tetapi dalam kesempatan kali ini kang mas ingin menggunakan pin analog untuk menggantikan pin digital.



listing program nya adalah sebagai berikut
--------------------------------------------------------------------
 boolean a = false;
boolean b = false;
void setup() {
pinMode(13,OUTPUT);
}

void loop() {
if (analogRead(A0) > 555 && a= = false ) {
a = true;
if (b = = false) b = true ;
else b=false ;
}
if (analogRead(A0) < 555 ) a = false ;
if (b = = true) digitalWrite (13,1);
else digitalWrite (13,0);
}

-------------------------------------------------------------------------------


Biasanya untuk latihan menyalakan sebuah led dengan sebuah saklar adalah dengan cara menggunakan pin digital yang ada, sebagai contoh kita gunakan pin digital nomor 10 sebagai input yang dihubungkan dengan saklar dan pin 13 kita gunakan sebagai output yang dihubungkan dengan lampu LED



Listing programnya adalah sebagai berikut :


-------------------------------------------------------------------------------

boolean a=false ; boolean b=false;
void setup() {  pinMode(10,INPUT );
  pinMode(13,OUTPUT);
}

void loop() {if (digitalRead(10) == HIGH && a==false ) {
a=true;
if (b==false) b=true ;
else b=false ;
}
if (digitalRead(10) == LOW ) a=false ;
if (b ==true) digitalWrite(13,1);
else digitalWrite(13,0);
}

-------------------------------------------------------------------------------

Program diatas dapat kita modifikasi untuk membuat saklar hotel, dengan saklar hotel intinya adalah sebuah lampu dapat dikontrol dari dua tempat yang berbeda, misalnya saklar 1 berada di lantai satu saklar 2 berada di lantai dua. biasanya ini diterapkan pada ruang darurat tangga. misalnya kita dari lantai dua akan turun ke lantai satu maka dari lantai dua kita menekan saklar agar lampu menyala daan setelah kita sampai di lantai satu maka kita menekan saklar yang ada di lantai 1 dan lampu pun akan padam.



-------------------------------------------------------------------------------

boolean a=false;
boolean b=false;
boolean c=false;
void setup() {
  pinMode(10,INPUT );
  pinMode(11,INPUT );
  pinMode(13,OUTPUT);
}

void loop() {
if (digitalRead(10) == HIGH && a==false ) {
a=true;
if (b==false) b=true ;
else b=false ;
}
if (digitalRead(10) == LOW ) a=false ;

if (digitalRead( 11 ) == HIGH && c==false ) {
c=true;
if (b==false) b=true ;
else b=false ;
}
if (digitalRead(11) == LOW ) c=false ;


if (b ==true) digitalWrite(13,1);
else digitalWrite(13,0);
}

-------------------------------------------------------------------------------





a

  2




Jumat, 16 Januari 2015

Berlatih menggunakan EEPROM Arduino

EEPROM dapat kita gunakan untuk menyimpan sebuah data nilai. jika kita menyimpan data di eeprom maka data tersebut tidak dapat hilang walaupun mikrokontroller dimatikan. secara sederhananya eeprom ibarat sebuah hardisk jika dalam sebuah komputer.
untuk latihan awal coba yaaa  latihan yang ada di contoh ide.. biasaaaa.. klik aja file-examples - eeprom -eeprom read.. contoh program eeprom akan ditampilkan seperti dibawah ini.

------------------------------------------------------------------------------

/*
 * EEPROM Read
 *
 * Reads the value of each byte of the EEPROM and prints it
 * to the computer.
 * This example code is in the public domain.
 */

#include <EEPROM.h>

// start reading from the first byte (address 0) of the EEPROM
int address = 0;
byte value;

void setup()
{
  // initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
}

void loop()
{
  // read a byte from the current address of the EEPROM
  value = EEPROM.read(address);

  Serial.print(address);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println();

  // advance to the next address of the EEPROM
  address = address + 1;

  // there are only 512 bytes of EEPROM, from 0 to 511, so if we're
  // on address 512, wrap around to address 0
  if (address == 512)
    address = 0;
  delay(500);
}

--------------------------------------------------------------------------------
Coba perhatikan hasilnya.. Apa yang terjadi. Dalam hal belajar bab eeprom secara sederhananya terdiri dari dua hal. satu bagaimana cara membaca eeprom dan yang kedua adalah bagaimana cara menulis eeprom.

Untuk membaca EEPROM  arduino perintah yang digunakan adalah  EEPROM.read(alamat). Misalkan kita ingin mengetahui isi EEPROM dengan alamat 10 dan ditampilkan di monitor maka tulis perintah   Serial.print( EEPROM.read(10) ); 

Dibawah ini adalah sebuah program untuk berlatih eeprom yang mudah-mudahan dengan mengikutinya rekan-rekan dapat sedikit terbantu dalam belajar dan manambah inspirasi baru.

Kang mas yadi pernah membuat percobaan membuat jadwal shalat digital berdasarkan jadwal shalat abadi. dalam programnya tentunya menggunakan EEPROM kunjungi juga yaaa.. sebagai bahan pembelajaran.. ini nich Link nya yaaaa


Rabu, 14 Januari 2015

Arduino dan saklar sesi ke dua

Arduino dan saklar sesi satu

Link  Menuju Latihan Saklar dan Motor Servo
Sekarang Marilah kita berlatih arduino dengan menggunakan saklar sebagai inputnya untuk menghidupkan led.
Alat yang di perlukan  :

- Arduino Uno
- Saklar digital 2 buah ( Tactile_switches )
- Led
- Resistor 1 kilo ohm  2 buah
- BreadBoard
- Kabel Jumper secukupnya

Di bawah ini adalah contoh latihan untuk meenyalakan lampu led dengan 2 buah tombol. Satu tombol untuk menghidupkan dan satu tombol lagi untuk mematikannya. Listing programnya adalah seperti dibawah ini




----------------------------------------------------------------------------------------------------

void setup() {
pinMode(13,OUTPUT);
pinMode(2,INPUT);
pinMode(4,INPUT);
}

void loop() {
if (digitalRead(2) ==1){
  digitalWrite(13,1);}
 
if (digitalRead(4) == 1){
  digitalWrite(13,0);}
 delay(100);
}
--------------------------------------------------------------------------------------------
Nah sekarang mari kita coba bahas Alur program di atas agar lebih dimengerti. Pada saat saklar 1 di tekan maka kaki arduino no2 akan mendapat logoka HIGH
  Di dalam baris program kita menulis if (digitalRead(2) ==1) {   digitalWrite(13,0);}
ini berarti ketika terbaca logika High pada kaki digital nomor 2 maka program akan memerintahkan kaki digital nomor 13 untuk berlogika High (mengeluarkan tegangan 5 Volt). Kaki digital nomor 13 ini dihubungkan dengan Led dan tentunya LED akan menyal. dan pada saat sakllar dilepas dan tentunya kaki nomor 2 mendapat logika Low, maka tidak akan ada perubahan apa apa. Led akan tetap menyala. Hal ini dikarenakan kita tidak memerintahkan apa apa dalam baris program...

Pada saat saklar 2 di tekan maka kaki arduino no 4 akan mendapat logoka HIGH

  Di dalam baris program kita menulis if (digitalRead(4) ==1) {   digitalWrite(13,0);}
ini berarti ketika terbaca logika High pada kaki digital nomor 4 maka program akan memerintahkan kaki digital nomor 13 untuk berlogika Low (mengeluarkan tegangan 0 Volt). Kaki digital nomor 13 ini dihubungkan dengan Led dan tentunya LED tidak akan menyala. dan pada saat sakllar dilepas dan tentunya kaki nomor 4 mendapat logika Low, maka tidak akan ada perubahan apa apa. Led akan tetap mati. Hal ini dikarenakan kita juga  tidak memerintahkan apa apa dalam baris program... hehehehee


Dari Latihan di atas dapat disimpulkan bahwa :

*  Saklar 1 dihubungkan ke arduino kaki no 2 berfungsi sebagai on (untuk menghidupkan)

*  Saklar 2 dihubungkan ke arduino kaki no 4 Berfungsi untuk mematikan


Ini hanyalah salah satu latihan dasar pemrograman mikrokontroller arduino. Sekarang silahkan rekan rekan kembangkan sesuai imajinasi kalian. Cobalah kakinya di rubah menjadi kaki no 12 dan no 11 seperti gambar di bawah. Bagaimanakah perubahan pada programnya. Teruslah berlatih dengan semangat



Kembali Ke halaman Awal


Selasa, 13 Januari 2015

Arduino dan Ultrasonik bagian dua

Sambungan dari Arduino dan Ultrasonik bagian satu



           Latihan halaman satu menjelaskan latihan demi latihan penggunaan sensor ultrasonik dari mengukur jarak biasa dan terakhir mengukur jarak ketinggian air.  Programnya mempunyai kekurangan yaitu alat hanya dapat digunakan untuk satu wadah saja. jika alat digunakan untuk mengukur wadah dengan ketinggian yang berbeda maka perlu diprogram ulang. Dalam kesempatan kali ini di halaman ini akan dicoba penggunaan ultrasonik untuk pengukuran ketinggian air ( Water Level Kalo kata orang Bule maaah).  dibawah ada dua program yang dapat dipraktekan, yang pertama adalah program untuk mengukur ketinggian air saja dan yang kedua adalah program untuk mengukur ketinggian air dan sekaligus dapat menghidupkan pompa secara otomatis bila ketinggian air berada di level bawah dan pompa akan otomatis mati dengan sendirinya jika ketinggian airnya sudah mencapai ketinggian maksimal.



Alat terdiri dari
Sensor ultrasonik sebagai pengukur jarak
Saklar sebagai input data
Lcd sebagai alat penampil
Saklar 1 / tombol 1 untuk mode seting dan ok
Saklar 2 / tombol 2 untuk plus
Saklar 3/ tombol 3 untuk minus

Ultrasonik pada prinsipnya adalah untuk mengukur jarak benda dari sensor. Jika kita letakan alat untuk mengukur ketinggian air maka yang diukur adalah jarak air dari sensor. Ketika
Misalnya pada wadah dengan ketinggian 20 cm
Dalam keadaan wadah kosong jarak yang terbaca sensor adalah 20 cm seharusnya adalah 0 cm
Dalam keadaan air dengan ketinggian 5 cm maka jarak yang terbaca adalah 15 cm
Agar jarak yang ditampilkan sesuai maka dalam pnulisan program nya perlu sedikit modifikasi

X = jarak antara sensor ke dasar
Y = jarak yang terbaca oleh sensor
Z= jarak yang ditampilkan
Z= x-y

Variabel lain yg digunakan
H  batas atas
L batas bawah bernilai byte diisi 0 dan1 disimpan di eeprom 1 dan alamat 2
             Di bawah ini adalah listing program untuk pengukuran air dimana alat dapat di setel dan disesuaikan dengan wadah air yang ada.





----------------------------------------------------------------


boolean m1,m2,m3,m4,m5;
#include <LiquidCrystal.h>
#include <EEPROM.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long  x;
int z ;
int y,a; // disimpan di eeprom 1

void setup() {
  lcd.begin(16, 2);
m1=true;m2=false;
y = EEPROM.read (1); a=y;
pinMode(8,INPUT); pinMode(9,INPUT); pinMode(10,INPUT);
}

void loop() {
pinMode(7,OUTPUT);
digitalWrite(7,LOW);
delayMicroseconds(2);
digitalWrite(7,HIGH);
delayMicroseconds(5);
digitalWrite(7,LOW);
pinMode(7,INPUT);
x=pulseIn(7,HIGH);
x=x/29/2;
z=a-x;

// Kondisi Jalan
if (m1==true){
lcd.clear();
  lcd.setCursor(0, 0); lcd.print("Hasil Pengukuran");
  lcd.setCursor(0, 1); lcd.print("Jarak :");lcd.print(z);
  lcd.setCursor(14, 1); lcd.print("Cm");
  delay(400);
  if (digitalRead(8)==HIGH) {
    m2=true; m1=false; delay(80); }
}
// Kondisi pengaturan alat
if (m2==true){
  delay(90);
  lcd.clear();
  lcd.setCursor(0, 0); lcd.print("Mode Pengaturan");
  lcd.setCursor(0, 1); lcd.print("T Tangki : "); lcd.print(a);
  if(digitalRead(9)==HIGH) {a=a+1;delay(80);}
  if(digitalRead(10)==HIGH){a=a-1;delay(80);}
  if(digitalRead(8)==HIGH) {y=a;
  EEPROM.write (1,a); delay(200);
  m2=false; m1=true;
}}
}
------------------------------------------------------------------------------

bila rekan-rekan belum paham maka cobalah tips dibawah ini.

  • pelajari kembali masalah penggunaan EEPROM Arduino. EEPROM Arduino diperlukan dalam menyimpan data ketinggian wadah air. 
  • pelajari kembali bagian ultrasonik bila belum mengerti bagian ultrasonik
  • pelajari kembali masalah penggunaan saklar digital 
caranya gampang saja untuk mempelajarinya..  biasaaaaaa.. buka googe ketik saja yg ingin dipelajari. misalnyan ketik eeprom arduino, maka akan terdapat banyak halaman yang berhubungan dengan eeprom dan arduino.. semangatlah dalam belajar dan jangan menyerah dalam menghadapi kegagalan



----------------------------------------------------------------------------------------


boolean m1,m2,m3,m4,m5;
#include <LiquidCrystal.h>
#include <EEPROM.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long  x;
int z, ba,bb;
int y,a,ba1,ba2,bb1,bb2; // disimpan di eeprom 1

void setup() {
pinMode (13 ,OUTPUT);
pinMode (10,INPUT) ;
pinMode (9,INPUT) ;
pinMode (8,INPUT) ;
  lcd.begin(16, 2);
m1=true; m2=false; m3=false; m4=false;
y = EEPROM.read (1); a=y;
ba1 = EEPROM.read(2);
ba2 = EEPROM.read(3);
ba=ba1*100; ba=ba + ba2;
bb1 = EEPROM.read(4);
bb2 = EEPROM.read(5);
bb = bb1*100; bb = bb+bb2;
pinMode(8,INPUT); pinMode(9,INPUT); pinMode(10,INPUT);
}

void loop() {
pinMode(7,OUTPUT);
digitalWrite(7,LOW);
delayMicroseconds(2);
digitalWrite(7,HIGH);
delayMicroseconds(5);
digitalWrite(7,LOW);
pinMode(7,INPUT);
x=pulseIn(7,HIGH);
x=x/29/2;
z=a-x;

// Kondisi Jalan
if (m1==true){
lcd.clear();
  lcd.setCursor(0, 0); lcd.print("Hasil Pengukuran");
  lcd.setCursor(0, 1); lcd.print("Jarak :");lcd.print(z);
  lcd.setCursor(14, 1); lcd.print("Cm");
  delay(400);
  if (z <= bb ){ digitalWrite (13,HIGH); }
  if (z>=ba ) { digitalWrite (13,LOW); }
  if (digitalRead(8)==HIGH) {
    m2=true; m1=false; delay(80); }
}
// Kondisi pengaturan alat
if (m2==true){
  delay(90);
  lcd.clear();
  lcd.setCursor(0, 0); lcd.print("Mode Pengaturan");
  lcd.setCursor(0, 1); lcd.print("T Tangki : "); lcd.print(a);
  if(digitalRead(9)==HIGH) {a=a+1;delay(80);}
  if(digitalRead(10)==HIGH){a=a-1;delay(80);}
  if(digitalRead(8)==HIGH) {y=a;
  EEPROM.write (1,a); delay(200);
  m2=false; m3=true;
}}
if (m3==true){
  delay(90);
  lcd.clear();
  lcd.setCursor(0, 0); lcd.print(" Set Batas Atas");
  lcd.setCursor(0, 1); lcd.print("Tinggi  : "); lcd.print(ba);
  if(digitalRead(9)==HIGH) {ba=ba+1;delay(80);}
  if(digitalRead(10)==HIGH){ba=ba-1;delay(80);}
  if(digitalRead(8)==HIGH) {
    ba1=ba/100; ba2=ba%100;
  EEPROM.write (2,ba1);
  EEPROM.write (3,ba2);
  delay(200);
  m3=false; m4=true;
}}

if (m4==true){
  delay(90);
  lcd.clear();
  lcd.setCursor(0, 0); lcd.print(" Set Batas Bawah");
  lcd.setCursor(0, 1); lcd.print("Tinggi  : "); lcd.print(bb);
  if(digitalRead(9)==HIGH) {bb=bb+1;delay(80);}
  if(digitalRead(10)==HIGH){bb=bb-1;delay(80);}
  if(digitalRead(8)==HIGH) {
    bb1=bb/100; bb2=bb%100;
  EEPROM.write (4,bb1);
  EEPROM.write (5,bb2);
  delay(200);
  m4=false; m1=true;
}}

}
---------------------------------------------------------------------------------







Ling menuju Halaman 1

Minggu, 11 Januari 2015

Penggunaan Bred Board dan latihan dasar arduino

Link Untuk Melompat ke halaman Utama

Penggunaan Bred Board dalam berlatih elektronik

bredboard kadang-kadang diperlukan dalam berlatih merangkai komponen elektronika. dengan bredboard komponen mudah dibongkar pasang. Bredboard adalah papan konektor untuk menghubungkan komponen-komponen elektronika. Contoh bredboard adalah seperti gambar dibawah ini.



Sebagai contoh jika kita ingin merangkai rangkaian elektronik seperti dibawah ini.



Maka Rakitlah komponen- komponennya pada Bred Board seperti gambar di bawah ini.

Nah sekarang marilah kita berlatih latihan dasar arduino yaitu latihan led berkedip. intinya kita mencoba mengontrol nyala led dengan mikrokontroller arduino agar dapat beroperasi 1 detik menyala dan 1 detik mati




-----------------------------------------------------------------------

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

----------------------------------------------------------------------------------------
Nah marilah sekarang kita tingkatkan latihannya dengan menggunakan 3 Led. gambarnya seperti dibawah ini :

Jika rekan-rekan ingin menggunakan bredBoard silahkan di rangkai pada bredboard masing-masing. Semangat terus yaaaaa......
Listing Program seperti dibawah ini yaaaaa...


-------------------------------------------------------------------------------------------
void setup() {
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(13, HIGH);  
  delay(1000);              
  digitalWrite(12, HIGH);  
  delay(1000);              
  digitalWrite(11, HIGH);  
  delay(1000);             
  digitalWrite(13, LOW);  
  delay(1000);              
  digitalWrite(12, LOW);
  delay(1000);            
  digitalWrite(11, LOW);  
  delay(1000);              
}

--------------------------------------------------------------------------------------------------


Ke Halaman Utama

Selasa, 06 Januari 2015

Arduino dan saklar

link menuju latihan sesi 2
link menuju latihan saklar yang lain
link khusus latihan khusus
Sekarang Marilah kita berlatih Mikrokontroller Arduino dengan menggunakan saklar sebagai inputnya untuk menghidupkan led.
Alat yang di perlukan  :

- Arduino Uno
- Saklar digital 1 buah ( Tactile_switches )
- Led
- Resistor 1 kilo ohm  1 buah
- BreadBoard
- Kabel Jumper

Tactile_switches             Led                     Bredboard

Saklar digital dan resistor 1 Kilo Ohm kita rangkai menjadi rangkaian saklar.


Rangkaian Saklar Cara kerjanya adalah  :
*  Waktu belum di tekan Pin Digital Arduino akan menerima Logika low atau tegangan 0 Volt
*  Waktu Saklar di tekan Pin Digital Arduino akan menerima Logika high atau tegangan 5 Volt

Rangkai komponen elektronik di breadboard yang kemudian hubungkan dengan Arduino. Rangkaiannya seperti dibawah ini..

Rangkaian elektroniknya adalah seperti dibawah ini.



contoh dasar latihannya tersedia dalam ide nya coba saja
-----------------------------------------------------------------------------

/*
  Button

 Turns on and off a light emitting diode(LED) connected to digital
 pin 13, when pressing a pushbutton attached to pin 2.
 The circuit:
 * LED attached from pin 13 to ground
 * pushbutton attached to pin 2 from +5V
 * 10K resistor attached to pin 2 from ground

 * Note: on most Arduinos there is already an LED on the board
 attached to pin 13.
 created 2005
 by DojoDave <http://www.0j0.org>
 modified 30 Aug 2011
 by Tom Igoe
 This example code is in the public domain.
 http://www.arduino.cc/en/Tutorial/Button
 */

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

----------------------------------------------------------------------------------
 jika program ini dicoba dimasukan ke dalam mikrokontroller maka lampu led dapat dinyalakan oleh saklar dengan cara menekan tombol saklarnya, jika tombol dilepas maka lampunya juga akan mati..

wah repot yaaaa. jadi supaya led menyala terus maka kita harus terus menekan saklarnya.. hehehehe

latihan di atas cukup bagus untuk sebuah percobaan awal. ada sebuah pertanyaan ringan yaitu jika ingin lampu tetap menyala maka harus bagaimana...?.. jawabannya adalah :
1. Ditekan terus saklarnya
2. Programnya di modifikasi

Nah sekarang bagaimanakah caranya agar kita dapat merancang agar hasilnya saklar akan menyalakan led sekali tekan dan akan tetap hidup bila saklar kita lepas. dan jika kita tekan saklar sekali lagi



Nah coba lakukan percobaan berikutnya di bawah ini. rangkaian elektronikanya sama, hanya saja listing programnya berbeda.
listing programnya adalah seperti dibawah ini yaaaaa....
------------------------------------------------------------------------------------

 int d1,d2,d3;
void setup (){
  pinMode(2,INPUT); 
  pinMode(13,OUTPUT); 
}
void loop()  {
  d2=digitalRead(2);
  if (d2 != d1)  {
    if (d2==1)  {
      if (d3==1) d3 =0;
      else d3 = 1; }
     d1=d2; }
   digitalWrite(13,d3);
delay(99);
}

--------------------------------------------------------------------------------
Setetlah rekan rekan coba, maka akan mendapati hasil yang berbeda pada alat. led akan tetap hidup walaupun saklar tekan sudah tidak di tekan.



bila rekan rekan yang baru mempelajari mikrokontroller tentu akan bingung dengan listing program di atas. Jika rekan rekan ingin lebih faham maka baiklah akan kang mas coba menjelaskan listing program nya. untuk lebih memudahkan maka kang mas rubah dulu pemrogramannya agar lebih mudah di mengerti. nah sekarang coba perhatikan listing program di bawah ini. Program ini sama seperti program di atas. hasilnya juga sama

--------------------------------------------------------------------------------

int Kondisi1=0;
 int Kondisi2 =0;
 int KondisiLampu = 0;
 int Saklar=10;
 int Led=13;
void setup (){
  pinMode(Saklar,INPUT);
  pinMode(Led,OUTPUT);
}
void loop()  {
  Kondisi1=digitalRead(Saklar);
  if (Kondisi1 != Kondisi2)  {
    if (Kondisi1 == 1)  {
      if (KondisiLampu == 0) KondisiLampu = 1;
      else KondisiLampu = 0 ; }
     Kondisi2 = Kondisi1 ; }
   digitalWrite(Led,KondisiLampu);
delay(99);
}

--------------------------------------------------------------------------------
Program inti yang berjalan ada bagian loop
  Kondisi1=digitalRead(Saklar);  Pertama tama Program akan membaca kondisi saklar apakah ditekan ataukah tidak. nilai hasil pembacaan ini disimpan dalam variabel kondisi1
if (Kondisi1 != Kondisi2)  { Kedua nilai kondisi 1 dibandingkan dengan nilai kondisi2 bila nilainya sama maka tidak masuk ke baris program berikutnya sampai tanda }  (akhir dari  if (Kondisi1 != Kondisi2)  { yaitu  Kondisi2 = Kondisi1 ; } ) tetapi jika nilainya tidak sama maka program akan mengecek nilai dari kondisi satu.
if (Kondisi1 == 1)  {
      if (KondisiLampu == 0) KondisiLampu = 1;
      else KondisiLampu = 0 ; }
Jika kondisi satu berlogika 1 (saklar di tekan) maka program akan mengecek variabel Kondisilampu apakah bernilai satu atau bernilai 0, jika bernilai 0 maka akan di rubah menjadi bernilai 1 dan  jika bernilai 1 maka akan di rubah menjadi bernilai 0 ( jika lampunya hidup maka akan di matikan dan sebaliknya jika lampunya mati maka akan dihidupkan.
     Kondisi2 = Kondisi1 ; }
di sini nilai kondisi 2 akan di isi dengan nilai kondisi 1 jadi nilainya akan sama. hal ini untuk menghindari kacaunya program saat loop kembali ke atas. jika baris program ini tidak ada maka kerja alat akan kacau (led akan hidup mati dan hidup mati saat saklar di tekan) coba saja rekan rekan hilangkan dulu baris program ini dan amati bagaimana reaksinya. 
   digitalWrite(Led,KondisiLampu);
nah baris inilah yang akan menghidupkan atau mematikan led sesuai dengan nilai kondisi lampu pada baris program sebelumnya.


Kembali Ke halaman Awal
Bersambung ke sesi 2

Sabtu, 03 Januari 2015

Arduino dan sensor ultrasonik


Link menuju  Halaman 2

Pada kesempatan sekarang marilah kita berlatih menguunakan sensor ultrasonik yang digabungkan dengan Mikokontroller Arduino. Alat yang dibutuhkan adalah sebuah mikrokontroller Arduino dan sensor ultrasonik ping parallax. Sensor ultrasonik mempunyai 3 kaki yang harus dihubungkan dengan tegangan 5 Volt, Ground dan kaki Signal yang harus dihubungkan dengan digital pin Arduino contohnya seperti gambar di bawah ini




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

/* Ping))) Sensor

   This sketch reads a PING))) ultrasonic rangefinder and returns the
   distance to the closest object in range. To do this, it sends a pulse
   to the sensor to initiate a reading, then listens for a pulse
   to return.  The length of the returning pulse is proportional to
   the distance of the object from the sensor.

   The circuit:
* +V connection of the PING))) attached to +5V
* GND connection of the PING))) attached to ground
* SIG connection of the PING))) attached to digital pin 7

   http://www.arduino.cc/en/Tutorial/Ping

   created 3 Nov 2008
   by David A. Mellis
   modified 30 Aug 2011
   by Tom Igoe

   This example code is in the public domain.

 */

// this constant won't change.  It's the pin number
// of the sensor's output:
const int pingPin = 7;

void setup() {
  // initialize serial communication:
  Serial.begin(9600);
}

void loop()
{
  // establish variables for duration of the ping,
  // and the distance result in inches and centimeters:
  long duration, inches, cm;

  // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);

  // The same pin is used to read the signal from the PING))): a HIGH
  // pulse whose duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);

  // convert the time into a distance
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);

  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();

  delay(100);
}

long microsecondsToInches(long microseconds)
{
  // According to Parallax's datasheet for the PING))), there are
  // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
  // second).  This gives the distance travelled by the ping, outbound
  // and return, so we divide by 2 to get the distance of the obstacle.
  // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
  return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
  // The speed of sound is 340 m/s or 29 microseconds per centimeter.
  // The ping travels out and back, so to find the distance of the
  // object we take half of the distance travelled.
  return microseconds / 29 / 2;
}

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

Wah program di atas panjang banget yaaaa.. kayaknya susah nih memahaminya.. eiiit tenang dulu Booos. coba perhatikan lebih seksama. Panjang programnya juga kebanyakan komentar saja. intinya adalah mengukur jarak kemudian ditampilkan ke monitor hasilnya berupa sentimenter dan inchi. itu saja kooo.....
jika program di atas sudah diupload ke arduino dan di jalankan maka alat akan mengukur jarak dan di tampilkan di serial monitor contoh tampilannya adalah seperti gambar dibawah ini..




Nah sekarang marilah kita berlatih ke tahap selanjutnya yaaa. siapkan alatnay yaitu :
  • Mikrokontroller Arduino UNO
  • Sensor Ultrasonik Ping Parallax
  • LCD 16x2 Karakter




-----------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long  x;

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
pinMode(7,OUTPUT);
digitalWrite(7,LOW);
delayMicroseconds(2);
digitalWrite(7,HIGH);
delayMicroseconds(5);
digitalWrite(7,LOW);
pinMode(7,INPUT);
x=pulseIn(7,HIGH);
x=x/29/2;
lcd.clear();
  lcd.setCursor(0, 0); lcd.print(x);
  delay(400);
}

------------------------------------------------------------------------------


Jika program ini sudah diupload ke mikrokontroller dan dijalankan maka di layar lcd akan ada tampilan hasil pembacaan dari jarak yang terbaca oleh ultrasonik. hanya angka saja memang, angka tersebut satuannya centi meter. tidak keren tentunya.. coba perhatikan baris program di atas yang tulisannya berwarna  beda. gantilah tulisan tersebut dengan baris program dibawah ini


  lcd.clear();
  lcd.setCursor(0, 0); lcd.print("Hasil Pengukuran");
  lcd.setCursor(0, 1); lcd.print("Jarak :");lcd.print(x);
  lcd.setCursor(14, 1); lcd.print("Cm");

 
 coba rekan-rekan upload ke mikrokontroller dan perhatikanlah perbedaannya. lebih keren bukaaan.
Nah coba juga list Program di bawah ini

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long  x;
int xx = 7;
String baris1, baris2 ;

void setup() {
  lcd.begin(20, 4);
}
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;
baris1= "Hasil Pengukuran";
baris2= "Jarak ="+String(x)+ " Cm";
lcd.clear();
  lcd.setCursor(0, 0); lcd.print(baris1);
  lcd.setCursor(0, 1); lcd.print(baris2);
  delay(400);
}

Coba perhatikan dimana perbedaannya..

Jika latihan di atas adalah latihan untuk membuat alat ukur jarak benda dari sensor, Nah sekarang mari kita coba menggunakan alat ini untuk mengukur ketinggian air water turn. perhatikan gambar di bawah ini :


Gambar diatas adalah sebuah wadah air dengan ketinggian 30 Centi meter. alat sensor ultrasonik rencananya ditempatkan pada ketinggian 40 centi meter. maka program alat perlu kita modifikasi sedikit supaya dapat digunakan untuk mengukur ketinggian air

-------------------------------------------------------------------

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long  x;
int y=40;
int z;
void setup() {
  lcd.begin(16, 2);
}

void loop() {
pinMode(7,OUTPUT);
digitalWrite(7,LOW);
delayMicroseconds(2);
digitalWrite(7,HIGH);
delayMicroseconds(5);
digitalWrite(7,LOW);
pinMode(7,INPUT);
x = pulseIn(7,HIGH);
x = x/29/2;
z = y-x;
lcd.clear();
  lcd.setCursor(0, 0); lcd.print("Hasil Pengukuran");
  lcd.setCursor(0, 1); lcd.print("Jarak :");lcd.print(z);
  lcd.setCursor(14, 1); lcd.print("Cm");

  delay(400);
}

-----------------------------------------------------------------------------
Alat yang kita buat sekarang sudah dapat digunakan untuk mengukur ketinggian air. jika ketinggian air yang diukur berbeda maka yang harus dirubah adala baris program " int y=40; " misalnya ketinggian wadah airnya adalah 1meter dan alat akan diletakan pada ketinggian 1,2 Meter. maka ganti nilai y yang tadinya diisi dengan nilai 40 dengan nilai 120.

tahap selanjutnya yaaa. siapkan alatny yaitu :
  • Mikrokontroller Arduino UNO
  • Sensor Ultrasonik Ping Parallax
  • LCD 16x2 Karakter






Bersambung ke bagian 2.......

Ini adalah percobaan Kang mas yadi menggunakan arduino mega 260 dengan Sensor ping parllax. Kunjungi Juga Yaaaaa.....   Link Ke percobaan Lanjutan