Skip to main content

Jam Real Time Berbasis Arduino PRO Mini dan RTC DS1307

Jam berbasis Real Arduino ini adalah jam digital untuk menampilkan waktu nyata menggunakan RTC IC DS1307 yang bekerja pada protokol I2C.

RTC (real time clock) tetap akan berjalan meski asupan tegangan mati.

credit img by circuitdigest.com

Rangkaian sederhana jam ini menggunakan LCD 16×2 untuk menampilkan format waktu (tahun, bulan, tanggaljam, menit, dan detik) juga dilengkapi dengan modul alarm.

Opsi Alarm juga ditambahkan dan kita dapat mengatur waktu alarm. Setelah waktu alarm disimpan di EEPROM internal Arduino, itu tetap disimpan bahkan setelah ulang atau kegagalan listrik. Jam biasanya digunakan di komputer, rumah, kantor, dan perangkat elektronik kami agar selalu diperbarui secara real time.

Protokol I2C adalah metode untuk menghubungkan dua atau lebih perangkat menggunakan dua kabel ke sistem tunggal, dan protokol ini juga disebut sebagai dua protokol kawat . Ini dapat digunakan untuk mengkomunikasikan 127 perangkat ke satu perangkat atau prosesor. Sebagian besar perangkat I2C menjalankan frekuensi on100Khz.

Diagram Sirkuit dan Deskripsi

Dalam rangkaian jam digital berbasis Arduino ini, kami telah menggunakan tiga komponen utama yaitu IC DS1307, Arduino Pro Mini Board, dan modul LCD 16×2.

Di sini arduino digunakan untuk membaca waktu dari ds1307 dan menampilkannya pada LCD 16×2. DS1307 mengirim waktu / tanggal menggunakan 2 baris ke arduino. Sebuah buzzer juga digunakan untuk indikasi alarm, yang berbunyi ketika alarm diaktifkan. Diagram blok ditunjukkan di bawah ini untuk memahami kerja Jam Waktu ini.

rangkaian blogk arduino

Seperti yang Anda lihat dalam diagram rangkaian, DS1307 chip pin SDA dan SCL terhubung ke pin arduino SDA dan SCL dengan menarik resistor yang memegang nilai standar TINGGI pada data dan garis jam.

Osilator kristal 32.768KHz terhubung dengan DS1307chip untuk menghasilkan penundaan 1 detik yang tepat, dan baterai 3 volt juga terhubung ke pin 3 rd (BAT) dari DS1307 yang menjaga waktu berjalan setelah kegagalan listrik.

16×2 LCD terhubung dengan Arduino dalam 4-bit mode. Kontrol pin RS, RW dan En secara langsung terhubung ke arduino pin 2, GND dan 3. Dan pin data D0-D7 terhubung ke 4, 5, 6, 7 dari Arduino. Sebuah buzzer terhubung dengan pin arduino nomor 13 melalui transistor NPN BC547 yang memiliki resistor 1k pada dasarnya.

Tiga tombol yaitu set, INC dan Berikutnya digunakan untuk mengatur alarm ke pin 12, 11 dan 10 dari Arduino dalam mode rendah aktif. Ketika kita menekan set, mode alarm set akan aktif dan sekarang kita perlu mengatur alarm dengan menggunakan tombol INC dan tombol Next digunakan untuk memindahkan ke digit.

Pengaturan breadboard lengkap jam real time ini dengan alarm ditunjukkan di bawah gambar. Anda juga dapat memeriksa tutorial rinci tentang jam alarm digital dengan mikrokontroler AVR.

Deskripsi Program

Untuk memprogram jam waktu secara real, kami telah menggunakan beberapa referensi untuk mengekstraksi waktu / tanggal dari DS1307 dan untuk ditampilkan pada LCD, yang diberikan di bawah ini:

Dan inisialisasi RTC, LCD dan output input dilakukan di loop setup.

Sisa dari hal-hal seperti waktu membaca, pengaturan alarm dilakukan di bagian loop void.

 

Kode

/ * —– Program C untuk Arduino berdasarkan Jam Alarm —- * /

#include
#include
#include
#include

LiquidCrystal lcd (3, 2, 4, 5, 6, 7);
RTC_DS1307 RTC;
int temp, inc, hours1, minut, add = 11;

