پروژه ساعت و تاریخ با لانچ پد MSP430 و ماژول DS3231
محتویات
در این پروژه ماژول زمان واقعی RTC DS3231 را به لانچ پد MSP430 متصل میکنیم و ساعت و تاریخ را در ال سی دی کاراکتری نمایش میدهیم. اگر در زمینه لانچ پد ها تازه کار هستید، آموزش های لانچ پد MSP430 را بررسی کنید. همچنین بقیه پروژه های ساعت و پروژه های تاریخ ما را ببینید.
فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.
مدار اتصال DS3231 به MSP430
شماتیک مدار برای ساعت دیجیتال مبتنی بر میکروکنترلر MSP430 در زیر آورده شده است. DS3231 به کمک ارتباطات I2C کار می کند ، بنابراین دارای یک سریال ساعت (SCL) و یک داده سریال (SDA) است که باید به پین های I2C در MSP430 ما وصل شود که پین 9 (PIN 2.1,SCL) و پین 10 (PIN 2.2,SDA) هستند.
MSP430 به ما 3.3 ولت Vcc می دهد اما برای اتصال آن به ماژول LCD و RTC به 5 ولت نیاز داریم. بنابراین ، ما از یک ترفند استفاده خواهیم کرد ، یک اتصال دهنده به نام TP1 در نزدیکی کانکتور کابل USB وجود دارد. می توانید 5 ولت را از آنجا بگیرید.
ماژول DS3231 چیست؟
DS3231 یک ماژول RTC = Real Time Clock است و برای حفظ تاریخ و زمان برای اکثر پروژه های الکترونیک استفاده می شود. این ماژول دارای منبع تغذیه باتری سکه ای خاص خود است که با استفاده از آن تاریخ و زمان را حتی در صورت حذف برق اصلی یا میکروکنترلر، حفظ می کند.
توجه: هنگام استفاده از این ماژول برای اولین بار باید تاریخ و زمان را تنظیم کنید. همچنین می توانید از RTC IC DS1307 استفاده کنید.
قطعات مورد نیاز
- MSP430
- ماژول DS3231 RTC
- پتانسیومتر 10 کیلو اهم
- ال سی دی کاراکتری 16*2
همچنین پروژه ساعت باینری با آردوینو را مشاهده کنید.
برنامه نویسی MSP430 برای ماژول RTC:
در اینجا ما از Energia IDE برای برنامه نویسی استفاده می کنیم. این کامپایلر کاملا شبیه به Arduino IDE است و کار با آن آسان است. اگر این زمینه تازه وارد هستید، آموزش برنامه نویسی لانچ پد با Energia را مشاهده کنید. برای اتصال ماژول RTC برای این برد MSP430 ما به کتابخانه RTC احتیاج داریم. دانلود کتابخانه DS3231
ما همچنین به کتابخانه Wire (مورد استفاده برای ارتباط I2C) و کتابخانه های LiquidCrystal احتیاج داریم که به صورت پیشفرض در Energia نصب هستند. کد کامل این پروژه در انتهای صفحه قرار داده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم.
اول از همه ما کتابخانه های مورد نیاز را فراخوانی میکنیم.
در زیر کتابخانه برای ارتباط I2C بین ماژول RTC و MSP430 قرار دارد. پین های SDA و SCK قبلاً در این کتابخانه تعریف شده اند ، بنابراین لازم نیست که این پین ها را به طور جداگانه اعلام کنیم.
#include <Wire.h>
سپس ما برای توابع LCD کتابخانه LiquidCrystal.h و برای ساعت RTC و RTClib.h را درج کرده ایم.
#include "RTClib.h" #include <LiquidCrystal.h>
سپس ما یک Obejct برای راه اندازی ماژول زمان واقعی تعریف میکنیم.
RTC_DS3231 rtc;
سپس آرایه ای با اندازه 7 میسازیم و 7 روز هفته را در آن قرار میدهیم.
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
سپس پین های MSP430 که به ال سی دی متصل هستند را تعریف میکنیم.
LiquidCrystal lcd(8 ,6, 7,11,12,13);
در void setup ()
، ما ال سی دی را پیکربندی میکنیم و پیام مقدمه را نمایش میدهیم و سپس کار ماژول DS3231 را شروع میکنیم.
void setup () { lcd.begin(16, 2); lcd.setCursor(3,0); lcd.print("RTC Clock"); delay(3000); lcd.clear(); rtc.begin(); // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); }
توجه: مطمئن شوید که ساعت رایانه شما در زمان بارگذاری کد در برد msp430 صحیح باشد.
اکنون ، زمان نشان داده شده در صفحه نمایش صحیح است اما مشکلی پیش می آید که، هر بار که میکروکنترلر خود را مجدداً ریستارت کنید یا مجدداً تنظیم مجدد کنید ، LCD زمان بارگذاری کد را نشان می دهد. این امر به این دلیل است که تابع rtc.adjust ()
زمان رایانه شما را ذخیره کرده است ، بنابراین هنگام ریستارت ، از همان زمان شروع می شود.
برای رفع این مشکل ، ابتدا برنامه را با عملکرد rtc.adjust ()
بدون //
بارگذاری کنید. سپس بلافاصله دوباره //
را قرار دهید و برنامه را دوباره بارگذاری کنید.
در تابع void loop ()
از ماژول RTC زمان و تاریخ را می گیریم و در متغیر از پیش تعریف شده به نام now ذخیره می کنیم و با استفاده از عملکرد lcd.print ()
آن را روی LCD نمایش می دهیم.
void loop () { DateTime now = rtc.now(); lcd.clear(); lcd.setCursor(3,0); lcd.print(now.day(), DEC); lcd.print("/");…. …….
به این ترتیب ما یک پروژه ساعت و تاریخ را با لانچ پد MSP430 راه اندازی کردیم.
موارد موجود در فایل : سورس کامل ، شماتیک
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود