7.1. Подключение модуля DS3231 к плате Arduino MEGA. Вывод времени на экран дисплея
Рассмотрим подключение модуля часов реального времени DS3231 к плате Arduino MEGA.  Используем выводы Arduino MEGA 20 (SDA) и 21(SCL).
Схема соединений представлена на рис. 7.2.


 
Рис. 7.2. Схема подключения модуля DS3231 к плате Arduino MEGA

Сначала добавим вывод времени на экран дисплея (главное меню). Для программирования нам понадобятся Arduino-библиотеки Wire (встроенная в Arduino IDE), Time и DS1307RTC. В цикле будем получать данные о текущем времени (часы, минуты) с модуля DS3231 и выводить на экран дисплея.
Вносим дополнительный код в скетч. Подключаем библиотеки:

#include
#include
#include

Создаем переменную
tmElements_t tm;
Добавляем в скетч переменную для периодичности опроса модуоя RTC:
unsigned long millis3231;
И в основной цикл loop() добавляем код получения данных времени и вывода на экран дисплея (см. листинг 7.1).
Листинг 7.1

void loop() {   
   …………
  // показания RTC
  if(millis()-millisds3231 >= 5000 && screen==0) {
     set_display_data_RTC(BLACK);
     RTC.read(tm);
     set_display_data_RTC(MAGENTA);  // вывод на дисплей
     millisds3231=millis();
  }
……..
}
Процедура set_display_data_RTC() расположена в файле display.ino.
// вывести текущее значение для RTC
void set_display_data_RTC(unsigned int color) {
   tft.setTextSize(2);
   tft.setTextColor(color);  
   tft.setCursor(80, 50);
   if(tm.Hour<10)
      tft.print("0");
   tft.print(tm.Hour);
   tft.print(":");
   if(tm.Minute<10)
      tft.print("0");
   tft.print(tm.Minute);
 }


После загрузки скетча на плату Arduino на экране отображается реальное время, получаемое с модуля DS3231 (см. рис. 7.3).
 


Рис. 7.3. Вывод текущего времени на экран дисплея

Скачать данный скетч можно на сайте www.arduino-kit.ru по ссылке.




1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33 


Вверх