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

Kamis, 25 Agustus 2016

Arduino Lampu Lilin

Hari yang cerah bukan...  Oooouuuh tidak.. Sedikit Mendung Rupanya.. tidak masalah sahabat.. Mendung di langit asal jangan mendung di hati kita, atau mendung di domnpet kita.. Smile My Friend....
Pada kesempatan kali ini marilah kita kembali berlatih Mikrokontroller Arduino. Kalli ini kita akan membuat led yang nyalanya redup kemudian terang dan dapet redup kembali.
Apa yang kita perlukan...?
Tolong siapkan yaaa..
*  Mikrokontroller Arduino
*  Led 1 Buah
*  Tactile Switch 2 Buah
*  Resistor 1 Kilo Ohm
*  BreadBoard
*  Kabel Secukupnya

 Rangkailah  Resistor dan saklar tekan atau Tactile Switch menjadi rangkaian saklar. Hubungkan dengan Kaki Arduino nomor 7 dan nomor 6. Hubungkan Led dengan kaki Mikrokontroller Arduino Nomor 5


Cobalah Sketsa program di bawah ini.
********************************************
int z;
void setup() {
pinMode (7,INPUT) ;
pinMode (6,INPUT) ;
}
void loop() {
    if (digitalRead (7) ==1) { z+=1; if( z >255) z=255; }
    if (digitalRead (6) ==1) { z-=1; if( z <0) z=0; }
    analogWrite (5,z);
    delay(10);
}
********************************************

Silahkan Upluad programnya kemudian coba tekan saklarnya. led akan mulai hidup dari redup ke terang dan satu saklar lagi akan meredupkan led sampai mati  alias tidak ada cahaya


Selasa, 23 Agustus 2016

Arduino Buzzer & Bluetooth


Sambungan dari latihan Buzzer sesi pertama

Setelah melakukan experiment dengan buzzer pada latihan pertama, sekarang marilah kita berpraktek dengan membuat rangkaian Buzzer yang dikendalikan melalui blutooth. Anggap saja kita sedang membuat Bel Pintu wireles yaaa..
 Yang kita perlukan dalam praktek kali ini adalah  :

*  Mikrokontroller Arduino Uno
*  Bluetooth HC 05 atau HC 06
*  Buzzer

Nah sekarang mari kita hubungkan Bluetooth Modul dan Buzzer dengan mikrokontroller Arduino. Buzzer dihubungkan dengan kaki 11 yaaa.. Untuk Bluetooth silahkan hubungkan kaki rx bluetooth dengan kaki tx di mikrokontroller dan kaki tx modul bluetooth dengan kaki rx di mikrokontroller.

Perancangan Software Android dengan MIT App Inventor
UNtuk perancangan softwer pengendali bluetooth kita akan merancang sofware yang akan di pasang pada Ponsel Android. Silahkan masuk ke Halaman Mit App Inventor.
Kita memerlukan
1 Button untuk Menghidupkan Buzzer Mode 1
1 Button untuk Mematikan  Buzzer Mode 1
1 Button untuk Menghidupkan Buzzer Mode 1
1 Button untuk Mematikan  Buzzer Mode 1
List Picker untuk Koneksi Bluetooth
Label untuk Memberi keterangan.
nah perhatikan  gambar di bawah. Buatlah program seperti di bawah ini..  oh iya mohon maap gambar di bawah ada kesalahan buto1 1 dan button 2 tertukar posisi button 1 harusnya yang off dan button 2 yang on







inti dari program yang kita buat ini adalah.
Tombol 1 jika di tekan akan mengirim angka 2 melalui bluetooth ke arduino dan akan di tangkap melalui modul bluetooth dan di teruskan ke mikrokontroller arduino.
 Tombol 2 jika di tekan akan mengirim angka 1
Tombol 3 jika di tekan akan mengirim angka 3
Tombol 4 jika di tekan akan mengirim angka 4
Jika program yang disusun di Mit App Inventor selesai maka segera download dan pindahkan ke ponsel android dan kemudian di install di ponsel android.


Nah Untuk rancangan program arduino nya sendiri seperti di bawah ini
-----------------------------------------------------------------------------
int menuBuzzer;
int nilai;
void setup() {
  pinMode (11,OUTPUT);
  Serial.begin(9600);
}

// the loop function runs over and over again forever
void loop() {
   if( Serial.available() >0 ) {
     nilai = Serial.read();
    if ( nilai ==1 ) menuBuzzer =1;
    if ( nilai ==2 ) menuBuzzer =3;
    if ( nilai ==3 ) menuBuzzer =2;
    if ( nilai ==4 ) menuBuzzer =3;
    delay (100);
}
  if (menuBuzzer == 1)
  {
  digitalWrite(11, HIGH);
  delay(90);          
  digitalWrite(11, LOW);
  delay(110);          
}
  if (menuBuzzer == 3 ){
  digitalWrite(11, LOW);  
  delay(100);        
  }
 if (menuBuzzer == 2 ){
  analogWrite(11, 99);  
  delay(100);        
  }

}

-----------------------------------------------------------------------------
inti  dari program Arduino di atas adalah alat akan membaca nilai yang dikirimkan oleh ponsel melalui Modul Bluetooth dan akan melakukan Aksi sebagai berikut
-  Bila menerima angka bernilai satu maka arduino akan membunyikan buzer putus putus dan akan terdengar tiit..tiiiit....dan bila menerima angka bernilai 3 maka akan

Senin, 22 Agustus 2016

Arduino & Buzzer

Sahabatku dihari yang cerah ini mari kita berlatih merangkai mikrokontroller Arduino yang di kolaborasikan dengan Buzzer dan saklar. yang kita perlukan dalam praktek pada kesempatan kali ini adalah  :

*   Mikrokontroller Arduino
*  Buzzer
*  Resistor 1 Kilo Ohm 2 Buah
*  Tactile Switch 2 Buah
Pada dasarnya membunyikan buzzer sama dengan menyalakan led. Pada saat digitalWrite bernilai HIGH maka buzzer akan berbunyi dan pada saat digitalWrite bernilai LOW maka buzzer tidak berbunyi. Nah untuk percobaan pertama rangkailah seperti di bawah ini


