Kamis, 11 Februari 2021

Outseal latihan 1

 Latihan dasar PLC outseal

Untuk latihan dasar kita mulai dengan latihan menyalakan relay dengan saklar tekan

yang kita perlukan adalah :

 1 buah outseal PLC

 1 buah saklar tekan  atau tacktil switch 

dan 1 buah LED


Susun ladder diagram seperti gambar di bawah ini


Hasil dari latihan ini ketika kita menekan saklar maka relay atau LED akan hidup tetapi ketika kita lepas maka led atau relay akan mati

Latihan sesi dua

nah marilah kita meningkatkan skill dengan latihan menyalakan LED dengan dua buah saklar tekan

Rencananya ketika saklar ditekan LED akan nyala tetapi ketika saklar dilepas LED tetap hidup di sini kita akan memerlukan :

 2 buah saklar 

1 buah LED

 susun laddder diagram seperti dibawah ini

hasil dari latihan kedua maka jika kita menekan saklar 1 maka LED akan menyala  dan LED akan tetap menyala walaupun saklar dilepas, ketika kita menekan saklar kedua maka baru akan mati

untuk menyalakan LED dengan 2 buah saklar kita bisa menggunakan kan kan output biasa seperti latihan 1 tetapi dengan pengunci atau dengan output LED dan output online



a






Menggunakan latch dan unlatch

Menggunakan timer on delay

Menggunakan equal

Menggunakan one shot rising

Menggunakan reset

Menggunakan greather than





s


Rabu, 10 Mei 2017

Running Led Arduino

Halaman Blog ini adalah Hasil dari experimen Kang Mas Yadi, Jika ada pengunjung yang mampir tentu saja di persilahkan membaca. mohon maap isinya alakadarnya saja. Latihan kali ini digunakan
- Led 8 Buah
- Mikrokontroller Arduino  Mega
- Resistor





  int a,b,c,d,e,f,g,h,z; int x=1;
void setup() {
pinMode ( 26,OUTPUT); pinMode ( 28,OUTPUT);
pinMode ( 30,OUTPUT); pinMode ( 32,OUTPUT);
pinMode ( 34,OUTPUT); pinMode ( 36,OUTPUT);
pinMode ( 38,OUTPUT); pinMode ( 40,OUTPUT);
}
void loop() {
  if (z==1) {a=1; b=0; c=0; d=0; e=0; f=0; g=0; h=0;  }
  if (z==2) {a=0; b=1; c=0; d=0; e=0; f=0; g=0; h=0; }
  if (z==3) {a=0; b=0; c=1; d=0; e=0; f=0; g=0; h=0; }
  if (z==4) {a=0; b=0; c=0; d=1; e=0; f=0; g=0; h=0; }
  if (z==5) {a=0; b=0; c=0; d=0; e=1; f=0; g=0; h=0; }
  if (z==6) {a=0; b=0; c=0; d=0; e=0; f=1; g=0; h=0; }
  if (z==7) {a=0; b=0; c=0; d=0; e=0; f=0; g=1; h=0; }
  if (z==8) {a=0; b=0; c=0; d=0; e=0; f=0; g=0; h=1; }
 digitalWrite (26,a); digitalWrite ( 28,b); digitalWrite ( 30,c);
 digitalWrite (32,d); digitalWrite ( 34,e); digitalWrite ( 36,f);
 digitalWrite (38,g); digitalWrite ( 40,h); 
 z=z+x;
if (z>8)x=-1; 
if (z<1) x=1;
delay (60);
}





Kamis, 27 April 2017

Saklar digital dan Arduino



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




Rangkailah Saklar kabel dan resistor seperti gambar di atas. kemudian hubungkan dengan Mikrokontroller Arduino. Cara kerja rangkaian di atas 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


dalam latihan kali ini Arduino akan di program untuk membaca nilai saklar digital apakah berlogika HIGH ataukah berlogika LOW. Rangkaian saklar di atas akan kita hubungkan dengan kaki arduino nomor 10 dan kemudian cobalah program di bawah ini 

