- Необхідні матеріали:
- Що таке RTC ??
- Підключення DS3231 RTC до MSP430:
- Програмування MSP430 для модуля RTC:
У цьому підручнику ми створимо цифровий годинник, зв’язавши модуль RTC DS3231 з MSP430 та відобразивши час та дату на РК-дисплеї 16x2. MSP-EXP430G2 - це Інструмент розробки, який також називається LaunchPad, наданий Texas Instruments для вивчення та практики використання мікроконтролерів. Ця плата підпадає під категорію MSP430 Value Line, де ми можемо запрограмувати всі мікроконтролери серії MSP430. Якщо ви новачок у MSP, перегляньте наш посібник із початку роботи з MSP430.
Необхідні матеріали:
- MSP430
- Модуль RTC DS3231
- POT -10k
- РК-модуль 16 * 2
- Підключення проводів
- Макет
Що таке RTC ??
DS3231 - це модуль RTC (Годинник реального часу). Він використовується для збереження дати та часу для більшості проектів з електроніки. Цей модуль має власний блок живлення для монетних клітин, за допомогою якого він підтримує дату та час, навіть коли основне живлення відключено або MCU пройшов жорсткий скидання. Отже, як тільки ми встановимо дату та час у цьому модулі, він буде відстежувати їх завжди. Існує кілька типів мікросхем RTC, таких як DS1307, DS3231 тощо.
Раніше ми використовували RTC з іншими мікроконтролерами в наведених нижче проектах:
Примітка: Під час першого використання цього модуля вам потрібно встановити дату та час. Ви також можете використовувати RTC IC DS1307, ми вже використовували DS1307 з Arduino.
Підключення DS3231 RTC до MSP430:
Схема електричного годинника на основі мікроконтролера MSP430 наведена нижче. Як вже говорилося раніше, DS3231 працює за допомогою зв'язку I2C, тому він матиме послідовний годинник (SCL) та штифт послідовних даних (SDA), які повинні бути підключені до висновків I2C на нашому MSP430, який є контактом 9 (PIN 2.1, SCL) і контакт 10 (PIN 2.2, SDA).
MSP430 видає 3,3 В. Отже, ми використаємо хакер, біля перехідника USB-кабелю є перемичка з назвою TP1. Ви можете взяти 5V звідти.
Кругова діаграма:
Програмування MSP430 для модуля RTC:
Тут ми використовуємо Energia IDE для програмування. Він такий самий, як Arduino IDE, і простий у використанні. Якщо ви не знайомі з MSP та energia, тоді пройдіть початок роботи з MSP за допомогою Energia IDE. Для інтерфейсу модуля RTC нам потрібна бібліотека для цієї плати. Завантажте бібліотеку RTC за цим посиланням та встановіть її.
Нам також потрібні бібліотеки Wire (використовуються для зв'язку I2C) та бібліотеки liquidcrystal, які попередньо встановлені в Energia IDE.
Повний код цього цифрового годинника MSP430 подано в кінці цієї статті. Код простий і зрозумілий. Тут ми пояснюємо кілька його частин.
По-перше, ми повинні включити необхідні бібліотеки.
Нижче бібліотека призначена для зв'язку I2C між модулем RTC та MSP430. Висновки SDA та SCK вже визначені в цій бібліотеці, тому нам не потрібно оголошувати ці висновки окремо.
#включати
Потім ми включили бібліотеку RTClib.h для годинника RTC та LiquidCrystal.h для функцій РК.
#include "RTClib.h" #include
Після цього ми повинні створити екземпляр для ініціалізації нашого модуля RTC.
RTC_DS3231 rtc;
Потім зробіть масив розміром 7 і зберігайте всі сім днів із назвою.
char daysOfTheWeek = {"неділя", "понеділок", "вівторок", "середа", "четвер", "п'ятниця", "субота"};
Ось декларація контактів MSP430 для використання на РК-дисплеї: (RS (P2.0), EN (P1.4), D4 (P1.5), D5 (P2.3), D6 (P2.4), D7 (P2.5))
Рідкий кристал рідкий (8, 6, 7,11,12,13);
У незначної настройки () , ми инициализируется інтерфейс з РК - дисплеєм і RTC і вказані розміри (ширина і висота) дисплея, почати ()
повинна викликатися перед будь-якими іншими командами бібліотеки.
void setup () { lcd.begin (16, 2); lcd.setCursor (3,0); lcd.print ("Годинник RTC"); затримка (3000); lcd.clear (); rtc.begin (); // rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); }
Тепер час, показаний на дисплеї, правильний, але є проблема. Кожного разу, коли ви перезапускаєте / скидаєте мікроконтролер, на РК-дисплеї відображається час, коли ви завантажили код. Це пов’язано з тим, що функція rtc.adjust () зберігає час роботи вашого комп’ютера, тому при скиданні вона починається з цього часу.
Щоб вирішити цю проблему, спочатку завантажте програму з функцією rtc.adjust () без коментарів. Потім негайно прокоментуйте той самий рядок і завантажте програму знову. Тепер ваша дата та час встановлені, і це не вплине на скидання налаштувань мікроконтролера.
У функції циклу ми беремо дату та час з модуля RTC і зберігаємо у заздалегідь визначеній змінній, що викликається зараз, і відображаємо її на РК-дисплеї за допомогою функції lcd.print () .
void loop () { DateTime now = rtc.now (); lcd.clear (); lcd.setCursor (3,0); lcd.print (now.day (), DEC); lcd.print ("/");…. …….
Повний код та відео подано нижче.