Langsung ke konten utama

project sederhana Arduino Menampilkan Waktu di LCD

project kali ini menampilkan waktu ke LCD 16x2 dengan arduino

Peralatan Dan bahan yang harus disiapkan adalah:

1. Arduino x 1

2. TinyRTC DS1307 x 1

3. LCD1602 dengan Modul I2C x 1

4. Project board x 1

5. Kabel jumper secukupnya


Perhatikan rangkan kaki SDA dan SCL pada modul I2C 

LCD dan modul RTC. Kedua modul tersebut dihubungkan 

secara paralel. Rangkaian paralel ini telah kita bahas pada 

 

Program Menampilkan Waktu di LCD


//Program Menampilkan Waktu di LCD

//dwinanjar94.blogspot.com

// include library Wire dan RTCLib

#include <Wire.h>

#include <RTClib.h>

// library LCD dengan modul I2C

#include <LiquidCrystal_I2C.h>

#define BACKLIGHT_ON HIGH

#define BACKLIGHT_OFF !BACKLIGHT_ON

// jumlah kolom dan baris LCD (16x2)

#define LCD_COL 16

#define LCD_ROW 2

#define ALIGN_LEFT 1 // teks rata kiri

#define ALIGN_CENTER 2 // teks center

#define ALIGN_RIGHT 3 // teks rata kanan

#define CLEAR true // clear screen

// ===== Konfigurasi LCD ===========

// LCD1602 dengan Modul I2C

// Alamat I2C di 0x27

// lcd_Addr, EN, RW, RS, D4, D5, D6, D7, PIN_BACKLIGHT, Pol

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

// pilihat format penulisan teks

byte tipe_format[] = {ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT};

byte format = ALIGN_LEFT;

// instance objek RTC

RTC_DS1307 RTC;

// jam dalam format teks

String teks_jam = "";

void setup() {

 // buka koneksi ke serial monitor

 Serial.begin(19200);

 while(!Serial);

 // buka koneksi ke RTC

 Wire.begin();

 RTC.begin();

 delay(1000);

 // jika RTC belum disetting & running

 if (! RTC.isrunning()) {

 // set waktu RTC sesuai waktu di komputer

 RTC.adjust(DateTime(__DATE__, __TIME__));

 Serial.println("RTC is NOT Running");

 } else {

 // RTC normal

 Serial.println("RTC OK!");

 }

 // Settingan LCD

 lcd.begin(LCD_COL,LCD_ROW);

 // Nyalakan Backlight

 lcd.setBacklight(BACKLIGHT_ON);

}

void loop() {

 // tampilkan data setiap detik

 if( nonblocking_delay(1000) ){

 // Clear sebelum menampilkan tanggal di baris 1

// rata tengah

 SetDisplay(Tanggal(), 0, ALIGN_CENTER, CLEAR);

 // tanpa clear, langsung cetak jam di baris 2

 SetDisplay(Jam(), 1, ALIGN_CENTER, !CLEAR);

 }

}

// fung Jam, mengonversi jam ke string

String Jam(){

 DateTime now = RTC.now();

 teks_jam = "";

 if( now.hour() < 10 ) teks_jam.concat(0);

 teks_jam.concat(now.hour());

 teks_jam.concat(":");

 if( now.minute() < 10 ) teks_jam.concat(0);

 teks_jam.concat(now.minute());

 teks_jam.concat(":");

 if( now.second() < 10 ) teks_jam.concat(0);

 teks_jam.concat(now.second());

 return teks_jam;

}

// fungsi tanggal

// mengonversi tanggal ke String

String Tanggal(){

 DateTime now = RTC.now();

 String teks_tanggal = "";

 if( now.day() < 10 ) teks_tanggal.concat(0);

 teks_tanggal.concat(now.day());

 teks_tanggal.concat("/");

 if( now.month() < 10 ) teks_tanggal.concat(0);

 teks_tanggal.concat(now.month());

 teks_tanggal.concat("/");

 if( now.year() < 10 ) teks_tanggal.concat(0);

 teks_tanggal.concat(now.year());

 return teks_tanggal;

}

// fungsi untuk menampilkan teks pada lcd sesuai format

