- Bahan yang Diperlukan:
- Apa itu RTC ??
- Menyambungkan RTC DS3231 dengan MSP430:
- Pengaturcaraan MSP430 untuk Modul RTC:
Dalam tutorial ini kita akan membuat Jam Digital dengan menghubungkan modul RTC DS3231 dengan MSP430 dan memaparkan waktu dan tarikh pada LCD 16x2. MSP-EXP430G2 adalah Alat Pembangunan aka LaunchPad yang disediakan oleh Texas Instruments untuk belajar dan berlatih mengenai cara menggunakan Pengawal Mikro mereka. Papan ini termasuk dalam kategori Jalur Nilai MSP430 di mana kita dapat memprogram semua Mikrokontroler siri MSP430. Sekiranya anda baru menggunakan MSP, periksa tutorial MSP430 kami.
Bahan yang Diperlukan:
- MSP430
- Modul RTC DS3231
- POT -10k
- Modul LCD 16 * 2
- Menyambung wayar
- Papan roti
Apa itu RTC ??
DS3231 adalah modul RTC (Real Time Clock). Ia digunakan untuk mengekalkan tarikh dan masa untuk kebanyakan projek Elektronik. Modul ini mempunyai bekalan kuasa sel duit syiling sendiri yang menggunakannya mengekalkan tarikh dan masa walaupun kuasa utama dikeluarkan atau MCU telah melalui tetapan semula keras. Oleh itu, setelah kita menetapkan tarikh dan masa dalam modul ini, ia akan sentiasa melacaknya. Terdapat beberapa jenis IC RTC yang tersedia seperti DS1307, DS3231 dll.
Kami sebelum ini menggunakan RTC dengan pengawal mikro lain dalam projek di bawah:
Catatan: Semasa menggunakan modul ini untuk pertama kalinya anda mesti menetapkan tarikh dan waktu. Anda juga dapat menggunakan RTC IC DS1307, sebelumnya kami telah menggunakan DS1307 dengan Arduino.
Menyambungkan RTC DS3231 dengan MSP430:
Gambarajah litar untuk Jam Digital berdasarkan MSP430 Mikrokontroler diberikan di bawah. Seperti yang diberitahu sebelumnya, DS3231 berfungsi dengan bantuan komunikasi I2C sehingga akan mempunyai pin Serial Clock (SCL) dan Serial Data (SDA) yang harus disambungkan ke pin I2C pada MSP430 kami yang merupakan pin 9 (PIN 2.1, SCL) dan pin 10 (PIN 2.2, SDA).
MSP430 memberikan 3.3V Vcc tetapi kami memerlukan 5V untuk menghubungkannya dengan modul LCD dan RTC. Jadi, kita akan menggunakan hack, ada pelompat yang tersedia bernama TP1 berhampiran penyambung kabel USB. Anda boleh mengambil 5V dari sana.
Rajah Litar:
Pengaturcaraan MSP430 untuk Modul RTC:
Di sini kita menggunakan Energia IDE untuk pengaturcaraan. Ia sama dengan Arduino IDE dan mudah digunakan. Sekiranya anda baru menggunakan MSP dan energia, maka mulailah dengan MSP menggunakan Energia IDE. Untuk menghubungkan modul RTC, kami memerlukan perpustakaan untuk papan ini. Muat turun perpustakaan RTC dari pautan ini dan pasangkannya.
Kami juga memerlukan Wire (digunakan untuk komunikasi I2C) dan perpustakaan liquidcrystal yang sudah terpasang di Energia IDE.
Kod lengkap untuk jam digital MSP430 ini diberikan pada akhir artikel ini. Kodnya ringkas dan mudah difahami. Di sini kami menerangkan beberapa bahagiannya.
Pertama, kita mesti memasukkan perpustakaan yang diperlukan.
Perpustakaan di bawah adalah untuk komunikasi I2C antara modul RTC dan MSP430. Pin SDA dan SCK sudah ditentukan di perpustakaan ini, jadi kami tidak perlu menyatakan pin ini secara berasingan.
#sertakan
Kemudian kami telah memasukkan perpustakaan RTClib.h untuk jam RTC dan LiquidCrystal.h untuk fungsi LCD.
#include "RTClib.h" #include
Selepas ini, kita harus membuat contoh untuk memulakan modul RTC kita.
RTC_DS3231 rtc;
Kemudian buat susunan bersaiz 7 dan simpan semua tujuh hari dengan nama di dalamnya.
char daysOfTheWeek = {"Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"};
Berikut adalah deklarasi Pin MSP430 yang akan digunakan oleh paparan LCD: (RS (P2.0), EN (P1.4), D4 (P1.5), D5 (P2.3), D6 (P2.4), D7 (H2.5))
LiquidCrystal lcd (8, 6, 7,11,12,13);
Dalam penyediaan kosong () , kami telah menginisialisasi antara muka ke layar LCD dan RTC dan menentukan dimensi (lebar dan tinggi) paparan, mula ()
perlu dipanggil sebelum perintah perpustakaan lain.
persediaan tidak sah () { lcd.begin (16, 2); lcd.setCursor (3,0); lcd.print ("Jam RTC"); kelewatan (3000); lcd.clear (); rtc.begin (); // rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); }
Sekarang, Waktu yang ditunjukkan pada paparan adalah betul tetapi ada masalah, setiap kali anda memulakan semula / menetapkan semula mikrokontroler, LCD akan menunjukkan Waktu di mana anda memuat naik kod. Ini kerana fungsi rtc.adjust () telah menyimpan masa komputer anda, jadi apabila anda menetapkan semula, ia bermula dengan waktu itu.
Untuk menyelesaikan masalah ini, muat naik program terlebih dahulu dengan fungsi rtc.adjust () tanpa komplemen . Kemudian, segera komen baris yang sama dan muat naik program sekali lagi. Sekarang, tarikh dan masa anda telah ditetapkan dan tidak akan terpengaruh dengan menetapkan semula mikrokontroler.
Dalam fungsi gelung, kita mengambil tarikh dan masa dari modul RTC dan menyimpan dalam pemboleh ubah yang telah ditentukan sekarang dan memaparkannya pada LCD menggunakan fungsi lcd.print () .
gelung kosong () { DateTime now = rtc.now (); lcd.clear (); lcd.setCursor (3,0); lcd.print (now.day (), DEC); lcd.print ("/");…. …….
Kod lengkap dan Video diberikan di bawah.