Bagi pecinta Arduino tentu tidak asing dengan komponen aktif yang satu ini. Ya seperti tertera dalam gambar di bawah IC jenis ULN 2803 banyak digunakan sebagai alat uji praktek pemograman mikrokontroller menggunakan platform Arduino.
Mengingat permintaan tentang tutorial bikin jam digital menggunakan perangkat Arduino, caratekno akan coba berbagi pengalaman dan sedikit pengatahuan tentang dunia ardunio. Yuk mulai.
RTC (real time clock) IC DS1307 sangat terkenal sebagai modul interface untuk jam digital, bentuknya sangat mungil kecil dan sangat bermanfaat sekali bagi siapa saja yang ingin membuat jam waktu, karena memang sangat praktis.
Komponen Realtime clock adalah komponen IC penghitung yang dapat difungsikan sebagai sumber data waktu baik berupa data jam, hari, bulan maupun tahun.
Overview
Modul DS1307 berupa IC masi perlu dilengkapi dengan komponen pendukung lainnya seperti crystal sebagai sumber clock dan Battery External 3,6 Volt sebagai sumber energy cadangan agar fungsi penghitung tidak berhenti.
Anda dapat mengkombinasikan display Seven segment, display jenis LCD ataupun jenis matrix led untuk menampilkan data dari IC RTC. Dengan bantuan Arduino microcontroller semua opsi tersebut akan menjadi lebih mudah.
Why do we need a Real Time Clock (RTC)?
Sudah tidak asing lagi buat Arduino Lover mikrokontroller yang paling banyak menggunakan sumber data waktu semisal RTC DS1307 ini. Hasil data waktu, tanggal, bulan dan tahun sangat akurat dan sudah built-in di dalamnya tanpa perlu seting lagi saat powe on awal kali.
Proyek-proyek sederhana sering kali menggunakan timer internal supaya lebih praktis, bisa juga sebagai alternatif untuk proyek data logger, jam, alarm, dan sebagainya.
Konsumsi battery li-ion kancing (CR2032) yang disematkan pada RTC DS1307 sangat hemat daya dapat digunakan selama bertahun-tahun.
DS1307 Real Time Clock
Modul RTC DS1307 harga yang murah rendah konsumsi daya dan mantap sebagai IC pewaktu dan penanggalan secara lengkap dan akurat (detik, menit, jam, hari, tanggal, bulan, dan tahun.
Sekilas beberapa fitur DS1307 yaitu:
Fungsi pewaktu yang akurat
Validasi penanggalan hingga 2100
Rendah konsumsi daya hanya 500nA saat beroperasi dengan battery kancing li-ion CR1032
Otomatis switching power supply saat tegangan utama bermasalah.
24 jam atau 12 jam dengan Indikator AM/PM
Bentuk mungil seukuran battery komponen yang sedikiti sehingga cukup praktis
DS1307 RTC Pin Diagram
Berikut gambar dibawah ini menunjukkan gambar pin IC RTC DS1307 Untuk mengurangi konsumsi daya, jumlah pin pada IC harus dikurangi. Oleh karena itu, DS1307 RTC menggunakan Komunikasi I2C.
Pin description of DS1307 RTC
X1 and X2: Pin ini sebagai konektor IC dengan crystal frekuensi 32.768 dengan oscilator internal. Jika menggunakan oscilator luaran pin ini dibiarkan terbuka.
VBAT: Pin sumber tegangan battery dihubungkan dengan 3V Lithium cell sebagai backup dayanya.
SQW/OUT: Pin output gelombang persegi (Square wave). Bila tidak dibutuhkan abaikan saja.
VCC: Pin Sumber tegangan utama.
Arduino Real Time Clock DS1307 Interface
Sekarang kita telah melihat sedikit tentang Real Time Clock IC DS1307, kita akan melanjutkan dengan antarmuka Arduino dan Real Time Clock. Seperti disebutkan sebelumnya, Modul DS1307 RTC menggunakan Komunikasi I2C.
Dalam antarmuka Arduino Real Time Clock I2C, Arduino Microcontroller selalu bertindak sebagai Master dan DS1307 bertindak sebagai Slave. Master dalam Komunikasi I2C yaitu Arduino dalam hal ini, bertanggung jawab atas sinyal clock, akses bus, sinyal start dan stop.
Diagram Rangkaian
Gambar berikut menunjukkan diagram rangkaian Antarmuka Arduino Real Time Clock DS1307. Sirkuit ini hanya menjelaskan koneksi dasar sehubungan dengan Modul DS1307 (papan yang berisi IC DS1307 bersama dengan kristal, Baterai dan resistor pullup).
Untuk memahami lebih baik tentang Modul RTC DS1307, gambar berikut akan membantu Anda karena berisi rangkaian Modul Jam Waktu Nyata DS1307 yang khas.
Components Required
Arduino UNO
DS1307 RTC Module
16×2 LCD Display
Breadboard
Connecting wires
Power supply
Circuit Design
Interface RTC Arduino dirancang dengan sistem straight forward. Koneksi SDA dan SCL pin DS1307 RTC ke pin SDA dan SCL Arduino tanpa ada komponen apapun lainnya A4 dan A5.
16×2 LCD dihubungkan ke perangkat Arduino sebagai penampil data informasi waktu dan penanggalan secara lengkap.
Prinsip Kerja Interface Arduino Real Time Clock DS1307
Project sederhana ini hanya mengimplementasikan Real Time Clock DS3017 dan Arduino UNO menggunakan bahasa program yang tidak rumit dan njlimet.
RTClib adalah library spesial biasa digunakan sebagai pemograman yang dapat Anda unduh linknya disini. Maka pastikan anda telah mendownloadnya untuk akses database library Arduino
Fitur RTClib
Untuk mengunggah data dan waktu ke dalam IC DS1307 RTC, kami telah menggunakan fitur yang tersedia di pustaka RTClib, di mana Arduino akan mengunggah tanggal dan waktu dari komputer saat mengunggah kode.
Code
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
Caratekno – Arduino Uno adalah papan sirkuit berbasis mikrokontroler ATmega328. IC (integrated circuit) ini memiliki 14 input/output digital (6 output untuk PWM), 6 analog input, resonator kristal keramik 16 MHz, Koneksi USB, soket adaptor, pin header ICSP, dan tombol reset. Hal inilah yang dibutuhkan untuk mensupport mikrokontrol secara mudah terhubung dengan kabel power USB atau kabel power supply adaptor AC ke DC atau juga battery.
Arduino sebeuah papan circuit yang dapat diprogram secara universal sesuai kemauan sang programmer. Arduino paling banyak digunakan di dunia sebagai media edukasi dan proyek kecil atau besar.
Perusahaan Arduino menjualnya hanya dalam bentuk papan rangkaian siap pakai adapun sejatinya Arduino menyatakan bahwa platform prototype elektronik berbasi open-source yang sangat fleksibel dan mudah digunakan.
Hardware dan software siapapun boleh memakainya siapapun desainer, para hobbiest, dan semua yang tertarik dengan dunia automasi teknik robotika.
Proyek Lampu LED “Blink”
Proyek untuk pemula disebut “blink”. Objek proyek kali ini membuat lampu LED jadi flip-flop lampu kedap kedip/ mati nyala secara bergantian.
Caranya bagaimana agar bisa “blink”?
Yang dibutuhkan hanya seperangkat Arduino sedikit komponen dan script program untuk lampu LED nanti script ini diinstall menggunakan software Arduino di PC.
Langkahnya:
Koneksikan PCB Arduino ke komputer dan bukan software Arduino.
Buka tab “Tools” dan pilih “serial Port” yang sesuai dan tersedia pada komputer USB.
Ketikkan atau copy-paste script dibawah ini ke dalam software.
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.
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 —- * /
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(); }
Pada dasarnya jam digital yang dapat mengubah waktu hanya dengan menekan tombol.
History
Cara kerja Jam digital ini bekerja seperti ini, setiap 60 detik menit naik angka satu, setiap 60 menit setiap jam naik satu, dan ketika jam sampai jam 13, angka bilangan berubah menjadi satu bukan angka 13. Kita semua tahu bagaimana jam bekerja.
Kemudian jika Anda menahan tombol waktu perubahan untuk satu detik, Anda dapat mengubah waktu menggunakan tombol lain, seperti yang ditunjukkan di video bawah.
Pengalaman belajar Arduino dengan membuat jam digital memang sangat mengasyikkan, akan lebih bagus lagi setelah rancangan jam digital ini selesai anda bisa membuat packing box dengan printer 3D, desain bisa bebas anda rancang.
Video demonstrasi tentang cara menggunakan jam digital LCD biru 16×2
Skema
Skema Rangkaian.
Hanya skematisnya saja.
Kode Script C / C ++
Berikut adalah kode jika ada yang ingin mencobanya sendiri.
#include //to change time, hold chanage time button for 1 second, then use hour chnage and minute change buttons.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int hour = 12; int minutes = 0; int seconds = 0; int decBtn = 10; int hrUp = 9; int hrDwn = 8; int minUp = 7; int minDwn = 6; int hrUpDec = 0; int hrDwnDec = 0; int minUpDec = 0; int minDwnDec = 0;
Caratekno – Keluarga Arduino adalah perangkat mikrokontoller (hardware) yang tergolong keluarga embeded system karena terapannya sangat mudah dan siap pakai seperti halnya Raspberry Pi yang sangat terkenal itu.
Pendahuluan
Sebelum kita mengenal jauh dunia pemograman khususnya Arduino, bahasa yang digunakan untuk interface nya menggunakan bahasa program C++ sedangkan untuk eksekutor programnya menggunak program Arduino IDE yang sudah tersedia gratis dan ringan penggunaannya.
Arduino
Indonesia sendiri keluarga Arduino sudah sangat dikenal luas di kalangan dunia pendidikan dari tingkat sekolah dasar sampai perguruan tinggi bahkan kalangan praktisi profesionalpun masih menggunakan device yang satu ini.
Yang paling banyak digunakan secara luas antara lain Arduino Uno.
Kenapa Arduino begitu dikenal ?
Karena dari sisi harga yang terjangkau
Komponen-komponen yang mudah ditemukan di toko peralatan komponen elektronika
Mudah dibeli secara online atau offline
Varian model komponen pendukungnya juga sangat beragam
masalah ulasan lengkap pengenal apa itu arduino sudah saya tulis di artikel pengenalan arduino URL
Spesifikasi Arduino
Secara fisiki dilihat dari jumlah pin konektor digital dan analognya juga menandakan nama board arduino itu sendiri.
sebagai misal Arduino UNO memiliki jumlah 6 pin analog dan 14 pin digital, Untuk arduino MEGA memiliki jumlah pin yang lebih banyak lagi dari UNO yakni, 16 pin analog dan 54 pin digital.. wow!
Fugsi Pin Analog dan Fungsi Pin Digital
Pin Analog: Sesuai namanya pin analago lebih sering difungsikan untuk interaksi dengan perangkat keras lainnya seperti potensiometer, sensor, servo, dll.
Pin analog bisa sebagai input ataupun output tergantung dari penggunaan komponennya.
Misalkan untuk menggerakkan servo (output) dengan putaran potensimeter (input) tertentu.
Pin Digital: Sesuai namanya digunakan untuk menulis dan membaca data-data digital logika 1 (high) dan 0 (low). Contohnya untuk menyalakan lampu (output) dengan masukan logika 1 (high) maka lampu akan menyala sesuai instruksi input high.
Arduino IDE (Integrated Developtment Enviroenment)
Software interaksi PC dengan modul arduino disebut dengan Arduino IDE ambilnya disini https://www.arduino.cc/en/main/software Nah, sekarang ada versi editor onlinenya versi web-based bisa dibuat programnya jika sudah terhubung dengan koneksi internet klik sini
Sebelum modul Arduino semua tipe dijual di pasar sudah terlebih dahulu dibenamkan program bootloader pada mikrokontroller bawaannya. Berfungsi sebagai interface program dengan chipsetnya.
Bahasa program Arduino selalu berakhiran eketensi .ino ditulis dengan bahasa pemograman Java lengkap dengan Library C/C++. Tulisan bahasa program tadi biasa di tulis berupa teks yang dikenal dengan sktech.
Secara sederhana pemograman arduino ini hanya terdiri dari perintah Void Setup dan Void Loop.
Instruksi void setup dieksekusi sekali saja sedangkan instruksi loop dilakukan secara berulang-ulang sesuai perintahkan akan diulang berapa kali.
Seperti contoh istruksi program led blink secara berulang-ulang ini:
voidsetup(){
// fungsi void setup berjalan sekali saja, yaitu ketika perangkat direset atau dinyalakan.// inisialisasi pin digital 13 sebagai output.
pinMode(13, OUTPUT);
}
// fungsi void loop akan berjalan secara berulang-ulang selamanya
voidloop(){
digitalWrite(13, HIGH); // menyalakan lampu yang terhubung ke pin 13(HIGH berarti aktif)
delay(1000); // tunggu sampai 1 detik
digitalWrite(13, LOW); // mematikan lampu (LOW berarti tidak aktif)
delay(1000); // tunggu sampai 1 detik
}
Bagaimana cara memasukkan deretan program di atas ke dalam perangkat Arduino Uno?
Caranya:
Siapkan perangkat Hardware (Arduino Uno R3, Kabel USB) yang sudah terhubung dengan PC
Pilih jenis Board yang digunakan di Tool > Board > pilih nama board yang sedang digunakan
Tool > Port > pilih port yang sudah terkoneksi
Setelah semua selesai diverifikasi tidak ada kesalahan/error program
Klik Tombol tanda Panah, tunggu sebentar proses upload
dan Led akan kedip-kedip berulang-ulang
1. Menu-menu software Arduino IDE yang tertampil, yaitu:
File, berisi menu umum seperti New File, Ope, Save, Print, Quit, dan lain-lain secara mudah diterapkan respon yang cepat dan ringan.
Edit, menu umum seperti Undo/Redo, Copy/Cut/Paste, Find dan masih banyak lain fitur di dalam menu utama Edit.
Sketch, sesuai namanya menu inti ini untuk editor pemograman saja seperti tombol menul Verify/Compile, Include Libary, dll
Tools, tombol-tombol dengan fungsi antara lain (Auto Format) pengaturan kode-kode, (Port) memilih port yang sudah terhubung dengan komputer, (Burn Bootloader) memindahkan data program ke dalam chip IC mikrokontroller.
Help, tombol pusat bantuan dan dokumentasi tentang apa saja dan link URL menuju Arduino Forum