void SetDisplay(String data, byte baris, byte format, boolean hapus){

 if(hapus) lcd.clear();

 int cols = data.length();

 if( cols > LCD_COL) format = ALIGN_LEFT;

 if(format == ALIGN_CENTER){

if(cols%2 == 1) cols++;

 cols = (LCD_COL/2) - (cols/2);

 }else if(format == ALIGN_RIGHT){

 cols = LCD_COL - cols;

 }else{

 cols = 0;

 }

 lcd.setCursor(cols,baris);

 lcd.print(data);

}

// tambahan untuk membuat delay non blocking

unsigned long nonblocking_time = millis();

unsigned long nonblocking_last = millis();

boolean nonblocking_delay(long milidetik){

 nonblocking_time = millis();

 if(nonblocking_time - nonblocking_last >= milidetik){

 nonblocking_last = nonblocking_time;

 return true;

 }

 return false;

}


Program ini cukup simpel karena hanya mengombinasikan antara dasar-dasar untuk mengambil data tanggal dan jam serta dasar-dasar membuat format teks di tampilan LCD.

support by 
meteorstorepurwokerto
purwokertorobotic

Komentar

Postingan populer dari blog ini

Project simulasi lampu lalu lintas (traffic light) 4 simpang menggunakan software proteus dan mikrokontroller atmega 16

Project kali ini membuat simulasi menggunakan software proteus untuk sistem lampu lalu lintas atau traffic light simpang 4 berbasis microcontroller Atmega 16. Pada sistem simulasi ini ditampilkan lcd 16x2 sebagai informasi tambahan bagi para pengendara mengenai nama simpang dan sebagainya. Terdapat pula seven segment sebagai penanda berapa lama lagi waktu atau detik yang tersisa baik itu merah atau hijau. Dan terdapat lampu LED sebagai penanda, untuk warna merah artinya berhenti, kuning untuk siap-siap/ hati hati dan hijau untuk jalan. Berikut desain simulasinya menggunakan software proteus

pengertian modul Relay dalam Arduino dan mikrokontroller

Relay adalah komponen yang dapat digunakan sebagai saklar elektronik. Secara singkat, cara kerja relay adalah memanfaatkan magnet buatan untuk memicu kontaktor dari keadaan off menjadi on, atau sebaliknya. Ibaratnya begini, jika ingin menghidupkan lampu, kita harus pencet saklar yang nempel di tembok. Tapi jika  menggunakan relay, kita bisa menghidupkan atau  mematikan lampu tanpa menyentuh saklar lagi. Relay disebut juga sebagai saklar elektronik, yaitu saklar dapat  dikontrol dengan alat elektronik lainnya seperti Arduino Relay umumnya punya 5 pin atau kaki., yang terdiri dari: Dua kaki untuk listrik + dan GND, jika arus dan tegangannya cukup, maka relay akan aktif yang ditandai dengan bunyi „tek‟. Satu kaki sumber C (common), kaki ini yang akan dihubungkan ke kaki NC atau NO. Jika relay akan  digunakan untuk mengontrol lampu rumah, maka  kaki C disambung ke salah satu jalur listrik dari PLN.  Kaki NC (Normally Close), sebelum relay aktif, kaki NC  nyambung ke kaki C (perhatikan ga

Project Running LED dengan IC Shift Register 74HC595 menggunakan arduino uno R3

project kali ini membuat Running LED atau biasa disebut lampu berjalan maksudnya adalah nyala led bergantian satu sama lain Peralatan yang disiapkan dan rangkaiannya adalah: 1. Arduino x 1 2. IC Shift Register 74HC595 x 1 3. LED x 8 4. Resistor dengan nilai seragam x 8 5. Project board x 1 6. Kabel jumper secukupnya  sambungan pin Arduino dengan IC 74HC595, dan komponen lainnya yaitu : Program LED Berjalan dengan Shift Register /* * Program LED Berjalan dengan Shift Register */ // konfigurasi pin Arduino const byte DataPin = 2; // DS data serial const byte LatchPin = 3; // ST_CP const byte ClockPin = 4; // SH_CP // menampung data byte data = 0; void setup() {  // konfigurasi pin sebagai ouput  pinMode(LatchPin, OUTPUT);  pinMode(ClockPin, OUTPUT);  pinMode(DataPin, OUTPUT); } void loop() {  // delay 200ms  if ( nonblocking_delay(200) ){  // geser kiri  data <<= 1;  // jika data == 0 (gesernya sudah habis)  // ulangi dari awal  if( data == 0 ) data = 1;  // mulai transfer  di