int next = 10;
int INC = 11;
int set_mad = 12;

#define buzzer 13

int HOUR, MINUT, SECOND;

kekosongan setup ()
{
Wire.begin ();
RTC.begin ();
lcd.begin (16,2);
pinMode (INC, INPUT);
pinMode (next, INPUT);
pinMode (set_mad, INPUT);
pinMode (buzzer, OUTPUT);
digitalWrite (next, HIGH);
digitalWrite (set_mad, HIGH);
digitalWrite (INC, HIGH);

lcd.setCursor (0,0);
lcd.print (“Real Time Clock”);
lcd.setCursor (0,1);
lcd.print (“Circuit Digest”);
penundaan (2000);

if (! RTC.isrunning ())
{
RTC.adjust (DateTime (__ DATE __, __ TIME__));
}
}

void loop ()
{
int temp = 0, val = 1, temp4;
DateTime sekarang = RTC.now ();
if (digitalRead (set_mad) == 0) // setel waktu Alarm
{
lcd.setCursor (0,0);
lcd.print (“Set Alarm”);
penundaan (2000);
defualt ();
waktu();
penundaan (1000);
lcd.clear ();
lcd.setCursor (0,0);
lcd.print (“Waktu alarm”);
lcd.setCursor (0,1);
lcd.print (“telah diatur”);
penundaan (2000);
}
lcd.clear ();
lcd.setCursor (0,0);
lcd.print (“Waktu:”);
lcd.setCursor (6,0);
lcd.print (HOUR = now.hour (), DEC);
lcd.print (“:”);
lcd.print (MINUT = now.minute (), DEC);
lcd.print (“:”);
lcd.print (SECOND = now.second (), DEC);
lcd.setCursor (0,1);
lcd.print (“Date:”);
lcd.print (now.day (), DEC);
lcd.print (“/”);
lcd.print (now.month (), DEC);
lcd.print (“/”);
lcd.print (now.year (), DEC);
pertandingan();
penundaan (200);
}

kekosongan defualt ()
{
lcd.setCursor (0,1);
lcd.print (JAM);
lcd.print (“:”);
lcd.print (MINUT);
lcd.print (“:”);
lcd.print (SECOND);
}

/ * Fungsi untuk mengatur waktu alarm dan waktu umpan ke Internal eeprom * /

void time ()
{
int temp = 1, minuts = 0, hours = 0, seconds = 0;
while (temp == 1)
{
if (digitalRead (INC) == 0)
{
HOUR ++;
if (HOUR == 24)
{
HOUR = 0;
}
while (digitalRead (INC) == 0);
}
lcd.clear ();
lcd.setCursor (0,0);
lcd.print (“Set Alarm Time”);
//lcd.print(x);
lcd.setCursor (0,1);
lcd.print (JAM);
lcd.print (“:”);
lcd.print (MINUT);
lcd.print (“:”);
lcd.print (SECOND);
penundaan (100);
if (digitalRead (next) == 0)
{
hours1 = HOUR;
EEPROM.write (tambahkan ++, jam1);
temp = 2;
while (digitalRead (next) == 0);
}
}

while (temp == 2)
{
if (digitalRead (INC) == 0)
{
MINUT ++;
if (MINUT == 60)
{MINUT = 0;}
sementara (digitalRead (INC) == 0);
}
// lcd.clear ();
lcd.setCursor (0,1);
lcd.print (JAM);
lcd.print (“:”);
lcd.print (MINUT);
lcd.print (“:”);
lcd.print (SECOND);
penundaan (100);
if (digitalRead (next) == 0)
{
minut = MINUT;
EEPROM.write (tambahkan ++, minut);
temp = 0;
while (digitalRead (next) == 0);
}
}
delay (1000);
}

/ * Fungsi untuk waktu pengobatan chack * /

kekosongan pertandingan ()
{
int tem [17];
untuk (int i = 11; i <17; i ++)
{
tem [i] = EEPROM.read (i);
}
if (HOUR == tem [11] && MINUT == tem [12])
{
beep ();
berbunyi();
berbunyi();
berbunyi();
lcd.clear ();
lcd.print (“Wake Up ……..”);
lcd.setCursor (0,1);
lcd.print (“Wake Up …….”);
berbunyi();
berbunyi();
berbunyi();
berbunyi();
}

}

