Модуль Arduino RTC показывает альтернативную информацию

Поэтому я попытался сделать ЖК-часы реального времени Arduino, используя RTC DS1302.

Он работает и правильно считывает время, хранящееся в RTC, но каждую секунду отображает пустые наборы данных.

Вот снимок последовательного монитора и эскиз

Я не могу найти проблему.

Это может быть из самой библиотеки, но я получил это из видео, которое, похоже, отлично работает в видео.

Я новичок в этой среде, поэтому любая помощь очень ценится. Вот мой набросок.

#include <DS1302.h>
#include <Wire.h>  
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
DS1302 rtc(2, 3, 4);

void setup()
{
  rtc.halt(false);
  rtc.writeProtect(false);
  lcd.begin(16, 2);
  Serial.begin(9600);
}

void loop()
{
  lcd.setCursor(4, 0);
  lcd.print(rtc.getTimeStr());
  Serial.print(rtc.getTimeStr());
  lcd.setCursor(0, 1);
  lcd.print(rtc.getDOWStr(FORMAT_SHORT));
  Serial.print(rtc.getDOWStr(FORMAT_SHORT));
  lcd.setCursor(6, 1);
  lcd.print(rtc.getDateStr());
  Serial.println(rtc.getDateStr());
  delay (1000);
}

Библиотека DS1302


person Christan Shane Plaza    schedule 04.03.2017    source источник


Ответы (2)


Я только начал играть с Arduino и у меня было то же самое? проблема с платой DS1302 RTC, входящей в комплект. Я использую библиотеку DS1302RTC (автор Тимур Максимов, 2014?).

В моем случае я сузил проблему до блока питания.

Я уменьшил цикл задержки до 100 мс и заметил, что данные повреждаются каждую секунду. т.е. я получил 8-9 хороших чтений, сопровождаемых 8-9 поврежденными повторными чтениями.

Если я получаю питание напрямую от платы Uno, все работает нормально. Когда я беру питание от рельсов на своем b/board, он снова играет. (повторяемый)

Я также подумал о том, будут ли помехи в последовательных кабелях, но, похоже, это не имело значения, скручивал ли я кабели вместе или выбирал большое расстояние для контактов.

Ответил здесь, если это работает для других. Google говорит мне, что проблема довольно распространена, но не предлагает много решений.

person willp    schedule 08.06.2018
comment
Большое спасибо за этот дополнительный вклад! Проголосую за это, чтобы другие тоже могли видеть. - person Christan Shane Plaza; 01.07.2018

Я сдался и просто решил вместо этого использовать другую библиотеку. Похоже проблема кроется в самой библиотеке.

Я пытался удалить все, что связано с LCD, это не сработало. Я попытался удалить все, что связано с Serial, но все равно не помогло.

Я использовал другую библиотеку, и теперь она у меня работает!

Новая библиотека, которую я использовал

person Christan Shane Plaza    schedule 06.03.2017