- Nødvendige materialer:
- Hva er RTC ??
- Koble til DS3231 RTC med MSP430:
- Programmering MSP430 for RTC-modul:
I denne veiledningen vil vi lage en digital klokke ved å koble RTC-modul DS3231 med MSP430 og vise tid og dato på 16x2 LCD. MSP-EXP430G2 er et utviklingsverktøy aka LaunchPad levert av Texas Instruments for å lære og øve seg på hvordan du bruker Microcontrollers. Dette tavlen faller inn under MSP430 Value Line-kategorien der vi kan programmere alle MSP430-serien Microcontrollers. Hvis du er ny i MSP, kan du sjekke hvordan vi kommer i gang med MSP430-opplæringen.
Nødvendige materialer:
- MSP430
- DS3231 RTC-modul
- POTTE -10k
- LCD-modul 16 * 2
- Koble ledninger
- Brettbrett
Hva er RTC ??
DS3231 er en RTC- modul (Real Time Clock). Den brukes til å opprettholde dato og tid for de fleste av elektronikkprosjektene. Denne modulen har sin egen myntcelle strømforsyning ved hjelp av hvilken den opprettholder dato og klokkeslett selv når hovedstrømmen er fjernet eller MCU har gått gjennom en hard tilbakestilling. Så når vi har satt dato og klokkeslett i denne modulen, vil den alltid holde rede på det. Det er flere typer RTC ICer som DS1307, DS3231 etc.
Vi har tidligere brukt RTC med andre mikrokontrollere i prosjekter nedenfor:
Merk: Når du bruker denne modulen for første gang, må du stille inn dato og klokkeslett. Du kan også bruke RTC IC DS1307, vi har tidligere brukt DS1307 med Arduino.
Koble til DS3231 RTC med MSP430:
Kretsskjema for MSP430 mikrokontrollerbasert digital klokke er gitt nedenfor. Som tidligere fortalt fungerer DS3231 ved hjelp av I2C-kommunikasjon, så den vil ha en seriell klokke (SCL) og en Serial Data (SDA) -pinne som må kobles til I2C-pinnene på MSP430, som er pinnen 9 (PIN 2.1, SCL) og pin 10 (PIN 2.2, SDA).
MSP430 gir 3,3 V Vcc, men vi trenger 5 V for å koble den til LCD og RTC-modul. Så, vi vil bruke et hack, det er en genser tilgjengelig som heter TP1 i nærheten av USB-kabelkontakt. Du kan ta 5V derfra.
Kretsdiagram:
Programmering MSP430 for RTC-modul:
Her bruker vi Energia IDE til programmering. Det er det samme som Arduino IDE og enkelt å bruke. Hvis du er ny i MSP og energia, så gå igang med MSP ved å bruke Energia IDE. For å grensesnitt RTC-modul trenger vi bibliotek for dette kortet. Last ned RTC-biblioteket fra denne lenken og installer det.
Vi trenger også Wire (brukes til I2C-kommunikasjon) og liquidcrystal- biblioteker som er forhåndsinstallert i Energia IDE.
Komplett kode for denne MSP430 digitale klokken er gitt på slutten av denne artikkelen. Koden er enkel og lett forståelig. Her forklarer vi noen få deler av det.
Først må vi ta med nødvendige biblioteker.
Biblioteket nedenfor er for I2C-kommunikasjon mellom RTC-modulen og MSP430. SDA- og SCK-pinner er allerede definert i dette biblioteket, så vi trenger ikke å erklære disse pinnene separat.
#inkludere
Så har vi tatt med RTClib.h- biblioteket for RTC-klokke og LiquidCrystal.h for LCD-funksjoner.
# inkluderer "RTClib.h" # inkluderer
Etter dette må vi lage en forekomst for å initialisere RTC-modulen.
RTC_DS3231 rtc;
Lag deretter et utvalg av størrelse 7 og lagre alle syv dagene med navnet i.
char daysOfTheWeek = {"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"};
Her er Pins-erklæring av MSP430 som skal brukes av LCD-skjerm: (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);
I ugyldig oppsett () har vi initialisert grensesnittet til LCD-skjermen og RTC og spesifisert dimensjonene (bredde og høyde) på skjermen, begynn ()
må kalles før andre bibliotekkommandoer.
ugyldig oppsett () { lcd.begin (16, 2); lcd.setCursor (3,0); lcd.print ("RTC Clock"); forsinkelse (3000); lcd.clear (); rtc.begin (); // rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); }
Nå er tiden som vises på skjermen riktig, men det er et problem, hver gang du starter / tilbakestiller mikrokontrolleren, vil LCD-skjermen vise tidspunktet da du lastet opp koden. Dette er fordi funksjonen rtc.adjust () har lagret tiden til datamaskinen din, så når du nullstiller, starter den med den tiden.
For å løse dette problemet, må du først laste opp programmet med funksjonen rtc.adjust () uten kommentarer. Kommenter umiddelbart samme linje og last opp programmet igjen. Nå er dato og klokkeslett angitt og vil ikke bli påvirket av tilbakestilling av mikrokontrolleren.
I loop- funksjonen tar vi dato og tid fra RTC-modulen og lagrer i den forhåndsdefinerte variabelen som heter nå og viser den på LCD-skjermen ved hjelp av lcd.print () -funksjonen.
ugyldig sløyfe () { DateTime now = rtc.now (); lcd.clear (); lcd.setCursor (3,0); lcd.print (now.day (), DEC); lcd.print ("/");…. …….
Fullstendig kode og video er gitt nedenfor.