void setup() {
Serial.begin(9600);
pinMode (10,INPUT);
}

void loop() {
  int x= digitalRead (10);
  Serial.println (x);

}


Minggu, 23 April 2017

jadwal Shalat gaul







#include <LiquidCrystal.h>
LiquidCrystal lcd(7,8,12,11,10,9);  // 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 (2,INPUT);
    pinMode (3,INPUT);
    pinMode (4,INPUT);
}

void loop() {
 delay(100);
  t1=digitalRead(2);
  t2=digitalRead(3) ;
  t3=digitalRead(4);

  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) );
}

Sabtu, 15 April 2017

Arduino dan modul DS 3231

Pada kesempatan kali ini akan melakukan praktek membuat jam dengan modul RTC DS 3221. Yang diperlukan adalah  :
*  Mikrokontroller Arduino Uno
*  Modul RTC DS 3221

PERTAMA -TAMA HUBUNGKAN MIKROKONTROLLER DENGAN MODUL rtc

SCL  hubungkan dengan pin analog A5
SDA hubungkan dengan pin analog A4
GND hubungkan dengan ground
VCC  hubungkan dengan 5 Volt

Untuk dapat terhubung dengan baik dengan mikrokontroller Arduino maka kita perlu librari DS 3221 yang dapat di unduh pada link di bawah ini

link untuk Mendownload Library: DS3231


setelah kita dapatkan librarinya masukan ke arduino ide dengan cara klik Sketch- Include Library - add zipp library

cobalah latihan dasar di bawah ini

#include <DS3231.h>
DS3231  rtc(SDA, SCL);
void setup()
{
  Serial.begin(9600);
  rtc.begin();
// The following lines can be uncommented to set the date and time
//rtc.setDOW(SATURDAY);     // Set Day-of-Week to SUNDAY
//rtc.setTime(19, 36, 0);     // Set the time to 12:00:00 (24hr format)
//rtc.setDate(15, 4, 2017);   // Set the date to January 1st, 2014
}

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating :)
  delay (1000);

}

cobalah comfile programnya kemudian upload ke mikrokontroller. hasilnya adalah waktu akan di tampilkan di monitor komputer
jika waktu yang ditampilkan tidak sesuai maka kita dapat mengeditnya atau merubah data waktu yang ada di modul RTC dengan cara merubah program di atas pada bagian setup coba perhatikan  baris program bagian setup yang di arsir dan diberi warna berbeda
//rtc.setDOW(SATURDAY);     // Set Day-of-Week to SUNDAY
//rtc.setTime(19, 36, 0);     // Set the time to 12:00:00 (24hr format)

//rtc.setDate(15, 4, 2017);   // Set the date to January 1st, 2014
Hilangkan tada komentarnya kemudian rubahlah dengan data waktu yang benar misalkan sekarang adalah hari Kamis 17 Agustus 2017 jam 10:15 lewat 20 detik maka rubahlah datanya menjadi

rtc.setDOW(THURSDAY);     // Set Day-of-Week to SUNDAY
rtc.setTime(10, 15, 20);     // Set the time to 12:00:00 (24hr format)
rtc.setDate(17, 8, 2017);   // Set the date to January 1st, 2014

Cobalah Uploud programnya dan hasilnya akan berubah dan data RTC sudah di rubah, jika sudah sukses lihat pada bagian  setup tadi dan kembalikan menjadi komentar seperti di bawah ini 
 //rtc.setDOW(THURSDAY);     // Set Day-of-Week to SUNDAY
//rtc.setTime(10, 15, 20);     // Set the time to 12:00:00 (24hr format)
//rtc.setDate(17, 8, 2017);   // Set the date to January 1st, 2014

Dan uploud kembali ke mikrokontroller...   Kenapa harus begitu yaaa.... ?
Jika saudara ingin tahu jawabannya maka cobalah untuk jangan di rubah dahulu tetapi matikan mikrokontroller dan hidupkan kembali dan lihat apa yang akan terjadi  ...? 
Jawabannya adalah  waktunya akan kembali ke nilai Thursday 17 -8- 2017 jam 10:15 lewat 20
kembali kacau kaaan ...?
Nah untuk menghindarinya maka harus di Uploud ulang

Latihan kedua
Latihan kedua adalah menampilkan waktu pada lcd 16x2 karakter

Yang kita perlukan adalah
Mikrokontroller Arduino Uno 
Modul RTC DS 3231
Lcd 16x2 Karakter




Gambar di atas adalah percobaan penulis dengan menggunakan Arduino nano yang disuplai dengan power Bank kecil. hidup  dan sukses. nah programnya adalah seperti di bawah ini.. Cobalah

----------------------------------------------
String waktu, tanggal;
#include <DS3231.h>
DS3231  rtc(SDA, SCL);
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);
  rtc.begin();
}
void loop()
{
//  waktu= String(rtc.getDOWStr());
  tanggal= String (rtc.getDateStr());
  waktu = String(rtc.getTimeStr());  
  lcd.setCursor(0, 0);  lcd.print (waktu);
  lcd.setCursor(0, 1);  lcd.print (tanggal);
  delay (500);
}
---------------------------------------------------------------------------





Senin, 31 Oktober 2016

berlatih arduino dengan led


Selamat datang sahabat.. Terima kasih telah berkunjung di blog yang sederhana ini. Pada kesempatan kali ini kita akan berlatih led berjalan. Coba sahabat perhatikan gambar animasi di bawah yaaa.
Pada gambar di atas kita melihat animasi led berjalan . Nah sekarang kita akan praktekan siapkan alat alatnya yaaa  .. yaitu...
1 buah mikrokontroller Arduino Uno.
4 buah led
Nah untuk latihan pertama ini rangkaian saklar abaikan saja terlebih dahulu. Kita akan membuat led berjalan saja..


Nah sekarang kita akan mencoba bagaimanakah led berjalan ini dapat dimatikan dengan saklar. Jadi awalnya atau pada saat pertama kali di aktipkan led mati. Nah jika kita tekan saklar maka led akan hidup bergantian. Dan jika kita tekan saklar sekali lagi, led akan mati semua.


void setup() {
pinMode (2,OUTPUT) ;
pinMode (3,OUTPUT) ;
pinMode (4,OUTPUT) ;
pinMode (5,OUTPUT) ;
}

void loop() {
for (int x=2; x<6 ; x++ ) {
  digitalWrite (x,HIGH);
  delay (1000);
  digitalWrite (x,LOW);
  }
 }



void setup() {
pinMode (2,OUTPUT) ;
pinMode (3,OUTPUT) ;
pinMode (4,OUTPUT) ;
pinMode (5,OUTPUT) ;

//pinMode (6,OUTPUT) ;
}

void loop() {
  digitalWrite (x,HIGH);
  delay (500);
  digitalWrite (x,LOW);
  }
 }




boolean a,b;
int x=2; int y,w ;int z=1;
void setup() {
pinMode (2,OUTPUT) ;
pinMode (3,OUTPUT) ;
pinMode (4,OUTPUT) ;
pinMode (5,OUTPUT) ;

pinMode (13,INPUT) ;
}

void loop() {
if (digitalRead (13)==1 && a==false )
{ a =true ;
 if (b==false) b=true;
 else b= false;}
 if (digitalRead (13)==0) a= false ;
 if (b==true) {
  digitalWrite (x,z);
  delay (50);
  w=w+1;
  if ( w>20) {z=0;}
   if ( w>40) {z=1  ;
   w=1;
    x=x+1;
    if (x>5) x=2;
  }
 }}

Kunjungi Chanel youtubnya yaaa.. Jangan lupa like and subcribe

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;
}}

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