Top.Mail.Ru
Ответы

Проблема в коде при программировании на ардуино уно

При следующем коде:
#include "Wire.h"
#include "iarduino_RTC.h"
iarduino_RTC time(RTC_DS1302,7,6,8); // для модуля DS1307 с i2C


#include "LiquidCrystal_I2C.h" // подключаем библиотеку для дисплея
LiquidCrystal_I2C LCD(0x27,16,2); // присваиваем имя дисплею

void setup() {
delay(300);
LCD.init(); // инициализация LCD дисплея
LCD.backlight(); // включение подсветки дисплея
time.begin();
time.settime(0, 30, 18, 12, 6, 20, 5); // 0 сек, 30 мин, 18 часов, 12, июня, 2020, четверг
}

void loop() {
// если прошла 1 секунда выводим время на дисплей
if (millis() % 1000 == 0) {
LCD.setCursor(0,0);
LCD.print(time.gettime("d M Y, D"));
LCD.setCursor(4,1);
LCD.print(time.gettime("H:i:s"));
delay(1);
}
}

12
 показывает не введённое время, а 45 декабря, 2099 год, суббота, 45:85:85
в чём ошибка? в инете пишут что покопайтесь в строчке iarduino_RTC time(RTC_DS1302,7,6,8); я пробовал менять порядок пинов, безрезультатно. помогите прошу, заранее спасибо 
По дате
По рейтингу
Аватар пользователя
Новичок
1мес

Что происходит:

ТЫ написал: iarduino_RTC time(RTC_DS1302,7,6,8);

При этом в комментарии написал: "для модуля DS1307 с i2C".

Проблема:

DS1307 — это I2C-устройство.
А он его пихает через режим подключения для DS1302 (три провода, не I2C).

Это вообще разные протоколы!

Поэтому библиотека ждёт сигналы на "ножках" 7,6,8, а с модуля ничего не приходит.
И в итоге чип считает себя счастливым хозяином помойки: "45 декабря, 2099 год, суббота, 85 секунд в минуте" — нормальный исход для глючного подключения.

Как правильно:

Для DS1307 нужно писать создание объекта без всяких указаний пинов.
Вот так:

1
 iarduino_RTC time(RTC_DS1307);  

И всё.

Никаких пинов указывать не надо!
DS1307 сидит на шине I2C — он общается через стандартные SDA/SCL (на Uno это A4 и A5).

Аватар пользователя
Просветленный
1мес

Ты специально вывел код обычным текстом, а комментарий - кодовым окном, чтобы и код было х_во видно, и коммент для прочтения пришлось скролить? Очень удобно, спасибо, оценил.

Аватар пользователя
Знаток
1мес

Пздц какой то