- Bahan yang Dibutuhkan:
- Apa itu RTC ??
- Menghubungkan DS3231 RTC dengan MSP430:
- Pemrograman MSP430 untuk Modul RTC:
Dalam tutorial ini kita akan membuat Jam Digital dengan menghubungkan modul RTC DS3231 dengan MSP430 dan menampilkan waktu dan tanggal pada LCD 16x2. MSP-EXP430G2 adalah Alat Pengembangan alias LaunchPad yang disediakan oleh Texas Instruments untuk mempelajari dan mempraktikkan cara menggunakan Mikrokontroler mereka. Papan ini termasuk dalam kategori Garis Nilai MSP430 di mana kita dapat memprogram semua Mikrokontroler seri MSP430. Jika Anda baru mengenal MSP, periksa tutorial memulai MSP430 kami.
Bahan yang Dibutuhkan:
- MSP430
- Modul DS3231 RTC
- POT -10k
- Modul LCD 16 * 2
- Menghubungkan kabel
- Papan tempat memotong roti
Apa itu RTC ??
DS3231 adalah modul RTC (Real Time Clock). Ini digunakan untuk mempertahankan tanggal dan waktu untuk sebagian besar proyek Elektronik. Modul ini memiliki catu daya sel berbentuk koin yang digunakan untuk mempertahankan tanggal dan waktu bahkan ketika daya utama dilepas atau MCU mengalami hard reset. Jadi, begitu kita menyetel tanggal dan waktu dalam modul ini, modul ini akan selalu melacaknya. Ada beberapa jenis IC RTC yang tersedia seperti DS1307, DS3231 dll.
Kami sebelumnya telah menggunakan RTC dengan mikrokontroler lain dalam proyek di bawah ini:
Catatan: Saat menggunakan modul ini untuk pertama kalinya Anda harus mengatur tanggal dan waktu. Anda juga bisa menggunakan IC RTC DS1307, kami sebelumnya telah menggunakan DS1307 dengan Arduino.
Menghubungkan DS3231 RTC dengan MSP430:
Diagram rangkaian untuk Jam Digital berbasis Mikrokontroler MSP430 diberikan di bawah ini. Seperti yang diceritakan sebelumnya DS3231 bekerja dengan bantuan komunikasi I2C sehingga akan memiliki pin Serial Clock (SCL) dan Serial Data (SDA) yang harus dihubungkan ke pin I2C pada MSP430 kami yaitu pin 9 (PIN 2.1), SCL) dan pin 10 (PIN 2.2, SDA).
MSP430 memberikan 3.3V Vcc tetapi kami membutuhkan 5V untuk menghubungkannya dengan modul LCD dan RTC. Jadi, kami akan menggunakan hack, ada jumper tersedia bernama TP1 di dekat konektor kabel USB. Anda dapat mengambil 5V dari sana.
Diagram Sirkuit:
Pemrograman MSP430 untuk Modul RTC:
Di sini kami menggunakan Energia IDE untuk pemrograman. Ini sama dengan Arduino IDE dan mudah digunakan. Jika Anda baru mengenal MSP dan energia, mulailah dengan MSP menggunakan Energia IDE. Untuk antarmuka modul RTC kita membutuhkan perpustakaan untuk papan ini. Unduh pustaka RTC dari tautan ini dan instal.
Kami juga membutuhkan Wire (digunakan untuk komunikasi I2C) dan perpustakaan liquidcrystal yang sudah diinstal sebelumnya di Energia IDE.
Kode lengkap untuk jam digital MSP430 ini diberikan di akhir artikel ini. Kode itu sederhana dan mudah dimengerti. Di sini kami menjelaskan beberapa bagiannya.
Pertama, kita harus menyertakan perpustakaan yang diperlukan.
Perpustakaan di bawah ini adalah untuk komunikasi I2C antara modul RTC dan MSP430. Pin SDA dan SCK sudah ditentukan di pustaka ini, jadi kami tidak perlu mendeklarasikan pin ini secara terpisah.
#include
Kemudian kami telah menyertakan pustaka RTClib.h untuk jam RTC dan LiquidCrystal.h untuk fungsi LCD.
#include "RTClib.h" #include
Setelah ini, kita harus membuat instance untuk menginisialisasi modul RTC kita.
RTC_DS3231 rtc;
Kemudian buat sebuah array berukuran 7 dan simpan semua tujuh hari dengan nama di dalamnya.
char daysOfTheWeek = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
Berikut adalah pernyataan Pin MSP430 untuk digunakan oleh layar LCD: (RS (P2.0), EN (P1.4), D4 (P1.5), D5 (P2.3), D6 (P2.4), D7 (P2.5))
LCD LiquidCrystal (8, 6, 7,11,12,13);
Dalam void setup () , kami telah menginisialisasi antarmuka ke layar LCD dan RTC dan menentukan dimensi (lebar dan tinggi) dari tampilan, begin ()
perlu dipanggil sebelum perintah perpustakaan lainnya.
void setup () { lcd.begin (16, 2); lcd.setCursor (3,0); lcd.print ("Jam RTC"); penundaan (3000); lcd.clear (); rtc.begin (); // rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); }
Sekarang, Waktu yang ditampilkan di layar sudah benar tetapi ada masalah, setiap kali Anda me-restart / mereset mikrokontroler Anda, LCD akan menunjukkan Waktu di mana Anda mengunggah kode. Ini karena fungsi rtc.adjust () telah menyimpan waktu komputer Anda, jadi ketika Anda mengatur ulang, itu dimulai dengan waktu itu.
Untuk memperbaiki masalah ini, pertama-tama unggah program dengan fungsi rtc.adjust () tanpa komentar. Kemudian, segera komen baris yang sama dan upload programnya lagi. Sekarang, tanggal dan waktu Anda sudah diatur dan tidak akan terpengaruh oleh pengaturan ulang mikrokontroler.
Dalam fungsi loop kita mengambil tanggal dan waktu dari modul RTC dan menyimpannya dalam variabel yang telah ditentukan yang disebut sekarang dan menampilkannya pada LCD menggunakan fungsi lcd.print () .
void loop () { DateTime now = rtc.now (); lcd.clear (); lcd.setCursor (3,0); lcd.print (now.day (), DEC); lcd.print ("/");…. …….
Kode lengkap dan Video diberikan di bawah ini.