Корзина пуста
Описание:
Является высокоточным энергонезависимым модулем, который можно использовать в таких проектах как часы, будильник, секундомер и т.д. Также с его помощью можно организовать выполнение фнукций или иного кода по расписанию.
Характеристики:
Микросхема часов: DS3231
Напряжение питания: от 2.3 В до 5.5 В
Рабочая температура: от -40 ° C до + 85 ° C
Точность хода часов: ± 5ppm (± 0.432 сек/день)
Резервное питание: LiPo аккумулятор
Параметры времени: часы и календарь. Включая секунды, минуты, часы, дни, дату, месяц и год до 2100 с учетом високосного года
Сигналы календаря: два сигнала
Цифровые выходы: 1 Гц и 32.768 кГц
Интерфейс: I2C 400 кГц
Адрес устройства: 0x68
Точность датчика температуры: ± 3 ° С
Примечание:
Подключение к Arduino UNO
VCC – 5V
SDA – A4
SCL – A5
GND – GND
Подключение к Arduino Mega
VCC – 5V
SDA – SDA
SCL – SCL(21)
GND – GND(22)
Подключение к Arduino к Raspberry Pi 3 b+
VCC – 5V
SDA – 27
SCL – 28
GND – GND
Прошивка для установки времени часов:
#include <DS1307RTC.h>
#include <Time.h>
#include <Wire.h>
String inSer = "";
boolean strFull = false;
tmElements_t datetime;
void setup() {
Serial.begin(9600);
}
void loop() {
// пришли данные по serial
if (strFull) {
datetime.Hour=(int(inSer[11])-48)*10+(int(inSer[12])-48);
datetime.Minute=(int(inSer[14])-48)*10+(int(inSer[15])-48);
datetime.Second=(int(inSer[17])-48)*10+(int(inSer[18])-48);
datetime.Day=(int(inSer[0])-48)*10+(int(inSer[1])-48);
datetime.Month=(int(inSer[3])-48)*10+(int(inSer[4])-48);
datetime.Year=CalendarYrToTm((int(inSer[6])-48)*1000+(int(inSer[7])-48)*100+(int(inSer[8])-48)*10+(int(inSer[9])-48));
RTC.write(datetime); // записать данные в DS3231
// очистить строку
inSer = "";
strFull = false;
}
// получение данных из ds3231
if (RTC.read(datetime)) {
print2(datetime.Hour, ":");
print2(datetime.Minute, ":");
print2(datetime.Second, " ");
print2(datetime.Day, "/");
print2(datetime.Month, "/");
print2(tmYearToCalendar(datetime.Year) ,"");
Serial.println();
}
else {
Serial.print("error");
delay(5000);
}
delay(1000);
}
void print2(int nn,String str) {
if (nn >= 0 && nn < 10)
{ Serial.print("0");}
Serial.print(nn);
Serial.print(str);
}
void serialEvent() {
while (Serial.available()) {
// получить очередной байт:
char c = (char)Serial.read();
// добавить в строку
inSer += c;
// /n - конец передачи
if (c == '\n')
{ strFull = true;}
}
}
Пример установки модуля часов на Raspberry Pi. на канале RoboShop:
Пример использования на канале Alexgyver:
Полезные ссылки:
Datasheet:
Габариты (Д х Ш х В):
19мм х 14мм х 13мм
Вес:
2.4г.
Сообщения не найдены