- Nepieciešamie materiāli:
- Kas ir RTC ??
- DS3231 RTC savienošana ar MSP430:
- MSP430 programmēšana RTC modulim:
Šajā apmācībā mēs izveidosim digitālo pulksteni, sasaistot RTC moduli DS3231 ar MSP430 un parādot laiku un datumu 16x2 LCD ekrānā. MSP-EXP430G2 ir attīstības rīks jeb LaunchPad, ko nodrošina Texas Instruments, lai uzzinātu un praktizētu, kā izmantot savus mikrokontrollerus. Šī plāksne ietilpst kategorijā MSP430 Value Line, kur mēs varam ieprogrammēt visus MSP430 sērijas mikrokontrollerus. Ja esat jauns MSP lietotājs, pārbaudiet mūsu darba sākšanu ar MSP430 apmācību.
Nepieciešamie materiāli:
- MSP430
- DS3231 RTC modulis
- POT -10k
- LCD modulis 16 * 2
- Savienojošie vadi
- Maizes dēlis
Kas ir RTC ??
DS3231 ir RTC (Real Time Clock) modulis. To izmanto, lai saglabātu datumu un laiku lielākajai daļai elektronikas projektu. Šim modulim ir savs monētu elementu barošanas avots, izmantojot kuru tas saglabā datumu un laiku pat tad, ja galvenā barošana tiek noņemta vai MCU ir veikta rūpīga atiestatīšana. Tāpēc, kad šajā modulī būsim iestatījuši datumu un laiku, tas vienmēr to sekos. Ir pieejami vairāki RTC IC veidi, piemēram, DS1307, DS3231 utt.
Zemāk esošajos projektos mēs iepriekš esam izmantojuši RTC ar citiem mikrokontrolleriem:
Piezīme: Lietojot šo moduli pirmo reizi, ir jāiestata datums un laiks. Varat arī izmantot RTC IC DS1307, mēs jau iepriekš izmantojām DS1307 ar Arduino.
DS3231 RTC savienošana ar MSP430:
MSP430 mikrokontrolleru digitālā pulksteņa shēmas shēma ir sniegta zemāk. Kā jau iepriekš stāstīts, DS3231 darbojas ar I2C sakaru palīdzību, tāpēc tam būs seriālā pulksteņa (SCL) un sērijas datu (SDA) tapa, kas jāpievieno mūsu MSP430 I2C tapām, kas ir 9. tapa (PIN 2.1)., SCL) un tapu 10 (PIN 2.2, SDA).
MSP430 dod 3,3 V Vcc, bet mums ir nepieciešams 5 V, lai to savienotu ar LCD un RTC moduli. Tātad, mēs izmantosim uzlaušanu, USB kabeļa savienotāja tuvumā ir pieejams džemperis ar nosaukumu TP1. No turienes var paņemt 5V.
Ķēdes shēma:
MSP430 programmēšana RTC modulim:
Šeit mēs izmantojam Energia IDE programmēšanai. Tas ir tāds pats kā Arduino IDE un viegli lietojams. Ja jūs esat jauns MSP un energia lietotājs, tad veiciet darba sākšanu ar MSP, izmantojot Energia IDE. Lai saskarne RTC moduli, mums ir nepieciešama bibliotēka šai plāksnei. No šīs saites lejupielādējiet RTC bibliotēku un instalējiet to.
Mums ir vajadzīgas arī Wire (tiek izmantotas I2C sakariem) un šķidro kristālu bibliotēkas, kas ir iepriekš instalētas Energia IDE.
Pilnīgs šī MSP430 digitālā pulksteņa kods ir norādīts šī raksta beigās. Kods ir vienkāršs un viegli saprotams. Šeit mēs izskaidrojam dažas tā daļas.
Pirmkārt, mums jāiekļauj nepieciešamās bibliotēkas.
Zemāk esošā bibliotēka ir paredzēta I2C saziņai starp RTC moduli un MSP430. SDA un SCK tapas jau ir definētas šajā bibliotēkā, tāpēc mums šīs deklarācijas nav jādeklarē atsevišķi.
# iekļaut
Tad mēs esam iekļāvuši RTClib.h bibliotēku RTC pulkstenim un LiquidCrystal.h LCD funkcijām.
#include "RTClib.h" #include
Pēc tam mums ir jāizveido instance, lai inicializētu mūsu RTC moduli.
RTC_DS3231 rtc;
Tad izveidojiet masīvu 7 izmēru un visas septiņas dienas glabājiet ar nosaukumu.
char daysOfTheWeek = {"svētdiena", "pirmdiena", "otrdiena", "trešdiena", "ceturtdiena", "piektdiena", "sestdiena"};
Šeit ir MSP430 tapu deklarācija, kas jāizmanto LCD displejā: (RS (P2.0), EN (P1.4), D4 (P1.5), D5 (P2.3), D6 (P2.4), D7 (P2.5))
LiquidCrystal lcd (8, 6, 7,11,12,13);
Ar spēkā neesošu uzstādīšanas () , mums ir inicializēts saskarni ar LCD ekrānu un RTK, un noteikts izmēri (platums un augstums) displejā sāk ()
ir jāizmanto, pirms jebkuru citu bibliotēku komandas.
void setup () { lcd.begin (16, 2); lcd.setCursor (3,0); lcd.print ("RTC pulkstenis"); kavēšanās (3000); lcd.clear (); rtc.begin (); // rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); }
Tagad displejā redzamais laiks ir pareizs, taču pastāv problēma. Katru reizi, kad restartējat / atiestatāt mikrokontrolleru, LCD parādīs laiku, kurā augšupielādējāt kodu. Tas ir tāpēc, ka funkcija rtc.adjust () ir saglabājusi jūsu datora laiku, tāpēc, atiestatot, tā sākas ar šo laiku.
Lai novērstu šo problēmu, vispirms augšupielādējiet programmu ar funkciju rtc.adjust (), kas nav komentēta . Pēc tam nekavējoties komentējiet to pašu rindiņu un vēlreiz augšupielādējiet programmu. Tagad jūsu datums un laiks ir iestatīts, un mikrokontrollera atiestatīšana tos neietekmēs.
Jo cilpas funkcijas mēs aizņem datumu un laiku no RTK moduli un veikalā iepriekšdefinētajā mainīgajā sauc tagad un parādīt to uz LCD, izmantojot lcd.print () funkciju.
void loop () { DateTime now = rtc.now (); lcd.clear (); lcd.setCursor (3,0); lcd.print (tagad.diena (), DEC); lcd.print ("/");…. …….
Pilns kods un video ir norādīts zemāk.