- Potrebni materijali:
- Što je RTC ??
- Povezivanje DS3231 RTC s MSP430:
- Programiranje MSP430 za RTC modul:
U ovom uputstvu napravit ćemo digitalni sat povezivanjem RTC modula DS3231 s MSP430 i prikazati vrijeme i datum na LCD zaslonu 16x2. MSP-EXP430G2 je razvojni alat zvan LaunchPad koji pruža Texas Instruments kako bi naučio i vježbao kako koristiti njihove mikrokontrolere. Ova ploča spada u kategoriju MSP430 Value Line gdje možemo programirati sve mikrokontrolere serije MSP430. Ako ste novi u MSP-u, provjerite naš početak rada s vodičem za MSP430.
Potrebni materijali:
- MSP430
- DS3231 RTC modul
- LONAC -10k
- LCD modul 16 * 2
- Spajanje žica
- Breadboard
Što je RTC ??
DS3231 je RTC (sat u stvarnom vremenu) modul. Koristi se za održavanje datuma i vremena za većinu projekata Elektronike. Ovaj modul ima vlastiti izvor napajanja ćelije pomoću kojeg održava datum i vrijeme, čak i kad je glavno napajanje uklonjeno ili je MCU prošao kroz hard reset. Dakle, nakon što postavimo datum i vrijeme u ovom modulu, on će ih uvijek pratiti. Dostupno je nekoliko vrsta RTC IC-a poput DS1307, DS3231 itd.

Ranije smo koristili RTC s ostalim mikrokontrolerima u projektima ispod:
Napomena: Kada prvi put koristite ovaj modul, morate postaviti datum i vrijeme. Također možete koristiti RTC IC DS1307, mi smo prethodno koristili DS1307 s Arduinom.
Povezivanje DS3231 RTC s MSP430:
Dijagram sklopa za digitalni sat zasnovan na mikrokontroleru dat je u nastavku. Kao što je ranije rečeno, DS3231 radi uz pomoć I2C komunikacije, tako da će imati serijski sat (SCL) i pin serijskih podataka (SDA) koji moraju biti povezani s I2C pinovima na našem MSP430, a to je pin 9 (PIN 2.1, SCL) i pin 10 (PIN 2.2, SDA).
MSP430 daje 3.3V Vcc, ali za povezivanje s LCD i RTC modulom potrebno nam je 5V. Dakle, poslužit ćemo se hakiranjem, dostupan je kratkospojnik nazvan TP1 u blizini priključka USB kabela. Odatle možete uzeti 5V.
Kružni dijagram:

Programiranje MSP430 za RTC modul:
Ovdje koristimo Energia IDE za programiranje. Isti je kao Arduino IDE i jednostavan za upotrebu. Ako ste novi u MSP-u i energiji, započnite s upotrebom MSP-a pomoću Energia IDE-a. Za povezivanje RTC modula potrebna nam je knjižnica za ovu ploču. Preuzmite RTC biblioteku s ove poveznice i instalirajte je.
Također su nam potrebne žičane (koriste se za I2C komunikaciju) i knjižnice likvid kristala koje su unaprijed instalirane u Energia IDE.
Potpuni kod za ovaj digitalni sat MSP430 dan je na kraju ovog članka. Kôd je jednostavan i lako razumljiv. Ovdje objašnjavamo nekoliko njegovih dijelova.
Prvo, moramo uključiti potrebne knjižnice.
Ispod je knjižnica za I2C komunikaciju između RTC modula i MSP430. SDA i SCK pinovi su već definirani u ovoj knjižnici, tako da ih ne moramo deklarirati odvojeno.
#include
Zatim smo uključili RTClib.h biblioteku za RTC sat i LiquidCrystal.h za LCD funkcije.
#include "RTClib.h" #include
Nakon toga, moramo stvoriti instancu za inicijalizaciju našeg RTC modula.
RTC_DS3231 rtc;
Zatim napravite niz veličine 7 i pohranite svih sedam dana s imenom.
char daysOfTheWeek = {"nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"};
Evo izjave pinova MSP430 koje će LCD zaslon koristiti: (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);
U void setup () , inicijalizirali smo sučelje za LCD zaslon i RTC i odredili dimenzije (širinu i visinu) zaslona, begin ()
treba pozvati prije bilo koje druge knjižnične naredbe.
void setup () { lcd.begin (16, 2); lcd.setCursor (3,0); lcd.print ("RTC sat"); kašnjenje (3000); lcd.clear (); rtc.begin (); // rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); }
Sada je vrijeme prikazano na zaslonu točno, ali postoji problem, svaki put kada ponovno pokrenete / resetirate svoj mikrokontroler, LCD će prikazati vrijeme u koje ste prenijeli kôd. To je zato što funkcija rtc.adjust () pohranjuje vrijeme vašeg računala, pa kad resetirate, počinje s tim vremenom.
Da biste riješili taj problem, prvo prenesite program s nekomentiranom funkcijom rtc.adjust () . Zatim odmah komentirajte isti redak i ponovo prenesite program. Sada su datum i vrijeme postavljeni i resetiranjem mikrokontrolera to neće utjecati na njih.
U funkciji petlje uzimamo datum i vrijeme iz RTC modula i pohranjujemo u unaprijed definiranu varijablu koja se zove sada i prikazujemo je na LCD-u pomoću funkcije lcd.print () .
void loop () { DateTime sada = rtc.now (); lcd.clear (); lcd.setCursor (3,0); lcd.print (now.day (), DEC); lcd.print ("/");…. …….
Kompletni kod i videozapisi dati su u nastavku.