/ * berfungsi untuk indikasi buzzer * /

void beep ()
{
digitalWrite (buzzer, HIGH);
penundaan (500);
digitalWrite (buzzer, LOW);
penundaan (500);
}

Video

Pustaka: https://circuitdigest.com/microcontroller-projects/arduino-alarm-clock

Comments

Popular posts from this blog

Merubah adaptor USB menjadi Lampu LED

Caratekno.com - Lampu led high power led kini semakin populer digunakan pada gedung-gedung kantoran, stadion, fasilitas umum dan rumah-rumah. Tidak ada salahnya apabila Anda ingin membuat sendiri lampu led hasil kreatifitas yang pencahayaannya tidak kalah juga dengan hasil buatan pabrik yang harganya variatif. Nah apabila di rumah banyak perkakas adaptor USB bekas dirumah dan adaptor/ charger bekas tidak terbakai sebaiknya dimanfaatkan saja? Jangan keburu dibuang ya.! Buat apaan?! Nanti adaptor-adaptor tersebut akan saya sulap menjadi sesuatu yang dapat menghemat anggaran listrik di rumah anda. Yuk siapkan bahan-bahannya: Charger bekas LED HPL Luxeon klik sini  Lampu TL bekas Lem bakar/ glue gun Heat sink alumunium Selanjutnya ikuti cara-cara pembuatannya, silahkan anda perhatikan gambar di bawah ini: Langkah 1: Persiapkan charger hp bekas, keluarkan PCB dari casingnya. Potong kabel Langkah 2: Setelah dipotong kabel dan dikeluarkan dari casing charg...

Merakit Rangkaian Power Bank Sederhana

Mau merangkai sendiri Rangkaian Power Bank atau membeli pabrikan yang harganya mahal?! Seperti anda ketahui sekarang kebutuhan Gadget sangat penting hari ini, hampir setiap saat orang menggunakannya mulai subuh hingga larut malam. Tatkala battery gadget habis pasti akan dicharger  untuk bisa digunakan kembali. Namun, bagaimana jika anda dalam perjalanan? Rangkaian power bank buatan caratekno.com Untuk itulah saya akan sedikit berbagi pengetahuan yang sedikit untuk membantu rekan Tronika mengatasi masalah battery habis. Bermula banyaknya rekan-rekan yang bertanya di Thread yang saya posting di Forum Kaskus dan Alhamdulillah HT (Hot Thread) hingga page viewnya mencapai 350 .000an. Ternyata masih banyak yang belum paham dengan tata letak komponen, sehingga banyak yang gagal. Tidak bermaksud menggurui namun saya ingin memperjelas rangkaian power tersebut berfungsi dengan baik asalkan jangan sering-sering digunakan, karena sifatnya hanya digunakan saat darurat saja. Rang...

Mengenal Lampu LED: Dari Voltase Hingga Rangkaian Untuk Peralatan Rumah Tangga

Caratekno - Penggunaan lampu LED sudah tidak bisa dipungkiri lagi bahwa lampu ini merupakan lampu hemat energi terbarukan. Konsumsi daya yang rendah. Tidak meningkatkan suhu ruang dan cahaya sangat terang ketimbang menggunakan lampu jenis pijar (bohlam). Pengenalan Lampu LED Lampu LED, singkatan dari Light Emitting Diode, merupakan sebuah invosi modern sebuah lampu penerangan sejak era lampu pijar listrik ditemukan pada awal abad 20. LED sebagai pencayaan sudah banyak digunakan di rumah tangga dan perkantoran bahkan dunia industri. Berbeda dengan lampu pijar, lampu LED lebih efisien dalam menghasilkan cahaya dan memiliki umur pemakaian yang lebih panjang. Dengan mengenali lebih dalam mengenai berapa volt lampu LED yang tepat untuk penggunaan Anda, Anda dapat mengoptimalkan kinerja lampu ini. Berapa Volt Lampu LED yang Ideal? img by elecircuit Salah satu pertanyaan yang sering muncul adalah berapa volt lampu LED yang diperlukan untuk beroperasi dengan baik. Kebanyakan lampu...