Coba Upload List program di bawah ini
-----------------------------------------------------------
void setup() {
   pinMode(11, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(11, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(11, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
-----------------------------------------------------------
Sketsa program di atas di ambil dari contoh program yang ada di ide Arduino, coba saja klik file. Examples. Basic. Blink. Nah akan muncul sketsa program blink led. Kita modifikasi kakinya menjadi kaki nomor 11. Inti dari program di atas akan menghasilkan bunyi buzzer ada dan tidak ada. Tiit...tiiit.. Tiiit.
Nah marilah kita lanjutkan prajteknya dengan buzzer yang dapat di hidupkan dan di matikan. Lihat gambar di bawah


Nah jika sudah merangkai seperti gambar di atas coba Upload List program di bawah ini
----------------------------------------------------------
boolean beker;
int a,b;
void setup() {
  pinMode(11, OUTPUT);
  pinMode(3, INPUT);
  pinMode(2, INPUT);
}

// the loop function runs over and over again forever
void loop() {
  a= digitalRead(2) ;
  b= digitalRead(3) ;
  if (a ==1) beker= true;
  if (b ==1) beker= false;
  if (beker == true)
  {
  digitalWrite(11, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(90);              // wait for a second
  digitalWrite(11, LOW);    // turn the LED off by making the voltage LOW
  delay(110);              // wait for a second
}
  if (beker == false){
  digitalWrite(11, LOW);    // turn the LED off by making the voltage LOW
  delay(150);              // wait for a second
  }}
-----------------------------------------------------------

Coba tekan saklar satu persatu dan tulis perbedaannya.
Yaaaaa.. Benar intinya adalah  :
Saklar 1 di tekan maka akan membunyikan buzzer
Saklar 2 di tekan maka akan mematikan buzzer.

Nah silahkan kembangkan program di atas bagaimana membuat Buzzer yang terus menyala, atau bagaimana jika delay nya diganti dengan nilai lebih besar atau lebih sedikit. Silahkan kembangkan sesuai dengan imajinasi sahabat.


Minggu, 21 Agustus 2016

Membuat Jam dengan Arduino & Modul RTC

Ayo kita berkreasi membuat jam dengan Mikrokontroller Arduino. dengan adanya Jam Arduino ini kita dapat melihat jam dan tanggal  berapa sekarang melalui Layar LCD mungil.
Dalam Praktek kali ini kita memerlukan bahan-bahan yaitu  :


*   Mikrokontroller Arduino



*   Layar LCD 16x2 Karakter

                                                          *   Modul RTC DS 1307
Modul RTC DS 1307 adalah modul elektronik yang bekerja menyediakan waktu. disinilah kita akan mendapatkan data jam dan tanggal.
Dan kita memerlukan bahan pelengkap yaitu :
*   Breadboard
*   Kabel Jumper 1 set
*   Kopi satu gelas
*   Cemilan secukupnya.

Nah coba perhatikan gambar di bawah ini

Gambar di atas adalah cara menghubungkan arduino dengan RTC dan LCD, untuk sementara lupakan gambar switc nya. itu hanya akan di pakai dalam praktek selanjutnya pada halaman yang lain. Dalam praktek kali ini ya sobat lcd tidak dihubungkan seperti di gambar tetapi menghubungkannya yaitu Seperti Konpigurasi di bawah ini yaaaaa
************************
 Modul LCD          Arduino
       D                         8
       D                         9
       D                        10
       D                         11
       E                         12
       RS                       13
************************
Nah untuk Modul  RTC dihubungkan dengan mikrokontroller Arduino seperti di bawah ini yaaa
*******************************************
Modul RTC          Arduino 2560           Arduino Uno
      SCL                    21                                 A5
      SDA                    20                                 A4
*******************************************


Bila sahabat belum mempunyai alatnya maka dapat membeli dahulu di toko Online. Saya sendiri membeli di Tokopedia. mikrokontrollernya beli yang kloningan karena murah meriah. yang penting dapat digunakan praktek.
Pada praktek pembuatan Jam ini intinya kita akan memprogram Mikrokontroller Arduino untuk mengakses data waktu di modul RTC dan kemudian akan di tampilkan di LCD mungil 16x2 Karakter.

Coba pelajari Sketsa program di bawah ini. perhatikan keterangannya dan Pelajari yaaa...

------------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(13,12, 11, 10, 9, 8);  // RS,E,D4,D5,D6,D7

#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int Jam ;
int Menit ;
int Hari ;
int Detik ;
int Tanggal;
int Bulan ;
int Tahun ;
String LcdBaris1;
String LcdBaris2;
int j1,j2,m1,m2,d1,d2;
void setup() {
    Wire.begin();
    lcd.begin(16,2);
}

void loop() {
// Pertama tama kita akses Modul RTC
  Wire.beginTransmission(DS1307_ADDRESS);
  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();
  Wire.requestFrom(DS1307_ADDRESS, 7);
// Waktu akan kita simpan di beberapa variabel... lihat deh di bawah
   Detik = bcdToDec(Wire.read());
   Menit = bcdToDec(Wire.read());
   Jam = bcdToDec(Wire.read() & 0b111111); //24 hour time
   Hari = bcdToDec(Wire.read()); //1-7 -> sunday - Saturday
   Tanggal = bcdToDec(Wire.read());
   Bulan = bcdToDec(Wire.read());
   Tahun = bcdToDec(Wire.read());
 //  Agar dapat mengetahui nama hari maka variabel hari yang berisi nilai 1 sampai 7
//  Kita rubah menjadi hari  1= senin  2 = selasa  dan seterusnya.. lihat di bawah yaaa...
  String NamaHari;
  if (Hari == 1) NamaHari ="Minggu" ;
  if (Hari == 2) NamaHari ="Senin" ;
  if (Hari == 3) NamaHari ="Selasa" ;
  if (Hari == 4) NamaHari ="Rabu" ;
  if (Hari == 5) NamaHari ="Kamis" ;
  if (Hari == 6) NamaHari ="Jum'at" ;
  if (Hari == 7 ) NamaHari ="Saptu" ;

//  Kemudian kita akan tampilkan data data waktu ke Modul LCD
//  Tentunya agar kita mudah melihat waktu  

  LcdBaris1 = NamaHari+ " "+ String (Tanggal) +"-"+ String (Bulan)+"-"+ String (Tahun) ;
  LcdBaris2 = "Jam : "+String (Jam)+":"+ String (Menit)+":"+String (Detik);
  lcd.clear() ;
  lcd.setCursor(0,0);   lcd.print(LcdBaris1);
  lcd.setCursor(0,1);   lcd.print(LcdBaris2); 

 delay (400);
}

byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
  return ( (val/10*16) + (val%10) );
}

------------------------------------------------------------------------
Program di atas akan menampilkan data waktu di layar lcd. yaa cukup menarik dan unik yaaa.. hanya saja kita tidak bisa membetulkan jamnya bila waktunya terjadi perbedaan atau kacau. wah repot yaa. untuk mengatur atau membetulkan nilai RTC yang kacau coba kunjungi halaman Blog di bawah ini. Klik link nya ya sobaaat..

Praktek merubah data waktu yang ada di modul RTC

Kamis, 18 Agustus 2016

Praktikum Arduino dan Led

Dalam kesempatan kali ini kita akan mencoba melakukan praktek Mikrokontroller Arduino dengan beberapa led. Yang kita perlukan dalam praktek kali ini adalah
*  Mikrokontroller Arduino
*  6 Buah Led
*  Kabel Jumper secukupnya
*  6 saklar / Tactile Switch
*  Kopi 1 gelas


Coba perhatikan gambar di atas. Rangkailah seperti di atas yaaa
Anoda led Hubungkan ke pin digital Arduino nomor 8,,9,10,11,12 dan 13
Katoda Led hubungkan dengan ground
Rangkaian saklar kita hubungkan dengan Mikrokontroller Arduino nomor 2,3 dan 4

Kita akan merancang 6 buah Led ini mempunyai 3 mode yaitu. :
Bila Saklar 1 di tekan maka led akan berkedip semua. Blingking led
Bila saklar 2 di tekan maka led akan menjadi led berjalan
Bila Saklar 3 di tekan maka led akan nyala terus semua

Nah pelajari liat program di bawah. Coba Upload ke mikrokontroler
----------------------------------------------------------------------------------

int saklar1, saklar2, saklar3 ;
int mode,a,b,c,z ;
void setup() {
pinMode ( 2,INPUT);
pinMode ( 3,INPUT);
pinMode ( 4,INPUT);
pinMode ( 8,OUTPUT);
pinMode ( 9,OUTPUT);
pinMode ( 10,OUTPUT);
pinMode ( 11,OUTPUT);
pinMode ( 12,OUTPUT);
pinMode ( 13,OUTPUT);
}

void loop() {
saklar1 = digitalRead (2) ;
saklar2 = digitalRead (3) ;
saklar3 = digitalRead (4) ;
if ( saklar1 == 1 ){
  for (int z=8; z<14; z++){
  digitalWrite(z,0); }
  mode=1;
  }
if ( saklar2 == 1 ){
  for (int z=8; z<14; z++){
  digitalWrite(z,0); }
  mode=2;
  }
if ( saklar3 == 1 ){
  for (int z=8; z<14; z++){
  digitalWrite(z,0); }
  mode=3;
  }

// Saklar 1 ditekan menjadi blingking led
if ( mode == 1) {
  a+=1;
  if (a<11) b=1;
  else b=0;
  if (a>21) a=1;
  for (int z=8; z<14; z++){
  digitalWrite(z,b);
  }  // Akhir dari if
  } //  Akhir dari if ( mode == 1)

// Saklar 2 ditekan menjadi led berjalan
if ( mode == 2) {
  a+=1;
  if (a<4) b=1;
  else b=0;
  if (a>6) { a=1; c+=1; }
  if ( c>13 ) c=8;
  digitalWrite(c,b);
   } //  Akhir dari if ( mode == 2)

// Saklar 3 ditekan semua led nyala
if ( mode == 3) {
  for (int z=8; z<14; z++){
  digitalWrite(z,1); }
  } //  Akhir dari if ( mode == 2)
  delay (100);
}

----------------------------------------------------------------------------------
Nah sekarang coba deh Sahabat berlatih dengan memindahkan kakinya dan jangan lupa di baris program juga di sesuaikan . Untuk menjadi mahir dalam memprogram Arduino kita memang harus banyak berlatih, Ayoooo   semangaaathhhh....


Link Menuju Halaman Pemandu

Minggu, 14 Agustus 2016

Jadwal Shalat Abadi dengan Arduino Uno

Sambungan Dari Praktek Sebelumnya
Link Untuk Kembali Ke Halaman Utama

Selamat Datang di blog yang sangat sederhana ini. Jika Rekan Rekan baru pertama kali mengunjungui blog ini dan inin mengetahui praktek sebelumnya maka dapat mengklik link di atas. Pada kesempatan kali ini kita akan merancang jam Shalat Abadi yang akan di tampilkan di Layar LCD 20x4 Karakter dan tentunya di olah dengan Mikrokontroller Arduino.
Yang kita perlukan dalam kesempatan kali ini adalah  :
*  Mikrokontroller Arduino.
*  Layar LCD 20x4 Karakter
* 3 Buah Rangkaian Switch.
* Modul RTC DS 1307.

----------------------------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  // RS,E,D4,D5,D6,D7

#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int ct1=1;
int t1,t2,t3,j,mn,d,tg,bl,th,hk,tg2;
String hari;
String b1,b2,b3,b4,baris1,baris2,baris4,baris3;
int k=1; int tm=1;
int j1,j2,m1,m2,d1,d2;
int ct2,ct3,ht;
boolean lt1= false;
boolean lt3= false;
boolean lt2= false;
boolean jshalat= true;
String bulan;

int Bulan,tgl,sh,is,dz,as,mg;
int menitisya1,menitisya2,menitshubuh1,menitshubuh2,menitzhuhur1,menitzhuhur2;
int menitashar1,menitashar2,menitmaghrib1,menitmaghrib2;
int menitisya,menitshubuh,menitzhuhur,menitashar,menitmaghrib;

int jamisya1,jamisya2,jamshubuh1,jamshubuh2,jamzhuhur1,jamzhuhur2;
int jamashar1,jamashar2,jammaghrib1,jammaghrib2;
int jamisya,jamshubuh,jamzhuhur,jamashar,jammaghrib;

String isya,shubuh,zhuhur, ashar, maghrib;

void setup() {
    Wire.begin();
    lcd.begin(20,4);
    pinMode (10,INPUT);
    pinMode (9,INPUT);
    pinMode (8,INPUT);
}

void loop() {
 delay(100);
  t1=digitalRead(10);
  t2=digitalRead(9) ;
  t3=digitalRead(8);

  if (k==1) {
  Wire.beginTransmission(DS1307_ADDRESS);
  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();
  Wire.requestFrom(DS1307_ADDRESS, 7);
   d = bcdToDec(Wire.read());
  mn = bcdToDec(Wire.read());
  j = bcdToDec(Wire.read() & 0b111111); //24 hour time
  hk = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  tg = bcdToDec(Wire.read());
  bl = bcdToDec(Wire.read());
  th = bcdToDec(Wire.read());
    j1= j/10; j2=j%10; m1=mn/10; m2=mn%10; d1=d/10; d2=d%10;
 if (t1 ==1 && lt1 == false) {
   ct1+=1; if (ct1>19) {k=2;tm=1;ct1=1; lt1= true ;} }
  else ct1=1;
  if (t3==1 && lt3== false ){k=3;tm=1; lt3= true; }
 if (t2==1 && lt2== false ){k=3;tm=2; lt3= true; }


   baris1= "Jam     = "+String (j1)+String (j2) +":"+ String (m1)+String (m2)+":"+String (d1)+String (d2) ;
if (jshalat==true){
  ct3 +=1; if (ct3 >26) {ct3=1; ht+=1; if (ht>4) ht=1;}
  if (ht==1) {baris2 = "* "+ hari+ " "+ String (tg) +"-"+ String (bl)+"-20"+ String (th)+" *" ;
               baris3 = "** Jadwal Shalat  **" ;
               baris4 = "* Daerah Karawang  *"; }
   if (ht==2) { baris2 = "** Jadwal Shalat  *" ;
                baris3 = "*  Isya    = " + isya+"  *" ;
                baris4 = "* Shubuh  = " + shubuh+" *"; }
   if (ht==3) { baris2 = "** Jadwal Shalat **" ;
                baris3 = "* Zhuhur  = "+ zhuhur+"  *" ;
                baris4 = "* Ashar   = "+ ashar+"  *" ;  }
   if (ht==4) { baris2 = "** Jadwal Shalat  **" ;
                baris3 ="* Maghrib = " + maghrib+"  *" ;
                baris4 = "* Isya    = " + isya +"  *"; }
 }
  else {
   baris1= "Jam    : "+String (j1)+String (j2) +":"+ String (m1)+String (m2)+":"+String (d1)+String (d2) ;
    baris3= "Tanggal: "+ String (tg) +" "+ bulan ;
    baris2= "Hari   : "+ hari;
    baris4= "Tahun  : 20"+ String (th);
 }}

if (k==2) {
if (tm==1){
  baris1 ="Memasuki Menu ";
   baris2 = "Pengaturan Alat ";
   baris3="Untuk Merubah Tanggal";
   baris4 ="& Jam Agar Sesuai";
   ct1 +=1;
   if (ct1 > 10) {ct1=0;  tm=2;   }
}
if (tm==2){
  baris1="Silahkan Memilih ";
  baris2 ="2. Rubah Waktu ";
   baris3 = "3. Keluar ";
   baris4="Tekan Tmbl 2 Atau 3" ;
  if (t2==1 ) {tm=3; }
 if (t3==1 ) {tm=1; k=1; }
  if (t1==0) lt1= false;
 }
if (tm==3){
  baris1 ="Memasuki Menu ";
   baris2 = "Merubah Data Jam ";
   baris3= "Rubah Jam & Menit";
   baris4="Kemudian Tanggal";
   ct1 +=1;
   if (ct1 > 10) {ct1=0;  tm=4;   }
}


if (tm==4){
  baris1  ="Jam : "+String(j) ;
  baris2 = "1 Pengaturan Menit";
  baris3="2 Untuk Tambah";
  baris4="3 Untuk Kurangi";
  if (t2==1 ) {j+=1; if(j>23) j=0;}
 if (t3==1 ) {j-=1; if(j<0) j=23;}
 if (t1==1 && lt1== false) { tm=5; lt1=true; }
 if (t1==0) lt1= false;
}
if (tm==5){
  baris1  ="Menit : "+String(mn) ;
  baris2 = "1 Pengaturan Tanggal";
  baris3="2 Untuk Tambah";
  baris4="3 Untuk Kurangi";
  if (t2==1 ) {mn+=1; if(mn>59) mn=0;}
 if (t3==1 ) {mn-=1; if(mn<0) mn=59;}
 if (t1==1 && lt1 == false) { tm=6; lt1=true; }
 if (t1==0) lt1= false;
}
if (tm==6){
  baris1 ="Memasuki Menu ";
  baris2 = "Pengaturan Tanggal";
  baris3="";
  baris4=" ";
   ct1 +=1;
   if (ct1 > 10) {ct1=0;  tm=7;   }
}
if (tm==7){
  baris1  ="Tanggal : "+ String(tg) ;
  baris2 = "1 Pengaturan Bulan";
  baris3="2 Untuk Tambah";
  baris4="3 Untuk Kurangi";
  if (t2==1 ) {tg+=1; if(tg>31) tg=1;}
 if (t3==1 ) {tg-=1; if(tg<1) tg=31;}
 if (t1==1 && lt1 == false) { tm=8; lt1=true; }
 if (t1==0) lt1= false;
}
 if (tm==8){
  baris1  = "Bulan : "+ String(bl) ;
  baris2 = "1 Pengaturan Tahun";
  baris3="2 Untuk Tambah";
  baris4="3 Untuk Kurangi";
  if (t2==1 ) {bl+=1; if(bl>12) bl=1;}
 if (t3==1 ) {bl-=1; if(bl<1) bl=12;}
 if (t1==1 && lt1 == false) { tm=9; lt1=true; }
 if (t1==0) lt1= false;
}
if (tm==9){
  baris1  = "Tahun : "+ String(th) ;
  baris2 = "1 Pengaturan Hari";
  baris3="2 Untuk Tambah";
  baris4="3 Untuk Kurangi";
  if (t2==1 ) {th+=1; if(th>99) th=1;}
 if (t3==1 ) {th-=1; if(th<1) th=99;}
 if (t1==1 && lt1 == false) { tm=10; lt1=true; }
 if (t1==0) lt1= false;
}

 if (tm==10){
  baris1  = "Hari : "+ String(hari) ;
  baris2 = "1.Menu Selanjutnya ";
  baris3="2 Untuk Tambah";
  baris4="3 Untuk Kurangi";
  if (t2==1 ) {hk +=1; if(hk>7 ) hk=0;}
 if (t3==1 ) {hk -=1; if(hk<1) hk=7;}
 if (t1==1 && lt1 == false) { tm=11; lt1=true; }
 if (t1==0) lt1= false;
}

if (tm== 11){
   baris1 ="Data dirubah...?";
   baris2= "Tekan 2 untuk Ya    ";
  baris3="Tekan 3. untuk Tidak";
  baris4="";
if (t1==0) lt1= false;
  if (t3==1 ){ tm=1;k=1;}
 if (t2==1 ) {tm=1;k=1;
   Wire.beginTransmission(DS1307_ADDRESS);
  Wire.write(zero); //stop Oscillator
  Wire.write(decToBcd(1));
  Wire.write(decToBcd(mn));
  Wire.write(decToBcd(j));
  Wire.write(decToBcd(hk));
  Wire.write(decToBcd(tg));
  Wire.write(decToBcd(bl));
  Wire.write(decToBcd(th));
  Wire.write(zero); //start
  Wire.endTransmission();
  delay (100);
 }}

 delay (155);
 } // END OF K2

// Cek tanggal RTC dan sesuaikan jadwal Shalat dengan tanggal
if (tg != tg2 ) { tg2=tg;
tgl=tg ; Bulan =bl;

if (Bulan ==1) {
if (tgl < 5 ) { sh = 418; dz = 1159; as =1525 ; mg = 1813 ; is = 1928 ;}
if (tgl >4 ){ sh = 420; dz = 1201; as =1527 ; mg = 1814 ; is = 1929 ;}
if (tgl>9 ){ sh = 423; dz = 1203; as =1528 ; mg = 1816 ; is = 1931 ;}
if (tgl >14 ){ sh = 426; dz = 1205; as =1529 ; mg = 1818 ; is = 1932 ;}
if (tgl >19 ){ sh = 420; dz = 1207; as =1530 ; mg = 1819 ; is = 1932 ;}
if (tgl > 24 ){ sh = 432; dz = 1208; as =1530 ; mg = 1820 ; is = 1932 ;}
if (tgl>27 ) { sh = 433; dz = 1209; as =1530 ; mg = 1820 ; is = 1933 ;}
if (tgl>30 ){ sh = 434; dz = 1209; as =1530 ; mg = 1820 ; is = 1933 ;}
}

if (Bulan ==2) {
if (tgl<5) { sh = 435; dz = 1209; as =1529 ; mg = 1820 ; is = 1932 ;}
if (tgl>4) { sh = 437; dz = 1210; as =1528 ; mg = 1820 ; is = 1931 ;}
if (tgl>9){ sh = 438; dz = 1210; as =1526 ; mg = 1820 ; is = 1930 ;}
if (tgl>14){ sh = 440; dz = 1210; as =1523 ; mg = 1819 ; is = 1929 ;}
if (tgl>19){ sh = 441; dz = 1210; as =1520 ; mg = 1817 ; is = 1927 ;}
if (tgl>24) { sh = 442; dz = 1209; as =1518 ; mg = 1816 ; is = 1925 ;}
if (tgl>27){ sh = 442; dz = 1208; as =1514 ; mg = 1815 ; is = 1924 ;}
}

if (Bulan ==3) {
if (tgl<5){ sh = 441; dz = 1208; as =1512 ; mg = 1814 ; is = 1923 ;}
if (tgl>4){ sh = 442; dz = 1207; as =1507 ; mg = 1813 ; is = 1921 ;}
if (tgl>9) { sh = 441; dz = 1206; as =1509 ; mg = 1811 ; is = 1919 ;}
if (tgl>14){ sh = 441; dz = 1204; as =1511 ; mg = 1808 ; is = 1916 ;}
if (tgl>19){ sh = 441; dz = 1203; as =1512 ; mg = 1806 ; is = 1914 ;}
if (tgl>24) { sh = 440; dz = 1201; as =1513 ; mg = 1804 ; is = 1912 ;}
if (tgl>30) { sh = 439; dz = 1159; as =1513 ; mg = 1801 ; is = 1909 ;}
}

if (Bulan ==4) {
if (tgl<5){ sh = 439; dz = 1159; as =1514 ; mg = 1800 ; is = 1908 ;}
if (tgl>4){ sh = 438; dz = 1158; as =1514 ; mg = 1759 ; is = 1907 ;}
if (tgl>9) { sh = 438; dz = 1157; as =1514 ; mg = 1756 ; is = 1905 ;}
if (tgl>14) { sh = 437; dz = 1155; as =1514 ; mg = 1754 ; is = 1903 ;}
if (tgl>19){ sh = 436; dz = 1154; as =1514 ; mg = 1753 ; is = 1902 ;}
if (tgl>24) { sh = 435; dz = 1151; as =1514 ; mg = 1751 ; is = 1900 ;}
if (tgl>30) { sh = 435; dz = 1153; as =1513 ; mg = 1750 ; is = 1900 ;}
}

if (Bulan ==5) {
if (tgl<5){ sh = 435; dz = 1153; as =1513 ; mg = 1749 ; is = 1859 ;}
if (tgl>4){ sh = 435; dz = 1152; as =1513 ; mg = 1748 ; is = 1859 ;}
if (tgl>9){ sh = 434; dz = 1152; as =1513 ; mg = 1748 ; is = 1858 ;}
if (tgl>14){ sh = 434; dz = 1152; as =1513 ; mg = 1747 ; is = 1859 ;}
if (tgl>19){ sh = 435; dz = 1152; as =1514 ; mg = 1747 ; is = 1859 ;}
if (tgl>24) { sh = 435; dz = 1153; as =1514 ; mg = 1747 ; is = 1859 ;}
if (tgl> 30) { sh = 436; dz = 1154; as =1516 ; mg = 1747 ; is = 1900 ;}
}
if (Bulan ==6) {
if (tgl<5){ sh = 436; dz = 1154; as =1515 ; mg = 1747 ; is = 1900 ;}
if (tgl>4) { sh = 436; dz = 1154; as =1516 ; mg = 1748 ; is = 1901 ;}
if (tgl>9){ sh = 436; dz = 1155; as =1517 ; mg = 1748 ; is = 1902 ;}
if (tgl>14){ sh = 438; dz = 1157; as =1518 ; mg = 1749 ; is = 1903 ;}
if (tgl>9){ sh = 439; dz = 1158; as =1519 ; mg = 1750 ; is = 1904 ;}
if (tgl>24) { sh = 441; dz = 1159; as =1520 ; mg = 1751 ; is = 1905 ;}
if (tgl>30) { sh = 442; dz = 1200; as =1521 ; mg = 1752 ; is = 1906 ;}
}

if (Bulan ==7) {
if (tgl<5 ) { sh = 442; dz = 1200; as =1521 ; mg = 1753 ; is = 1906 ;}
if (tgl>4 ){ sh = 443; dz = 1201; as =1522 ; mg = 1754 ; is = 1907 ;}
if (tgl>9){ sh = 444; dz = 1201; as =1523 ; mg = 1754 ; is = 1908 ;}
if (tgl>14) { sh = 444; dz = 1102; as =1523 ; mg = 1755 ; is = 1908 ;}
if (tgl>19){ sh = 444; dz = 1202; as =1524 ; mg = 1756 ; is = 1908 ;}
if (tgl>24) { sh = 444; dz = 1202; as =1524 ; mg = 1757 ; is = 1909 ;}
if (tgl>27){ sh = 444; dz = 1202; as =1524 ; mg = 1757 ; is = 1908 ;}
}

if (Bulan ==8) {
if (tgl<5){ sh = 444; dz = 1202; as =1523 ; mg = 1753 ; is = 1906 ;}
if (tgl>4){ sh = 444; dz = 1202; as =1523 ; mg = 1754 ; is = 1907 ;}
if (tgl>9){ sh = 443; dz = 1201; as =1522 ; mg = 1754 ; is = 1908 ;}
if (tgl>14){ sh = 442; dz = 1200; as =1520 ; mg = 1755 ; is = 1908 ;}
if (tgl>19){ sh = 441; dz = 1159; as =1519 ; mg = 1756 ; is = 1908 ;}
if (tgl>24) { sh = 439; dz = 1157; as =1517 ; mg = 1757 ; is = 1909 ;}
if (tgl>27){ sh = 437; dz = 1156; as =1515 ; mg = 1757 ; is = 1908 ;}
}

if (Bulan ==9) {
if (tgl<5) { sh = 436; dz = 1155; as =1513 ; mg = 1755 ; is = 1903 ;}
if (tgl>4){ sh = 435; dz = 1154; as =1511 ; mg = 1754 ; is = 1902 ;}
if (tgl>9){ sh = 432; dz = 1152; as =1507 ; mg = 1753 ; is = 1901 ;}
if (tgl>14){ sh = 430; dz = 1150; as =1504 ; mg = 1752 ; is = 1900 ;}
if (tgl>19){ sh = 427; dz = 1149; as =1500 ; mg = 1751 ; is = 1859 ;}
if (tgl>24) { sh = 425; dz = 1147; as =1456 ; mg = 1750 ; is = 1858 ;}
if (tgl>27) { sh = 422; dz = 1145; as =1503 ; mg = 1749 ; is = 1857 ;}
}


if (Bulan ==10) {
if (tgl<5){ sh = 421; dz = 1145; as =1451 ; mg = 1749 ; is = 1857 ;}
if (tgl>4){ sh = 419; dz = 1144; as =1447 ; mg = 1749 ; is = 1857 ;}
if (tgl>9){ sh = 419; dz = 1144; as =1445 ; mg = 1750 ; is = 1857 ;}
if (tgl>14) { sh = 414; dz = 1141; as =1446 ; mg = 1758 ; is = 1857 ;}
if (tgl>19){ sh = 412; dz = 1140; as =1449 ; mg = 1758 ; is = 1857 ;}
if (tgl>24) { sh = 410; dz = 1140; as =1451 ; mg = 1758 ; is = 1857 ;}
if (tgl>27){ sh = 409; dz = 1139; as =1453 ; mg = 1748 ; is = 1858 ;}
if (tgl>30){ sh = 409; dz = 1139; as =1453 ; mg = 1748 ; is = 1858 ;}
}


if (Bulan ==11) {
if (tgl<5) { sh = 408; dz = 1139; as =1455 ; mg = 1749 ; is = 1859 ;}
if (tgl>4) { sh = 407; dz = 1139; as =1456 ; mg = 1749 ; is = 1900 ;}
if (tgl>9){ sh = 406; dz = 1140; as =1459 ; mg = 1750 ; is = 1902 ;}
if (tgl>14){ sh = 405; dz = 1141; as =1501 ; mg = 1758 ; is = 1904 ;}
if (tgl>19){ sh = 405; dz = 1142; as =1504 ; mg = 1758 ; is = 1907 ;}
if (tgl>24){ sh = 405; dz = 1143; as =1507 ; mg = 1756 ; is = 1909 ;}
if (tgl>30){ sh = 406; dz = 1145; as =1509 ; mg = 1758 ; is = 1912 ;}
}

if (Bulan ==12) {
if (tgl<5){ sh = 406; dz = 1145; as =1510 ; mg = 1759 ; is = 1813 ;}
if (tgl>4){ sh = 407; dz = 1147; as =1512 ; mg = 1800 ; is = 1915 ;}
if (tgl>9){ sh = 409; dz = 1149; as =1515 ; mg = 1803 ; is = 1918 ;}
if (tgl>14) { sh = 411; dz = 1152; as =1518 ; mg = 1806 ; is = 1921 ;}
if (tgl>19){ sh = 413; dz = 1154; as =1521 ; mg = 1808 ; is = 1923 ;}
if (tgl>24){ sh = 415; dz = 1156; as =1523 ; mg = 1811 ; is = 1926 ;}
if (tgl>30){ sh = 418; dz = 1159; as =1525 ; mg = 1813 ; is = 1928 ;}
}

jamshubuh=sh/100; jamshubuh1=jamshubuh/10; jamshubuh2=jamshubuh%10 ;
menitshubuh =sh%100;menitshubuh1 =menitshubuh /10; menitshubuh2 =menitshubuh %10;
shubuh =  String(jamshubuh1) + String(jamshubuh2) +":" + String(menitshubuh1) + String(menitshubuh2);

jamzhuhur =dz/100; jamzhuhur1= jamzhuhur/10; jamzhuhur2=jamzhuhur%10 ;
menitzhuhur =dz%100; menitzhuhur1 =menitzhuhur /10; menitzhuhur2 =menitzhuhur %10;
zhuhur = String(jamzhuhur1) + String(jamzhuhur2) +":" + String(menitzhuhur1) + String(menitzhuhur2);

jamashar =as /100; jamashar1= jamashar/10; jamashar2=jamashar%10 ;
menitashar =as %100; menitashar1 =menitashar /10; menitashar2 =menitashar %10;
ashar = String(jamashar1) + String(jamashar2) +":" + String(menitashar1) + String(menitashar2);

jammaghrib =mg /100; jammaghrib1= jammaghrib/10; jammaghrib2=jammaghrib%10 ;
menitmaghrib =mg %100; menitmaghrib1 =menitmaghrib /10; menitmaghrib2 =menitmaghrib %10;
maghrib = String(jammaghrib1) + String(jammaghrib2) +":" + String(menitmaghrib1) + String(menitmaghrib2);

jamisya =is /100; jamisya1= jamisya/10; jamisya2=jamisya%10 ;
menitisya =is %100; menitisya1 =menitisya /10; menitisya2 =menitisya %10;
isya = String(jamisya1) + String(jamisya2) +":" + String(menitisya1) + String(menitisya2);

}

if (k==3) {
  if (tm==1){
    if (t3==0) lt3=false;
    baris1="********************";
    baris2 ="*  Rubah Tampilan  *";
   baris3 = "* Jam & Waktu Shalat";
    baris4 = "********************";
    ct1 +=1;
   if (ct1 > 10 && lt3 == false) {ct1=0;  tm=1;k=1; jshalat=true; }   }
  if (tm==2){
    if (t3==0) lt3=false;
     baris1 ="********************";
     baris2 ="*  Rubah Tampilan  *";
     baris3 ="*  Jam & Tanggal   *";
     baris4 ="********************";
    ct1 +=1;
   if (ct1 > 10 && lt3 == false) {ct1=0;  tm=1; k=1; jshalat=false; }   } }


  if(b1!= baris1 || b2!=baris2 || b3 !=baris3 || b4!=baris4) {
  b1= baris1 ; b2=baris2 ;b3= baris3 ; b4=baris4 ;
    lcd.clear() ;
  lcd.setCursor(0,0);  lcd.print(b1);
  lcd.setCursor(0,1);  lcd.print(b2);
   lcd.setCursor(0,2);  lcd.print(b3);
  lcd.setCursor(0,3);  lcd.print(b4);
 }


  if (hk==1) hari="Minggu" ;
  if (hk==2) hari="Senin" ;
  if (hk==3) hari="Selasa" ;
  if (hk==4) hari="Rabu" ;
  if (hk==5) hari="Kamis" ;
  if (hk==6) hari="Jum'at" ;
  if (hk==7) hari="Sabtu" ;
  if (bl==1) bulan="Januari";
  if (bl==2) bulan="Februari";
  if (bl==3) bulan= "Maret";
  if (bl==4) bulan= "April";
  if (bl==5) bulan= "Mei";
  if (bl==6) bulan= "Juni";
  if (bl==7) bulan= "Juli";
  if (bl==8) bulan="Agustus";
  if (bl==9) bulan= "September";
  if (bl==10) bulan= "Oktober";
  if (bl==11) bulan= "Nopember";
  if (bl==11) bulan="Desember";
 // end loop

}
byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
  return ( (val/10*16) + (val%10) );
}

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

Link Untuk Kembali Ke Halaman Utama

Jumat, 12 Agustus 2016

Jam Sahalat abadi dengan Arduino + Alarm 2

Sambungan dari Halaman Sebelumnya
Link Untuk Kembali Ke Halaman Utama



belum selesai masih eror
List Program
---------------------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  // RS,E,D4,D5,D6,D7

#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int ct1=1;
int ta=9 ; int tb=8; int tc=7;
int t1,t2,t3,j,mn,d,tg,bl,th,hk,tg2;
String hari;
String b1,b2,baris1,baris2;
int k=1; int tm=1;
int j1,j2,m1,m2,d1,d2;
int ct2,ct3,ht;
boolean lt1= false;
boolean lt3= false;
boolean lt2= false;
boolean jshalat= true;
boolean statusalarm=false;
int alarm=2359; // jam 23.59  WIB
boolean alarmShalat= true;
boolean buzzer= false;

int Bulan,tgl,sh,is,dz,as,mg;
int menitisya1,menitisya2,menitshubuh1,menitshubuh2,menitzhuhur1,menitzhuhur2;
int menitashar1,menitashar2,menitmaghrib1,menitmaghrib2;
int menitisya,menitshubuh,menitzhuhur,menitashar,menitmaghrib;

int jamisya1,jamisya2,jamshubuh1,jamshubuh2,jamzhuhur1,jamzhuhur2;
int jamashar1,jamashar2,jammaghrib1,jammaghrib2;
int jamisya,jamshubuh,jamzhuhur,jamashar,jammaghrib;

String isya,shubuh,zhuhur, ashar, maghrib;

void setup() {
    Wire.begin();
    lcd.begin(16,2);
  pinMode(ta,INPUT); pinMode(tb,INPUT);pinMode(tc,INPUT);
}

void loop() {
 delay(100);
  t1= digitalRead(ta);
  t2= digitalRead(tb);
  t3= digitalRead(tc);

  if (k==1) {
  Wire.beginTransmission(DS1307_ADDRESS);
  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();
  Wire.requestFrom(DS1307_ADDRESS, 7);
   d = bcdToDec(Wire.read());
  mn = bcdToDec(Wire.read());
  j = bcdToDec(Wire.read() & 0b111111); //24 hour time
  hk = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  tg = bcdToDec(Wire.read());
  bl = bcdToDec(Wire.read());
  th = bcdToDec(Wire.read());
    j1= j/10; j2=j%10; m1=mn/10; m2=mn%10; d1=d/10; d2=d%10;
 if (t1 ==1 && lt1 == false) {
   ct1+=1; if (ct1>19) {k=2;tm=1;ct1=1; lt1= true ;} }
  else { ct1=1; lt1=false; }
  if (t3==1 && lt3== false ){k=3;tm=1; lt3= true; }
 if (t2==1 && lt2== false ){k=3;tm=2; lt2= true; }


   baris1= "Jam : "+String (j1)+String (j2) +":"+ String (m1)+String (m2)+":"+String (d1)+String (d2) ;
if (jshalat==true){
  ct3 +=1; if (ct3 >22) {ct3=1; ht+=1; if (ht>8) ht=1;}
  if (ht==1)   baris2 = hari+ " "+ String (tg) +"-"+ String (bl)+"-20"+ String (th) ;
   if (ht==2)   baris2 = "Jadwal Shalat" ;
   if (ht==3)   baris2 = "Isya :" + isya;
   if (ht==4)   baris2 = "Shubuh :" + shubuh; ;
   if (ht==5)   baris2 = "Zhuhur :"+ zhuhur ;
   if (ht==6)   baris2 = "Ashar :"+ ashar ;
   if (ht==7)   baris2 ="Maghrib :" + maghrib ;
   if (ht==8)   baris2 = "Terima Kasih" ; }
  else baris2= hari+ " "+ String (tg) +"-"+ String (bl)+"-20"+ String (th) ;
 }

if (k==2) {
if (tm==1){
  baris1 ="Memasuki Menu ";
   baris2 = "Pengaturan Alat ";
   ct1 +=1;
   if (ct1 > 10) {ct1=0;  tm=2;   }
}
if (tm==2){
  baris1 ="2. Rubah Waktu ";
   baris2 = "1.Alarm 3.Exit ";
  if (t2==1 ) {tm=3; }
 if (t3==1 ) {tm=1; k=1; }
  if (t1==0) lt1= false;
  if (t1==1 && lt1==false){ lt1= true; tm=1; k=4;}
 }
if (tm==3){
  baris1 ="Memasuki Menu ";
   baris2 = "Merubah Data Jam ";
   ct1 +=1;
   if (ct1 > 10) {ct1=0;  tm=4;   }
}


if (tm==4){
  baris1  ="Jam : "+String(j) ;
  baris2 ="1.Next 2&3 Atur";
  if (t2==1 ) {j+=1; if(j>23) j=0;}
 if (t3==1 ) {j-=1; if(j<0) j=23;}
 if (t1==1 && lt1== false) { tm=5; lt1=true; }
 if (t1==0) lt1= false;
}
if (tm==5){
  baris1  ="Menit : "+String(mn) ;
  baris2 ="1.Next 2&3 Atur";
  if (t2==1 ) {mn+=1; if(mn>59) mn=0;}
 if (t3==1 ) {mn-=1; if(mn<0) mn=59;}
 if (t1==1 && lt1 == false) { tm=6; lt1=true; }
 if (t1==0) lt1= false;
}
if (tm==6){
  baris1 ="Memasuki Menu ";
   baris2 = "Merubah Tanggal";
   ct1 +=1;
   if (ct1 > 10) {ct1=0;  tm=7;   }
}
if (tm==7){
  baris1  ="Tanggal : "+ String(tg) ;
  baris2 ="1.Next 2&3 Atur";
  if (t2==1 ) {tg+=1; if(tg>31) tg=1;}
 if (t3==1 ) {tg-=1; if(tg<1) tg=31;}
 if (t1==1 && lt1 == false) { tm=8; lt1=true; }
 if (t1==0) lt1= false;
}
 if (tm==8){
  baris1  = "Bulan : "+ String(bl) ;
  baris2 = "1.Next 2&3 Atur";
  if (t2==1 ) {bl+=1; if(bl>12) bl=1;}
 if (t3==1 ) {bl-=1; if(bl<1) bl=12;}
 if (t1==1 && lt1 == false) { tm=9; lt1=true; }
 if (t1==0) lt1= false;
}
if (tm==9){
  baris1  = "Tahun : "+ String(th) ;
  baris2 = "1.Next 2&3 Atur";
  if (t2==1 ) {th+=1; if(th>99) th=1;}
 if (t3==1 ) {th-=1; if(th<1) th=99;}
 if (t1==1 && lt1 == false) { tm=10; lt1=true; }
 if (t1==0) lt1= false;
}

 if (tm==10){
  baris1  = "Hari : "+ String(hari) ;
  baris2 = "1.Next 2&3 Atur";
  if (t2==1 ) {hk +=1; if(hk>6 ) hk=1;}
 if (t3==1 ) {hk -=1; if(hk<1) hk=6;}
 if (t1==1 && lt1 == false) { tm=11; lt1=true; }
 if (t1==0) lt1= false;
}

if (tm== 11){
   baris1 ="Data dirubah...?";
   baris2= "2. Ya   3. Tidak ";
if (t1==0) lt1= false;
  if (t3==1 ){ tm=1;k=1;}
 if (t2==1 ) {tm=1;k=1;
   Wire.beginTransmission(DS1307_ADDRESS);
  Wire.write(zero); //stop Oscillator
  Wire.write(decToBcd(1));
  Wire.write(decToBcd(mn));
  Wire.write(decToBcd(j));
  Wire.write(decToBcd(hk));
  Wire.write(decToBcd(tg));
  Wire.write(decToBcd(bl));
  Wire.write(decToBcd(th));
  Wire.write(zero); //start
  Wire.endTransmission();
  delay (100);
 }}

 delay (155);
 } // END OF K2

// Cek tanggal RTC dan sesuaikan jadwal Shalat dengan tanggal
if (tg != tg2 ) { tg2=tg;
tgl=tg ; Bulan =bl;

if (Bulan ==1) {
if (tgl < 5 ) { sh = 418; dz = 1159; as =1525 ; mg = 1813 ; is = 1928 ;}
if (tgl >4 ){ sh = 420; dz = 1201; as =1527 ; mg = 1814 ; is = 1929 ;}
if (tgl>9 ){ sh = 423; dz = 1203; as =1528 ; mg = 1816 ; is = 1931 ;}
if (tgl >14 ){ sh = 426; dz = 1205; as =1529 ; mg = 1818 ; is = 1932 ;}
if (tgl >19 ){ sh = 420; dz = 1207; as =1530 ; mg = 1819 ; is = 1932 ;}
if (tgl > 24 ){ sh = 432; dz = 1208; as =1530 ; mg = 1820 ; is = 1932 ;}
if (tgl>27 ) { sh = 433; dz = 1209; as =1530 ; mg = 1820 ; is = 1933 ;}
if (tgl>30 ){ sh = 434; dz = 1209; as =1530 ; mg = 1820 ; is = 1933 ;}
}

if (Bulan ==2) {
if (tgl<5) { sh = 435; dz = 1209; as =1529 ; mg = 1820 ; is = 1932 ;}
if (tgl>4) { sh = 437; dz = 1210; as =1528 ; mg = 1820 ; is = 1931 ;}
if (tgl>9){ sh = 438; dz = 1210; as =1526 ; mg = 1820 ; is = 1930 ;}
if (tgl>14){ sh = 440; dz = 1210; as =1523 ; mg = 1819 ; is = 1929 ;}
if (tgl>19){ sh = 441; dz = 1210; as =1520 ; mg = 1817 ; is = 1927 ;}
if (tgl>24) { sh = 442; dz = 1209; as =1518 ; mg = 1816 ; is = 1925 ;}
if (tgl>27){ sh = 442; dz = 1208; as =1514 ; mg = 1815 ; is = 1924 ;}
}

if (Bulan ==3) {
if (tgl<5){ sh = 441; dz = 1208; as =1512 ; mg = 1814 ; is = 1923 ;}
if (tgl>4){ sh = 442; dz = 1207; as =1507 ; mg = 1813 ; is = 1921 ;}
if (tgl>9) { sh = 441; dz = 1206; as =1509 ; mg = 1811 ; is = 1919 ;}
if (tgl>14){ sh = 441; dz = 1204; as =1511 ; mg = 1808 ; is = 1916 ;}
if (tgl>19){ sh = 441; dz = 1203; as =1512 ; mg = 1806 ; is = 1914 ;}
if (tgl>24) { sh = 440; dz = 1201; as =1513 ; mg = 1804 ; is = 1912 ;}
if (tgl>30) { sh = 439; dz = 1159; as =1513 ; mg = 1801 ; is = 1909 ;}
}

if (Bulan ==4) {
if (tgl<5){ sh = 439; dz = 1159; as =1514 ; mg = 1800 ; is = 1908 ;}
if (tgl>4){ sh = 438; dz = 1158; as =1514 ; mg = 1759 ; is = 1907 ;}
if (tgl>9) { sh = 438; dz = 1157; as =1514 ; mg = 1756 ; is = 1905 ;}
if (tgl>14) { sh = 437; dz = 1155; as =1514 ; mg = 1754 ; is = 1903 ;}
if (tgl>19){ sh = 436; dz = 1154; as =1514 ; mg = 1753 ; is = 1902 ;}
if (tgl>24) { sh = 435; dz = 1151; as =1514 ; mg = 1751 ; is = 1900 ;}
if (tgl>30) { sh = 435; dz = 1153; as =1513 ; mg = 1750 ; is = 1900 ;}
}

if (Bulan ==5) {
if (tgl<5){ sh = 435; dz = 1153; as =1513 ; mg = 1749 ; is = 1859 ;}
if (tgl>4){ sh = 435; dz = 1152; as =1513 ; mg = 1748 ; is = 1859 ;}
if (tgl>9){ sh = 434; dz = 1152; as =1513 ; mg = 1748 ; is = 1858 ;}
if (tgl>14){ sh = 434; dz = 1152; as =1513 ; mg = 1747 ; is = 1859 ;}
if (tgl>19){ sh = 435; dz = 1152; as =1514 ; mg = 1747 ; is = 1859 ;}
if (tgl>24) { sh = 435; dz = 1153; as =1514 ; mg = 1747 ; is = 1859 ;}
if (tgl> 30) { sh = 436; dz = 1154; as =1516 ; mg = 1747 ; is = 1900 ;}
}
if (Bulan ==6) {
if (tgl<5){ sh = 436; dz = 1154; as =1515 ; mg = 1747 ; is = 1900 ;}
if (tgl>4) { sh = 436; dz = 1154; as =1516 ; mg = 1748 ; is = 1901 ;}
if (tgl>9){ sh = 436; dz = 1155; as =1517 ; mg = 1748 ; is = 1902 ;}
if (tgl>14){ sh = 438; dz = 1157; as =1518 ; mg = 1749 ; is = 1903 ;}
if (tgl>9){ sh = 439; dz = 1158; as =1519 ; mg = 1750 ; is = 1904 ;}
if (tgl>24) { sh = 441; dz = 1159; as =1520 ; mg = 1751 ; is = 1905 ;}
if (tgl>30) { sh = 442; dz = 1200; as =1521 ; mg = 1752 ; is = 1906 ;}
}

if (Bulan ==7) {
if (tgl<5 ) { sh = 442; dz = 1200; as =1521 ; mg = 1753 ; is = 1906 ;}
if (tgl>4 ){ sh = 443; dz = 1201; as =1522 ; mg = 1754 ; is = 1907 ;}
if (tgl>9){ sh = 444; dz = 1201; as =1523 ; mg = 1754 ; is = 1908 ;}
if (tgl>14) { sh = 444; dz = 1102; as =1523 ; mg = 1755 ; is = 1908 ;}
if (tgl>19){ sh = 444; dz = 1202; as =1524 ; mg = 1756 ; is = 1908 ;}
if (tgl>24) { sh = 444; dz = 1202; as =1524 ; mg = 1757 ; is = 1909 ;}
if (tgl>27){ sh = 444; dz = 1202; as =1524 ; mg = 1757 ; is = 1908 ;}
}

if (Bulan ==8) {
if (tgl<5){ sh = 444; dz = 1202; as =1523 ; mg = 1753 ; is = 1906 ;}
if (tgl>4){ sh = 444; dz = 1202; as =1523 ; mg = 1754 ; is = 1907 ;}
if (tgl>9){ sh = 443; dz = 1201; as =1522 ; mg = 1754 ; is = 1908 ;}
if (tgl>14){ sh = 442; dz = 1200; as =1520 ; mg = 1755 ; is = 1908 ;}
if (tgl>19){ sh = 441; dz = 1159; as =1519 ; mg = 1756 ; is = 1908 ;}
if (tgl>24) { sh = 439; dz = 1157; as =1517 ; mg = 1757 ; is = 1909 ;}
if (tgl>27){ sh = 437; dz = 1156; as =1515 ; mg = 1757 ; is = 1908 ;}
}

if (Bulan ==9) {
if (tgl<5) { sh = 436; dz = 1155; as =1513 ; mg = 1755 ; is = 1903 ;}
if (tgl>4){ sh = 435; dz = 1154; as =1511 ; mg = 1754 ; is = 1902 ;}
if (tgl>9){ sh = 432; dz = 1152; as =1507 ; mg = 1753 ; is = 1901 ;}
if (tgl>14){ sh = 430; dz = 1150; as =1504 ; mg = 1752 ; is = 1900 ;}
if (tgl>19){ sh = 427; dz = 1149; as =1500 ; mg = 1751 ; is = 1859 ;}
if (tgl>24) { sh = 425; dz = 1147; as =1456 ; mg = 1750 ; is = 1858 ;}
if (tgl>27) { sh = 422; dz = 1145; as =1503 ; mg = 1749 ; is = 1857 ;}
}


if (Bulan ==10) {
if (tgl<5){ sh = 421; dz = 1145; as =1451 ; mg = 1749 ; is = 1857 ;}
if (tgl>4){ sh = 419; dz = 1144; as =1447 ; mg = 1749 ; is = 1857 ;}
if (tgl>9){ sh = 419; dz = 1144; as =1445 ; mg = 1750 ; is = 1857 ;}
if (tgl>14) { sh = 414; dz = 1141; as =1446 ; mg = 1758 ; is = 1857 ;}
if (tgl>19){ sh = 412; dz = 1140; as =1449 ; mg = 1758 ; is = 1857 ;}
if (tgl>24) { sh = 410; dz = 1140; as =1451 ; mg = 1758 ; is = 1857 ;}
if (tgl>27){ sh = 409; dz = 1139; as =1453 ; mg = 1748 ; is = 1858 ;}
if (tgl>30){ sh = 409; dz = 1139; as =1453 ; mg = 1748 ; is = 1858 ;}
}


if (Bulan ==11) {
if (tgl<5) { sh = 408; dz = 1139; as =1455 ; mg = 1749 ; is = 1859 ;}
if (tgl>4) { sh = 407; dz = 1139; as =1456 ; mg = 1749 ; is = 1900 ;}
if (tgl>9){ sh = 406; dz = 1140; as =1459 ; mg = 1750 ; is = 1902 ;}
if (tgl>14){ sh = 405; dz = 1141; as =1501 ; mg = 1758 ; is = 1904 ;}
if (tgl>19){ sh = 405; dz = 1142; as =1504 ; mg = 1758 ; is = 1907 ;}
if (tgl>24){ sh = 405; dz = 1143; as =1507 ; mg = 1756 ; is = 1909 ;}
if (tgl>30){ sh = 406; dz = 1145; as =1509 ; mg = 1758 ; is = 1912 ;}
}

if (Bulan ==12) {
if (tgl<5){ sh = 406; dz = 1145; as =1510 ; mg = 1759 ; is = 1813 ;}
if (tgl>4){ sh = 407; dz = 1147; as =1512 ; mg = 1800 ; is = 1915 ;}
if (tgl>9){ sh = 409; dz = 1149; as =1515 ; mg = 1803 ; is = 1918 ;}
if (tgl>14) { sh = 411; dz = 1152; as =1518 ; mg = 1806 ; is = 1921 ;}
if (tgl>19){ sh = 413; dz = 1154; as =1521 ; mg = 1808 ; is = 1923 ;}
if (tgl>24){ sh = 415; dz = 1156; as =1523 ; mg = 1811 ; is = 1926 ;}
if (tgl>30){ sh = 418; dz = 1159; as =1525 ; mg = 1813 ; is = 1928 ;}
}

jamshubuh=sh/100; jamshubuh1=jamshubuh/10; jamshubuh2=jamshubuh%10 ;
menitshubuh =sh%100;menitshubuh1 =menitshubuh /10; menitshubuh2 =menitshubuh %10;
shubuh =  String(jamshubuh1) + String(jamshubuh2) +":" + String(menitshubuh1) + String(menitshubuh2);

jamzhuhur =dz/100; jamzhuhur1= jamzhuhur/10; jamzhuhur2=jamzhuhur%10 ;
menitzhuhur =dz%100; menitzhuhur1 =menitzhuhur /10; menitzhuhur2 =menitzhuhur %10;
zhuhur = String(jamzhuhur1) + String(jamzhuhur2) +":" + String(menitzhuhur1) + String(menitzhuhur2);

jamashar =as /100; jamashar1= jamashar/10; jamashar2=jamashar%10 ;
menitashar =as %100; menitashar1 =menitashar /10; menitashar2 =menitashar %10;
ashar = String(jamashar1) + String(jamashar2) +":" + String(menitashar1) + String(menitashar2);

jammaghrib =mg /100; jammaghrib1= jammaghrib/10; jammaghrib2=jammaghrib%10 ;
menitmaghrib =mg %100; menitmaghrib1 =menitmaghrib /10; menitmaghrib2 =menitmaghrib %10;
maghrib = String(jammaghrib1) + String(jammaghrib2) +":" + String(menitmaghrib1) + String(menitmaghrib2);

jamisya =is /100; jamisya1= jamisya/10; jamisya2=jamisya%10 ;
menitisya =is %100; menitisya1 =menitisya /10; menitisya2 =menitisya %10;
isya = String(jamisya1) + String(jamisya2) +":" + String(menitisya1) + String(menitisya2);

}

if (k==3) {
  if (tm==1){
    if (t3==0) lt3=false;
    baris1="Rubah Tampilan";
    baris2 ="Jam + Jdw Shalat";
    ct1 +=1;
   if (ct1 > 10 && lt3 == false) {ct1=0;  tm=1;k=1; jshalat=true; }   }
  if (tm==2){
    if (t2==0) lt2=false;
    baris1="Rubah Tampilan";
    baris2 ="Jam + Tanggal";
    ct1 +=1;
   if (ct1 > 10 && lt2 == false) {ct1=0;  tm=1; k=1; jshalat=false; } }
}

if (k==4) {
  if (tm==1){
    if (t1==0) lt1=false;
    baris1="1.Stel Alarm";
    baris2 ="2.Alarm td Aktif";
  if (t1==1 && lt1==false) {tm=2; lt1=true;}
  if (t2==1 || lt2==false) {tm=5;lt2=true; }}

  if (tm==2 ) {
    if (t1==0) lt1=false;
    baris1="1.Stel Alarm Tidur";
    baris2 ="2.Stel Alrm Shalat";
  if (t1==1 && lt1==false) {tm=3; lt1=true;}
  if (t2==1 && lt2==false) {tm=9;}}

  if (tm==3 ) {
    if (t1==0) lt1=false;
    if ((alarm% 100) >9) {
    baris1="Alarm tdr:"+String (alarm/1000)+String((alarm/100)%10)+":"+String( alarm %100); }
    else {baris1="Stel Alarm:"+String (alarm/1000)+String((alarm/100)%10)+":0"+ String( alarm %100); }

    baris2 ="2.Jam 3.Mnt 1.Ok";
    if(t2==1) { alarm=alarm+100;
     if ((alarm/100)>23) {alarm=alarm%100; }}
    if (t3==1){alarm=alarm+1;
     if ((alarm %100)>59) { alarm=alarm-60;}}
     if (t1==1 && lt1==false) { tm=4; lt1=true;}
     delay (100);}

    if (tm==4) {
          if (t1==0) lt1=false;
    baris1="Alarm Diaktipkan";
    if ((alarm% 100) >9) {
    baris2 ="Jam :"+ String(alarm/1000)+String ((alarm/100)%10)+":"+String(alarm%100);}
    else  { baris2 ="Jam :"+ String(alarm/1000)+String ((alarm/100)%10)+":0"+String(alarm%100);}
    ct1 +=1;
   if (ct1 > 10 && lt1 == false) {ct1=0;  tm=1;k=1;  statusalarm=true;}
     }

if (tm==5) {
          if (t2==0) lt2=false;
    baris1="Pilih Alarm yang ";
    baris2 ="Di Non Aktipkan";
    ct1 +=1;
   if (ct1 > 10 && lt2 == false) {ct1=0;  tm=6;  }
     }
 

  if (tm==6 ) {
    if (t1==0) lt1=false;
    baris1="1. Alarm Tidur";
    baris2 ="2. Alarm Shalat";
  if (t1==1 && lt1==false) {tm=7; lt1=true;}
  if (t2==1 && lt2== false) {tm=8; lt2 = true;}}

if (tm==7) {
          if (t1==0) lt1=false;
    baris1="Alarm Tidur ";
    baris2 ="Tidak Aktip";
    ct1 +=1;
   if (ct1 > 10 && lt1 == false) {ct1=0;  tm=1;k=1; statusalarm=false; }
     }

if (tm==8) {
          if (t2==0) lt2=false;
    baris1="Alarm Shalat ";
    baris2 ="Tidak Aktip";
    ct1 +=1;
   if (ct1 > 10 && lt2 == false) {ct1=0;  tm=1;k=1; alarmShalat=false; }
     }

    if (tm==9) {
          if (t2==0) lt2=false;
    baris1="Alarm Shalat";
    baris2 ="Di Aktifkan ";
    ct1 +=1;
   if (ct1 > 10 && lt2 == false) {ct1=0;  tm=1;k=1;  alarmShalat=true;}
     }     }
 


if (alarmShalat == true) { int wb =(j*100)+(mn) ;
   if (dz ==  wb || as == wb || mg == wb|| is == wb || sh == wb )  buzzer= true;
   else {buzzer = false; ct1=1; ct2=1;}
}
if (buzzer==true) {
    ct1 +=1; ct2 +=1;
   if (ct2 < 10 )  {  baris2="Waktunya Shalat "; }
   if (ct2 > 10 )  {  baris2="Ayo Kita Shalat "; }
   if (ct2 > 20) ct2=1;
   if (ct1 < 9 ) {digitalWrite(13,HIGH);}
   if (ct1 > 9 && ct1 <18)   {digitalWrite(13,LOW);}
   if (ct1 > 18 && ct1 <27 ) {digitalWrite(13,HIGH);}
   if (ct1 > 27 )   {digitalWrite(13,LOW); } }


if (statusalarm== true) {
   if (alarm == ((j*100)+(mn) ) )  {
    baris2="Waktu Alarm On";
    ct1 +=1;
   if (ct1 < 7 ) {digitalWrite(13,HIGH);}
   if (ct1 > 6)   {digitalWrite(13,LOW);}
   if (ct1 >12) ct1=0;
    if (t1==1 || t2 ==1 || t3 == 1)
    { statusalarm=false; k=5;}
    }     }
 
if (k==5) {
    baris1="Alarm Telah";
    baris2 ="Di Non Aktipkan";
    ct1 +=1;
   if (ct1 > 17 ) {ct1=0;  tm=1;k=1;} }



  if(b1!= baris1 || b2!=baris2 ) {
  b1= baris1 ; b2=baris2 ;
    lcd.clear() ;
  lcd.setCursor(0,0);
  lcd.print(b1);
  lcd.setCursor(0,1);
  lcd.print(b2);
  }


  if (hk==0) hari="Minggu" ;
  if (hk==1) hari="Senin" ;
  if (hk==2) hari="Selasa" ;
  if (hk==3) hari="Rabu" ;
  if (hk==4) hari="Kamis" ;
  if (hk==5) hari="Jum'at" ;
  if (hk==6) hari="Saptu" ;
 // end loop

}
byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
  return ( (val/10*16) + (val%10) );
}
---------------------------------------------------------------------------------------------



Link Untuk Kembali Ke Halaman Utama