добрый день. Зависает Ардуино loop serial. При этом не важно что подключаю через I2C. Пробовал модуль часов, если питания нет то висит.. подключение идет через пины SCL A5 SDA A4 при нажатии reset setup срабатывает. Сейчас хочу подключить плату как на картинке. Как подключить I2C чтоб он не зависал в случае обрыва питания. Получается как бы замыкание на A4 A5
Можно подробнее. Смотреть в библиотеках или скетче? Просто скетч ничего нет. #include <Wire.h> #include "RTClib.h"
Не вы первый с модулем RTC бодаетесь. Что в вашей тайной системе зависает, можно только гадать. У меня Код (C++): #include <Wire.h> #include "RTClib.h" даже не компилируется.
Проблема не в RTC I2C Работает нормально, сейчас подключил к нему часы и барометр, оба работают. Проблема в зависании, при отключении питания. Тоесть либо VCC Либо GND отключаем и виснет сразу же цикл. Сегодня проверю на другом скетче, может виснет по другой причине.
От чего отключаем? От RTC модуля? Ну так и есть. Когда I2C устройство не работает нормально протокол зависает.
При проверке тестового скетча TFT LCD не зависает. Видимо какой то конфликт происходит, в этом протоколе у меня.
Собрал часы RTC. Выставил время и залил скетч из урока по RTC: Спойлер: Скетч Код (C++): #include <Wire.h> #include <TroykaRTC.h> // размер массива для времени с учётом завершающего нуля #define LEN_TIME 12 // размер массива для даты с учётом завершающего нуля #define LEN_DATE 12 // размер массива для дня недели с учётом завершающего нуля #define LEN_DOW 12 // создаём объект для работы с часами реального времени RTC clock; void setup() { // put your setup code here, to run once: Serial.begin(9600); // инициализация часов clock.begin(); // метод установки времени и даты в модуль вручную // clock.set(10,25,45,27,07,2005,THURSDAY); // метод установки времени и даты автоматически при компиляции // clock.set(__TIMESTAMP__); } void loop() { // put your main code here, to run repeatedly: // массив для хранения текущего времени char time[LEN_TIME]={0}; // массив для хранения текущей даты char date[LEN_DATE]={0}; // массив для хранения текущего дня недели char dow[LEN_DOW]={0}; // запрашиваем данные с часов clock.read(); // сохраняем текущее время в массив time clock.getTimeStr(time); // сохраняем текущую дату в массив date clock.getDateStr(date); // сохраняем текущий день недели в массив dow clock.getWeekDayStr(dow); // выводим в serial порт текущее время, дату и день недели Serial.print(time); Serial.print("--"); Serial.print(date); Serial.print("--"); Serial.println(dow); // ждём одну секунду delay(1000); } Когда отключаю батарейку и + резервного питания повисает в воздухе скетч выдает хлам, хотя часы продолжают считать время и после подключения батарейки на место работа восстанавливается: