Halaman Blog yang memberikan informasi tentang cara belajar mikrokontroller arduino disertai dengan praktek praktek arduino
Minggu, 01 Maret 2015
Proyek Jam dengan RTC
Ini adalah latihan dasar mikrokontroller arduino, kita akan mencoba menghubungkan arduino Uno dengan RTC. Untuk menghubungkan Arduino Uno dengan RTC cobalah lihat gambar dibawah ini
Gambar diatas diambil dari forum arduino. mohon maap karena mencari yang mudah ya digunakanlah gogle dengan kata kunci " arduino RTC" dan muncullah banyak gambar. ya diambil salah satu. dari gambar di atas hubungkanlah kaki modul rtc dengan Arduino seperti gambar, untuk kaki ds tidak perlu dihubungkan, abaikan saja.
Untuk menghubungkan Arduino dengan LCD 16x2 lihatlah gambar dibawah ini.
cobalah listing program dibawah ini dan lihat hasilnya
**************************************************************************
#include "Wire.h"
#define DS1307_ADDRESS 0x68
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup(){
Wire.begin();
// Serial.begin(9600);
lcd.begin(16,2);
}
void loop(){
Wire.beginTransmission(DS1307_ADDRESS);
byte zero = 0x00;
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
int detik = bcdToDec(Wire.read());
int menit = bcdToDec(Wire.read());
int jam = bcdToDec(Wire.read() & 0b111111); //24 hour time
int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
int bulan = bcdToDec(Wire.read());
int tanggal = bcdToDec(Wire.read());
int tahun = bcdToDec(Wire.read());
delay (133);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(tanggal);
lcd.print("-");
lcd.print(bulan);
lcd.print("-");
lcd.print(tahun);
lcd.print(" ");
lcd.print(jam);
lcd.print(":");
lcd.print(menit);
lcd.print(":");
lcd.print(detik);
lcd.setCursor(0,1);
lcd.print(" Percobaan ");
delay(200);
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
**************************************************************************
Nah sekarang marilah rekan kembangkan program di atas sesuai imajinasi rekan rekan. Cobalah modifikasi programnya agar menampilkan jam saja. Atau coba agar baris pertama menampikan jam dan baris ke dua menampilkan hari dan tanggal. Ayo terus berlatih dengan semangat
Setting RTC
Lanjutan dari halaman Proyek Jam dengan RTC
Halaman ini adalah lanjutan dari praktek Mikrokontroller Arduino membuat jam dengan RTC. Modul RTC yang digunakan adalah Ds 1307 . Pada dasarnya ada dua praktek dalam percobaan Membuat Jam dengan RTC yaitu menampilkan jam yang ada di RTC dan merubah jam yang ada di RTC bila jam tidak sesuai tentunya (ngaco). Untuk merubah jam yang ada di RTC dilakukan melalui mikrokontroller Arduino. programnya adalah sebagai berikut. Coba perhatikan list Program di bawah ini.
---------------------------------------------------------------------------------------------
#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
void setup(){
pinMode (18,OUTPUT); pinMode (19,OUTPUT);
digitalWrite(19,HIGH);
digitalWrite (18,LOW);
Wire.begin();
Serial.begin(9600);
setDateTime(); //MUST CONFIGURE IN FUNCTION
}
void loop(){
printDate();
delay(1000);
}
void setDateTime(){
byte second = 41; // Detik diisi dengan nilai 0-59
byte minute = 30; // Menit diisi dengan nilai0-59
byte hour = 8; // Jam diisi dengan nilai 0-23
byte weekDay = 2; // Hari diisi dengan nilai 1-7 (1=Minggu, 2 Senin Dst)
byte monthDay = 2; // Tanggal diisi dengan nilai 1-31
byte month = 3; // Bulan diisi dengan nilai 1-12
byte year = 15; // Tahun diisi dengan nilai 0-99
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero); //stop Oscillator
Wire.write(decToBcd(second));
Wire.write(decToBcd(minute));
Wire.write(decToBcd(hour));
Wire.write(decToBcd(weekDay));
Wire.write(decToBcd(monthDay));
Wire.write(decToBcd(month));
Wire.write(decToBcd(year));
Wire.write(zero); //start
Wire.endTransmission();
}
byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
return ( (val/10*16) + (val%10) );
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
void printDate(){
// Reset the register pointer
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
int second = bcdToDec(Wire.read());
int minute = bcdToDec(Wire.read());
int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
int monthDay = bcdToDec(Wire.read());
int month = bcdToDec(Wire.read());
int year = bcdToDec(Wire.read());
//print the date EG 3/1/11 23:59:59
Serial.print(month);
Serial.print("/");
Serial.print(monthDay);
Serial.print("/");
Serial.print(year);
Serial.print(" ");
Serial.print(hour);
Serial.print(":");
Serial.print(minute);
Serial.print(":");
Serial.println(second);
}
---------------------------------------------------------------------------------------------
Untuk merubah jam Rtc perhatikan nilai jam yang ada di bagian Setup. isilah second dengan nilai detik yang akan di input. nilai minute dengan nilai menit , hour dengan nilai jam. dan nilai seterusnya. ketika program di Uploud ke Mikrokontroller maka mikrokontroller akan menuliskannya ke RTC. Sebagai Catatatn bahwa setelah program di Uploud maka data akan berubah dan jam sudah sesuai dengan waktu yang berlaku, maka kita harus mengaploud program untuk menampilkan jam saja. contohnya Uploud saja program pada percobaan sebelunya. Kenapa demikian .........? . Jawabannya adalah akan terjadi masalah ketika Mikrokontroller di matikan. sebagai contoh kita akan membetulkan nilai jam yang ada di Modul RTC yang tidak sesuai. Pada saat itu menunjukan Jam 5 sore pas dan tanggal pada saat itu adalah tanggal 1 Januari 2015. Tentunya kita memasukan nilai tersebut di bagian setup kemudian alat kita biarkan menyala sampai jam 6 sore dan kita matikan. pada saat Jam 7 malam kita nyalakan kembali mikrokontrollernya dan jam yang akan tampil adalah jam 5 sore dan bukan jam 7 malam. Hal ini dikarenakan pada saat mikrokontroller dihidupkan Modul Rtc kembali di rubah data waktunya seperti nilai yang tertulis di bagian setup. Nah oleh karena itu maka setelah program ini di uploud harus segera di ganti dengan program tampilan jam saja.
Mungkin kita akan membayangkan bahwa membuat jam dengan modul RTC adalah tidak praktis yaaa.. bagaiman jamnya bila di pakai oleh pengguna yang tidak mengerti mikrokontroller sama sekali. tentunya bilai jam nya ngaco maka tidak dapat di betulkan sendiri. Untuk itulah kita perlu mengembangkan program ini agar jam dan cara membetulkan jamnya bisa bergabung dan tidak perlu menggunakan komputer dalam mengatur jamnya. Ikutilah Ling berikut Untuk latihan membuat jam lanjutan
Senin, 23 Februari 2015
latihan Permulaan Arduino
Apakah saudara baru belajar Mikrokontroller Arduino. Ingin Melakukan praktek...?
Baguuuusss... Pertama Tama siapkan terlebih dahulu Mikrokontrollernya kemudian siapkan Softwer pemrogramnya atau yang di sebut IDE yang dapat di download dari situs Arduino. atau minta saja ke teman tentunya lebih praktis bukan... Akuuuuurr... Cobalah hubungkan mikrokontroller saudara ke komputer dan lihat apakah dikenali oleh komputer atau tidak. untuk Software Windows 7, 8,10 tentunya tidak akan masalah karena akan dikenali. bila menggunakan Windows Xp maka ada cara untuk pengenalan Mikrokontroller ke PC. Cari saja caranya di Google yaaa. atau dapat melihat dulu di Youtube.
Jika sudah dihubungkan dengan PC maka Cobalah Praktek yang paling sederhana yaitu Led ber kedip kedip. atau blingking Led. yang harus kita persiapkan yaitu satu buah led kemudian Anodanya kita hubungkan dengan kaki Mikrokontroller Arduino nomor 13 dan Katodanya hubungkan dengan Ground.
Sketch Program latihan led berkedip ada di dalam contoh dan di sediakan di IDE nya coba klik File kemudian klik Examples kemudian klik Basic kemudian Klik Blink dan taraaaaa.. muncullah contoh pemrogramannya.
Contoh Programnya adalah seperti di bawah ini. apapun versi idenya. isinya tetap sama..
------------------------------------------------------------------------------------------
/*
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
}
------------------------------------------------------------------------------------
Bagian yang sengaja di beri warna merah adalah komentar, komentar tidak dijalankan di dalam program hanya sekedar hiasan yang tujuannya adalah memberi keterangan agar program lebih mudah di pelajari. Marilah kita urut program di atas agar rekan rekan yang baru belajar lebih mengerti.
int led = 13; adalah mendeklarasikan variabel led bernilai 13 dan variabelnya adalah integer disingkat int.
jadi jika di dalam program kita menemukan led itu berarti bernilai 13.
pinMode(led, OUTPUT); artinya led atau 13 dijadikan sebagi output. dalam hal ini maksud 13 adalah kaki mikrokontroller Arduino nomor 13 (Pin Digital yaaa bukan yang analog).
digitalWrite(led, HIGH); artinya adalah kaki arduino nomor 13 kita jadikan berlogika HIGH atau akan mengeluarkan tegangan sebesar 5 Volt DC nah pada saat iinilah led akan hidup.
delay(1000); artinya program akan di tahan selama satu detik (1000 = 1 detik). selama di tahan tersebut mikrokontroller akan diam dan tentunya selama ini led akan menyala.
digitalWrite(led, LOW); artinya adalah kaki arduino nomor 13 kita jadikan berlogika LOW atau akan mengeluarkan tegangan sebesar 0 Volt DC nah pada saat iinilah led yang tadinya hidup selama satu detik akan mati.
delay(1000); artinya program akan di tahan selama satu detik dan selama di tahan tersebut mikrokontroller akan diam dan tentunya selama ini led akan tetap mati.
} adalah akhir dari program bagian LOOP jika sudah mencapai bagian akhir ini maka program akan kembali ke bagian awal LOOP dan akan memulai kerja kembali yakni led akan hidup 1 detik dan akan mati 1 detik dan akan begitu terus sampai alat di matikan. terus berkedip dan ga ada capenya yaaa.. geniiit......
Masih ingin berlatih dengan led ayo ikuti halaman berikut... Berlatih dengan beberapa Led
Baguuuusss... Pertama Tama siapkan terlebih dahulu Mikrokontrollernya kemudian siapkan Softwer pemrogramnya atau yang di sebut IDE yang dapat di download dari situs Arduino. atau minta saja ke teman tentunya lebih praktis bukan... Akuuuuurr... Cobalah hubungkan mikrokontroller saudara ke komputer dan lihat apakah dikenali oleh komputer atau tidak. untuk Software Windows 7, 8,10 tentunya tidak akan masalah karena akan dikenali. bila menggunakan Windows Xp maka ada cara untuk pengenalan Mikrokontroller ke PC. Cari saja caranya di Google yaaa. atau dapat melihat dulu di Youtube.
Jika sudah dihubungkan dengan PC maka Cobalah Praktek yang paling sederhana yaitu Led ber kedip kedip. atau blingking Led. yang harus kita persiapkan yaitu satu buah led kemudian Anodanya kita hubungkan dengan kaki Mikrokontroller Arduino nomor 13 dan Katodanya hubungkan dengan Ground.
Sketch Program latihan led berkedip ada di dalam contoh dan di sediakan di IDE nya coba klik File kemudian klik Examples kemudian klik Basic kemudian Klik Blink dan taraaaaa.. muncullah contoh pemrogramannya.
Contoh Programnya adalah seperti di bawah ini. apapun versi idenya. isinya tetap sama..
------------------------------------------------------------------------------------------
/*
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
}
------------------------------------------------------------------------------------
Bagian yang sengaja di beri warna merah adalah komentar, komentar tidak dijalankan di dalam program hanya sekedar hiasan yang tujuannya adalah memberi keterangan agar program lebih mudah di pelajari. Marilah kita urut program di atas agar rekan rekan yang baru belajar lebih mengerti.
int led = 13; adalah mendeklarasikan variabel led bernilai 13 dan variabelnya adalah integer disingkat int.
jadi jika di dalam program kita menemukan led itu berarti bernilai 13.
pinMode(led, OUTPUT); artinya led atau 13 dijadikan sebagi output. dalam hal ini maksud 13 adalah kaki mikrokontroller Arduino nomor 13 (Pin Digital yaaa bukan yang analog).
digitalWrite(led, HIGH); artinya adalah kaki arduino nomor 13 kita jadikan berlogika HIGH atau akan mengeluarkan tegangan sebesar 5 Volt DC nah pada saat iinilah led akan hidup.
delay(1000); artinya program akan di tahan selama satu detik (1000 = 1 detik). selama di tahan tersebut mikrokontroller akan diam dan tentunya selama ini led akan menyala.
digitalWrite(led, LOW); artinya adalah kaki arduino nomor 13 kita jadikan berlogika LOW atau akan mengeluarkan tegangan sebesar 0 Volt DC nah pada saat iinilah led yang tadinya hidup selama satu detik akan mati.
delay(1000); artinya program akan di tahan selama satu detik dan selama di tahan tersebut mikrokontroller akan diam dan tentunya selama ini led akan tetap mati.
} adalah akhir dari program bagian LOOP jika sudah mencapai bagian akhir ini maka program akan kembali ke bagian awal LOOP dan akan memulai kerja kembali yakni led akan hidup 1 detik dan akan mati 1 detik dan akan begitu terus sampai alat di matikan. terus berkedip dan ga ada capenya yaaa.. geniiit......
Masih ingin berlatih dengan led ayo ikuti halaman berikut... Berlatih dengan beberapa Led
Minggu, 15 Februari 2015
Skripsi arduino
Link Ke Halaman Utama
• Keran Solenoid air tidak aktif.
• Keran Solenoid pupuk tidak aktif
• Pompa listrik
tidak aktif
Proses pemupukan tanaman dilakukan dengan
cara :
•Keran Solenoid pupuk
aktif.
• Keran Solenoid air tidak aktif.
• Pompa listrik aktif dan akan memompa pupuk
cair dan disalurkan ke tanaman.
•Keran Solenoid air
aktif.
• Keran Solenoid pupuk tidak aktif
Jam tanpa rtc yang dapat diatur
Link ke Halaman utama
nah ini dia poto-poto percobaannya
poto di atas adalah hasil percobaan kang mas Yadi tuuuch.. ada tombol saklar 3 biji,sebuah arduino board, satu buah lcd 16x2 karakter murah meriah dan powerbank samsung sebagai catu dayanya dengan menggunakan kabel printer, jadi abis ngupload programnya dari laptop langsung deh colokin ke power bang, terlihat dari poto
Langkah pertama adalah mengatur jamnya
Langkah selanjutnya adalah mengatur menitnya
langkah terakhir sesuaikan detiknyaa
Selesailah bagian pengaturan jam. tapi awas yaaa.. jangan sampai batrainya abis. batrai abis selesai sudah jamnya. atur lagi deh dari awal
---------------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(5, 4, 3, 2,1,0);
int aa,a,b,c,d,e,f,ff,g ,jamm,menitt,detikk;
String jam;
String mode="jam";
void setup() {
lcd.begin(16, 2);
pinMode(8,INPUT);
pinMode(9,INPUT);
pinMode(10,INPUT);
}
void loop() {
if (mode=="jam"){
if ( f!=ff){
lcd.clear();
lcd.setCursor (0,0); lcd.print("Proyek Jam");
jam="Jam : "+String(a)+String(b)+":" +String(c);
jam=jam +String(d)+":"+String(e)+String(f);
lcd.setCursor (0,1); lcd.print(jam);
ff=f;
}
delay(200);
g=g+1;
if (g==5){ f=f+1; g=0;}
if (f==10) { f=0; e=e+1;}
if (e==6) { e=0; d=d+1;}
if (d==10) { d=0; c=c+1;}
if (c==6) { c=0; b=b+1;}
if (b==10) { b=0; a=a+1;}
aa=(a*10)+b ; if (aa==24) { a=0; b=0;}
if (digitalRead(8)==HIGH){ mode="atur1";
jamm=(a*10)+b; menitt =(c*10)+d; detikk=(e*0)+f;
delay(200);}
}
if (mode=="atur1"){
lcd.clear();
lcd.setCursor (0,0); lcd.print("Rubah Jam: ");lcd.print(jamm);
if (digitalRead(9)==HIGH){delay(100);
jamm=jamm+1;
if (jamm>23){jamm=0;}
}
if (digitalRead(10)==HIGH){delay(100);
jamm=jamm-1;
if (jamm<0){jamm=23;}
}
if (digitalRead(8)==HIGH){
a=jamm/10; b=jamm % 10;
mode="atur2"; delay(200);}
delay(200);}
if (mode=="atur2"){
lcd.clear();
lcd.setCursor (0,0); lcd.print("Rubah menit: ");lcd.print(menitt);
if (digitalRead(9)==HIGH){delay(100);
menitt=menitt+1;
if (menitt>59){menitt=0;}
}
if (digitalRead(10)==HIGH){delay(100);
menitt=menitt-1;
if (menitt<0){menitt=59;}
}
if (digitalRead(8)==HIGH){
c=menitt/10; d=menitt % 10;
mode="atur3"; delay(200);}
delay(200);}
if (mode=="atur3"){
lcd.clear();
lcd.setCursor (0,0); lcd.print("Rubah Detik: ");lcd.print(detikk);
if (digitalRead(9)==HIGH){ delay(100);
detikk=detikk+1;
if (detikk>59){detikk=0;}
}
if (digitalRead(10)==HIGH){delay(100);
detikk=detikk-1;
if (detikk<0){detikk=59;}
}
if (digitalRead(8)==HIGH){
e=detikk/10; f=detikk % 10 ;
mode="jam"; delay(200);}
delay(200);}
}
---------------------------------------------------------------------------
Setelah di jalankan ternyata dalam semalam jam mengalami telat sekitar 4 menit. Maksudnya waktu malam di jalankan waktunya sama dengan jam dindi. Dan setelah semalaman ham nya tidak sama dengan jam dinding. Ada telat sekitar 4 atau 5 menit. Dan juga baterainya tidak kuat lama. Jadi tidak mungkin di gunakan jangka panjang
halaman ini adalah lanjutan dari halaman berlatih membuat jam tanpa RTC
Ceritanya jam yang dirancang kali ini dapat di atur dengan tombol tekan yang ada sehingga jam dapat disesuaikan. rangkaiannya adalah seperti dibawah ini.nah ini dia poto-poto percobaannya
poto di atas adalah hasil percobaan kang mas Yadi tuuuch.. ada tombol saklar 3 biji,sebuah arduino board, satu buah lcd 16x2 karakter murah meriah dan powerbank samsung sebagai catu dayanya dengan menggunakan kabel printer, jadi abis ngupload programnya dari laptop langsung deh colokin ke power bang, terlihat dari poto
Langkah pertama adalah mengatur jamnya
Langkah selanjutnya adalah mengatur menitnya
langkah terakhir sesuaikan detiknyaa
Selesailah bagian pengaturan jam. tapi awas yaaa.. jangan sampai batrainya abis. batrai abis selesai sudah jamnya. atur lagi deh dari awal
---------------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(5, 4, 3, 2,1,0);
int aa,a,b,c,d,e,f,ff,g ,jamm,menitt,detikk;
String jam;
String mode="jam";
void setup() {
lcd.begin(16, 2);
pinMode(8,INPUT);
pinMode(9,INPUT);
pinMode(10,INPUT);
}
void loop() {
if (mode=="jam"){
if ( f!=ff){
lcd.clear();
lcd.setCursor (0,0); lcd.print("Proyek Jam");
jam="Jam : "+String(a)+String(b)+":" +String(c);
jam=jam +String(d)+":"+String(e)+String(f);
lcd.setCursor (0,1); lcd.print(jam);
ff=f;
}
delay(200);
g=g+1;
if (g==5){ f=f+1; g=0;}
if (f==10) { f=0; e=e+1;}
if (e==6) { e=0; d=d+1;}
if (d==10) { d=0; c=c+1;}
if (c==6) { c=0; b=b+1;}
if (b==10) { b=0; a=a+1;}
aa=(a*10)+b ; if (aa==24) { a=0; b=0;}
if (digitalRead(8)==HIGH){ mode="atur1";
jamm=(a*10)+b; menitt =(c*10)+d; detikk=(e*0)+f;
delay(200);}
}
if (mode=="atur1"){
lcd.clear();
lcd.setCursor (0,0); lcd.print("Rubah Jam: ");lcd.print(jamm);
if (digitalRead(9)==HIGH){delay(100);
jamm=jamm+1;
if (jamm>23){jamm=0;}
}
if (digitalRead(10)==HIGH){delay(100);
jamm=jamm-1;
if (jamm<0){jamm=23;}
}
if (digitalRead(8)==HIGH){
a=jamm/10; b=jamm % 10;
mode="atur2"; delay(200);}
delay(200);}
if (mode=="atur2"){
lcd.clear();
lcd.setCursor (0,0); lcd.print("Rubah menit: ");lcd.print(menitt);
if (digitalRead(9)==HIGH){delay(100);
menitt=menitt+1;
if (menitt>59){menitt=0;}
}
if (digitalRead(10)==HIGH){delay(100);
menitt=menitt-1;
if (menitt<0){menitt=59;}
}
if (digitalRead(8)==HIGH){
c=menitt/10; d=menitt % 10;
mode="atur3"; delay(200);}
delay(200);}
if (mode=="atur3"){
lcd.clear();
lcd.setCursor (0,0); lcd.print("Rubah Detik: ");lcd.print(detikk);
if (digitalRead(9)==HIGH){ delay(100);
detikk=detikk+1;
if (detikk>59){detikk=0;}
}
if (digitalRead(10)==HIGH){delay(100);
detikk=detikk-1;
if (detikk<0){detikk=59;}
}
if (digitalRead(8)==HIGH){
e=detikk/10; f=detikk % 10 ;
mode="jam"; delay(200);}
delay(200);}
}
---------------------------------------------------------------------------
Setelah di jalankan ternyata dalam semalam jam mengalami telat sekitar 4 menit. Maksudnya waktu malam di jalankan waktunya sama dengan jam dindi. Dan setelah semalaman ham nya tidak sama dengan jam dinding. Ada telat sekitar 4 atau 5 menit. Dan juga baterainya tidak kuat lama. Jadi tidak mungkin di gunakan jangka panjang
Jumat, 13 Februari 2015
berlatih membuat jam tanpa RTC
Link menuju halaman utama
link menuju latihan sesion dua
Ceritanya ingin membuat jam dengan memanfaatkan sebuah arduino dan lcd 16x2 karakter.disini sengaja tidak menggunakan RTC. Modal dasarnya adalah pemanpaatan delay pada program
Dengan cara menggunakan delay selama satu detik maka variabel detik bertambah, jika sudah 60 detik maka variabel menit bertambah, jika sudah 60 menit maka variabel Jam bertambah
Yang Kita perlukan adalah :
1. Mikrokontroller Arduino
2. Lcd 16x2 karakter
-------------------------------------io-------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(5, 4, 3, 2,1,0);
byte aa,a,b,c,d,e,f ;
String (jam);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcd.setCursor (0,0); lcd.print("Proyek Jam");
jam="Jam : "+String(a)+String(b)+":" +String(c);
jam=jam +String(d)+":"+String(e)+String(f);
lcd.setCursor (0,1); lcd.print(jam);
delay(1000);
f=f+1;
if (f==10) { f=0; e=e+1;}
if (e==6) { e=0; d=d+1;}
if (d==10) { d=0; c=c+1;}
if (c==6) { c=0; b=b+1;}
if (b==10) { b=0; a=a+1;}
aa=(a*10)+b ; if (aa==24) { a=0; b=0;}
}
--------------------------------------------------------------------------
program di atas akan berjalan menampilkan jam 00:00 (jam 12 malam). jadi pertama kali diaktipkan harus jam 12 malam. disini tidak ada cara untuk merubah jam dan menitnya.
link ke latihan sesion dua
link menuju latihan sesion dua
Ceritanya ingin membuat jam dengan memanfaatkan sebuah arduino dan lcd 16x2 karakter.disini sengaja tidak menggunakan RTC. Modal dasarnya adalah pemanpaatan delay pada program
Dengan cara menggunakan delay selama satu detik maka variabel detik bertambah, jika sudah 60 detik maka variabel menit bertambah, jika sudah 60 menit maka variabel Jam bertambah
Yang Kita perlukan adalah :
1. Mikrokontroller Arduino
2. Lcd 16x2 karakter
-------------------------------------io-------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(5, 4, 3, 2,1,0);
byte aa,a,b,c,d,e,f ;
String (jam);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcd.setCursor (0,0); lcd.print("Proyek Jam");
jam="Jam : "+String(a)+String(b)+":" +String(c);
jam=jam +String(d)+":"+String(e)+String(f);
lcd.setCursor (0,1); lcd.print(jam);
delay(1000);
f=f+1;
if (f==10) { f=0; e=e+1;}
if (e==6) { e=0; d=d+1;}
if (d==10) { d=0; c=c+1;}
if (c==6) { c=0; b=b+1;}
if (b==10) { b=0; a=a+1;}
aa=(a*10)+b ; if (aa==24) { a=0; b=0;}
}
--------------------------------------------------------------------------
program di atas akan berjalan menampilkan jam 00:00 (jam 12 malam). jadi pertama kali diaktipkan harus jam 12 malam. disini tidak ada cara untuk merubah jam dan menitnya.
link ke latihan sesion dua
Sabtu, 07 Februari 2015
RTC & Arduino
Pada kesempatan kali ini kita akan melakukan praktek Mikrokontroller arduino Dengan modul RTC. Nah perhatikan gambar modul LCD di bawah ini.
**********************************************************
#include "Wire.h"
#define DS1307_ADDRESS 0x68
void setup(){
Wire.begin();
Serial.begin(9600);
}
void loop(){
printDate(); delay(1000);
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
void printDate(){
// Reset the register pointer
Wire.beginTransmission(DS1307_ADDRESS);
byte zero = 0x00;
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
int second = bcdToDec(Wire.read());
int minute = bcdToDec(Wire.read());
int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
int monthDay = bcdToDec(Wire.read());
int month = bcdToDec(Wire.read());
int year = bcdToDec(Wire.read());
//print the date EG 3/1/11 23:59:59
Serial.print(month) ; Serial.print("/") ; Serial.print(monthDay);
Serial.print("/"); Serial.print(year); Serial.print(" ");
Serial.print(hour); Serial.print(":"); Serial.print(minute);
Serial.print(":"); Serial.println(second);
}
**********************************************************
Program di atas akan menampilkan nilai jam di monitor serial atau di layar laptop. setelah program di uploud ke Mikrokontroller maka klik serial monitor yang ada di Arduino IDE dan akan ada tampilan waktu di layar yang muncul. yaa ini adalah latihan dasar dan tentunya tidak praktis. Alat yang kita buat belum bisa jadi jam yang dapat di tempatkan di meja kerja yaaa. harus dikembangkan lagi dengan tambahan layar LCD.
Mari kita kembangkan lagi program di atas agar lebih menarik. ikutilah halaman berikut untuk membuat jam sesi ke dua atau bila ingin mempelajari cara merubah nilai waktu yang ada di modul RTC maka kunjungi halaman ini .. Ayo Semangaath..... !!!!!!!
Kembali Ke halaman Awal
Modul RTC Mempunyai 4 kaki yang harus dihubungkan dengan Mikrokontroller yaitu :
Kaki SCL harus dihubungkan dengan Pin Analog A5 tetapi jika menggunakan ARduino Mega 2560 ada sedikit perbedaan silahkan cari melalui Mas Google yaaa...
Kaki SDA harus dihubungkan dengan Pin Analog A4
VCC dihubungkan dengan sumber daya 5 Volt yang ada di Mikrokontroller
Ground (Gnd) dihubungkan dengan ground yang ada di Mikrokontroller.
Nah sekarang Marilah kita coba memprogramnya. Silahkan buka komputernya dan cobalah program di bawah ini.
**********************************************************
#include "Wire.h"
#define DS1307_ADDRESS 0x68
void setup(){
Wire.begin();
Serial.begin(9600);
}
void loop(){
printDate(); delay(1000);
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
void printDate(){
// Reset the register pointer
Wire.beginTransmission(DS1307_ADDRESS);
byte zero = 0x00;
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
int second = bcdToDec(Wire.read());
int minute = bcdToDec(Wire.read());
int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
int monthDay = bcdToDec(Wire.read());
int month = bcdToDec(Wire.read());
int year = bcdToDec(Wire.read());
//print the date EG 3/1/11 23:59:59
Serial.print(month) ; Serial.print("/") ; Serial.print(monthDay);
Serial.print("/"); Serial.print(year); Serial.print(" ");
Serial.print(hour); Serial.print(":"); Serial.print(minute);
Serial.print(":"); Serial.println(second);
}
**********************************************************
Program di atas akan menampilkan nilai jam di monitor serial atau di layar laptop. setelah program di uploud ke Mikrokontroller maka klik serial monitor yang ada di Arduino IDE dan akan ada tampilan waktu di layar yang muncul. yaa ini adalah latihan dasar dan tentunya tidak praktis. Alat yang kita buat belum bisa jadi jam yang dapat di tempatkan di meja kerja yaaa. harus dikembangkan lagi dengan tambahan layar LCD.
Mari kita kembangkan lagi program di atas agar lebih menarik. ikutilah halaman berikut untuk membuat jam sesi ke dua atau bila ingin mempelajari cara merubah nilai waktu yang ada di modul RTC maka kunjungi halaman ini .. Ayo Semangaath..... !!!!!!!
Kembali Ke halaman Awal
Minggu, 01 Februari 2015
Halaman Utama
Selamat datang di Blog Kang Mas Yadi. Mudah mudahan rekan rekan berada dalam kebahagian dan dengan mengunjungi blog ini rekan rekan dapat memperoleh tambahan bekal dalam mempelajari mikrokontroller arduino. Kunci utama dalam belajar mikrokontroller adalah semangat dan pantang menyerah dalam berlatih pemrograman. yakinlah segala sesuatunya pasti akan sukses.
Blog ini memang berisi sedikit informasi semoga dapat bermanfaat, Mohon maaf atas segala kekurangan dan kesalahn yang terdapat dalam blog ini.
1. Penggunaan Bred Board dan latihan dasar arduino
2. Berlatih menggunakan EEPROM Arduino
3. Berlatih Arduino dan Saklar
4 Mikrokontroller Arduino dan Led Berjalan
5. Arduino dan saklar sesi ke dua
6. Berlatih LED
7. Berlatih Led Sesi Ke 2
8. Berlatih LED sesi 3
9. Arduino dan sensor ultrasonik
10. Arduino dan Ultrasonik bagian dua
11. membuat jam tanpa RTC
12. Percobaan Analog out Arduino
13. Lampu Berjalan Arduino
14. Mencoba arduino dengan keypad
15. Lampu Otomatis dengan arduino
16. Skripsi Arduino
17. Berlatih Pin Analog Dan Pin Digital Arduino Untuk Saklar
18. Arduino dan dasar servo
19. Belajar Servo Jugaaa
Pengendalian 2 Buah Led dengan Arduino dan Mit App Inventor
Arduino dan dasar servo
Kolaborasi Arduino Plus Sensor Jarak Ping ParallaxKolaborasi Arduino ama Stepper
Pemikiran Untuk Membuat Jadwal Shalat Dengan Arduino
Jadwal Shalat Abadi dengan Arduino Uno Praktek kedua
Jadwal Shalat Abadi dengan Arduino Uno Praktek ke 3
Berkreasi membuat Jadwal Shalat Abadi dengan Arduino Uno sesi 4
Blog ini memang berisi sedikit informasi semoga dapat bermanfaat, Mohon maaf atas segala kekurangan dan kesalahn yang terdapat dalam blog ini.
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
* 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
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.
* 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
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
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
Langganan:
Postingan (Atom)