Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Мастерство работы с RTC DS3231 на Arduino: пошаговое руководство

В этом уроке Arduino мы научимся использовать модуль реального времени DS3231. Вы можете посмотреть следующее видео или прочитать письменное руководство ниже.

Обзор

Первый вопрос, который возникает здесь: зачем нам нужен отдельный RTC для проекта Arduino, когда у самого Arduino есть встроенный таймер? Суть в том, что модуль RTC работает от батареи и может отслеживать время даже если мы перепрограммируем микроконтроллер или отключим основное питание.

Мастерство работы с RTC DS3231 на Arduino: пошаговое руководство

Модуль реального времени DS3231

DS3231 — это недорогой, высокоточный модуль реального времени, который может поддерживать часы, минуты и секунды, а также день, месяц и год. Также он имеет автоматическую компенсацию високосных годов и месяцев с менее чем 31 днем.

Мастерство работы с RTC DS3231 на Arduino: пошаговое руководство

Модуль может работать от 3,3 или 5 В, что делает его подходящим для многих платформ разработки или микроконтроллеров. Вход батареи — 3 В, и типичная батарея CR2032 3 В может запитывать модуль и сохранять информацию более года.

Модуль использует протокол связи I2C, что делает подключение к плате Arduino очень простым.

Вот схема подключения:

Мастерство работы с RTC DS3231 на Arduino: пошаговое руководство

Нам нужно всего 4 провода: VCC и GND для питания модуля, и два вывода I2C — SDA и SCL.

Компоненты, необходимые для этого урока Arduino, можно найти по ссылкам ниже:

  • Модуль реального времени DS3231……………..
  • Плата Arduino ……………………………
  • Безпаечная макетная плата и перемычки ………

Программирование

После подключения модуля нужно запрограммировать плату Arduino для работы с модулем реального времени. Однако, когда речь идет о программировании связи между Arduino и I2C-модулем, код не так мал и прост. К счастью, в интернете уже есть несколько библиотек для RTC DS3231.

Для этого урока я выбрал библиотеку, созданную Хеннингом Карлсеном, которую можно найти и скачать с его сайта www.rinkydinkelectronics.com.

После скачивания и установки библиотеки можно использовать её первый демонстрационный пример для первоначальной активации часов RTC-модуля. В разделе setup демонстрационного примера кода можно заметить три строки, которые нужно раскомментировать, чтобы первоначально установить день недели, время и дату.

// Код из Demo Example библиотеки DS3231
void setup() {
  Serial.begin(115200);
  // Uncomment the next line if you are using an Arduino Leonardo
  //while (!Serial) {}
  rtc.begin();
  // Следующие строки можно раскомментировать для установки даты и времени
  //rtc.setDOW(WEDNESDAY); // Установить день недели на СРЕДУ
  //rtc.setTime(12, 0, 0); // Установить время на 12:00:00 (24-часовой формат)
  //rtc.setDate(1, 1, 2014); // Установить дату на 1 января 2014
}Язык кода: Arduino (arduino)

Первая строка устанавливает день недели, вторая — время в часах, минутах и секундах, третья — дату в днях, месяцах и годах.

После загрузки этого кода нужно закомментировать обратно эти три строки и загрузить код снова.

// Код из Demo Example библиотеки DS3231
void loop() {
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");
  Serial.println(rtc.getTimeStr());
  delay(1000);
}Язык кода: Arduino (arduino)

Если посмотреть на раздел loop кода, можно увидеть, что теперь, используя три пользовательские функции, мы получаем информацию от RTC и выводим её в монитор последовательного порта. Вот как это выглядит в мониторе последовательного порта.

Мастерство работы с RTC DS3231 на Arduino: пошаговое руководство

Теперь, даже если мы отключим питание Arduino, а затем снова подключим и запустим монитор последовательного порта, мы заметим, что время продолжает идти без сброса.

Теперь у нас есть работающие часы реального времени, и мы можем использовать их в любом проекте Arduino. В качестве второго примера я подключил LCD к Arduino и вывел на него время и дату.

Мастерство работы с RTC DS3231 на Arduino: пошаговое руководство

Вот исходный код этого примера:

/*
 * Arduino DS3231 Real Time Clock Module Tutorial
 * Created by Dejan Nedelkovski,
 * www.HowToMechatronics.com
 * DS3231 Library made by Henning Karlsen which can be found and downloaded from his website, www.rinkydinkelectronics.com.
 */
#include <DS3231.h>
#include <LiquidCrystal.h>
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
void setup() {
  rtc.begin();
  lcd.begin(16,2);
}
void loop() {
  lcd.setCursor(0,0);
  lcd.print("Time: ");
  lcd.print(rtc.getTimeStr());
  lcd.setCursor(0,1);
  lcd.print("Date: ");
  lcd.print(rtc.getDateStr());
  delay(1000);
}Язык кода: Arduino (arduino)

Это всё для этого урока Arduino. Не стесняйтесь задавать любые вопросы в разделе комментариев ниже.


Производственный процесс

  1. Arduino POV-часы: сборка дисплея на эффекте сохранения образа
  2. Создание надежного RFID-замка на Arduino — пошаговое руководство
  3. Создание пользовательских LED-часов с будильником — видно с 12 метров
  4. Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
  5. Сборка Берлинских часов на Arduino UNO — LED-матричные часы своими руками
  6. Цифровые часы на TM1637 с настройкой времени и будильником — прототип на Arduino Nano
  7. eDOT: точные Arduino-часы и метеостанция с встроенным ИК-пультом
  8. Arduino погодные часы реального времени: OLED-дисплей для времени, даты и температуры
  9. Проект датчика отпечатков пальцев на Arduino Nano – Пошаговое руководство
  10. Робот в реальном времени обнаруживает 3D-изменения и повышает безопасность солдата через AR