Автономные часы, проблема с I2C, модулем rtc ds1307. Срочная помощь
- Войдите на сайт для отправки комментариев
Здравствуйте, заранее прошу прощения за большой текст, попытаюсь дать как можно больше инфы о проблеме.
Я собрала автономные часы, подключила всё так, как описано в статье |http://wiki.amperka.ru/arduino-projects:stand-alone-clock#автономные_часы|, прошила указанный скетч, но ничего не работает. Часы показывают 00 00, при нажатии кнопок ничего не происходит, точка-разделитель также не мигает. Ответьте, пожалуйста, очень срочно, в чём может быть проблема?
Подключено всё так, как описано, D-D, C-C, V-V, G-G, в том же месте Troyka-шилда, где это показано в статье. Батарейка новая, CR1225 от Трофи, вставлена в модуль с часами тоже точно так же, как описано в статье. Модуль с часами я покупала в Амперке, часы по типу DS1307. Только сама Arduino Uno была куплена на Озоне, но у меня с ней работали отлично простые часы, без модуля rtc.
В поисках решения проблемы я прочла, что можно попробовать отсканировать плату на I2C-устройства
|https://playground.arduino.cc/Main/I2cScanner/|, и если часы подключены, то выведется их адрес. У меня же вечный "scanning...", т.е. ничего не обнаруживается. Я пробовала подсоединить модуль с часами к области А Troyka-шилда, где тоже есть входы для D и C, но часы также не работают и сканер ничего не обнаруживает.
Помогите, пожалуйста, в чём может быть проблема? Может ли быть такое, что модуль с часами неисправен? или батарейка? или сама плата? Как это можно проверить и устранить проблему? Мне необходимо собрать эти часы, а впоследствии собрать бионический будильник. Питаю и прошиваю плату через COM-порт в ноутбуке.
Заранее спасибо за ответ и потраченное время. И предупрежу, что опыта у меня нет, делаю свой первый проект, первое физическое устройство на базе Arduino Uno. До этого всё обучение проходило в Tinkercad'e, и если по части кода я хоть в чём-то разбираюсь, то как решать такие проблемы я совершенно не знаю. Очень срочно.
С рождеством.
UPD: Пробовала прошить скетчи из примеров библиотеки iarduino_RTC.h (например, settime: |https://github.com/iarduino/iarduino_RTC/blob/master/iarduino_RTC/RTC_Trema_modul/settime/settime.ino|). Должно выводиться в монитор порта время с интервалом в одну секунду: день-месяц-год, час:минута:секунда, Месяц
Что выводится у меня: 00-00-2000, 00:00:00, Dec
бесконечно эта строка, без изменений, даже когда в settime устанавливается другое начальное время.
Также прошивала скетч отсюда: |https://github.com/amperka/TroykaRTC/blob/master/examples/testClock/testClock.ino|. Он написан специально для моего модуля часов реального времени, должен также выводить дату, но в моём случае ничего не происходит.
Собрано всё так, как указано в статье Амперки, но фотографию прикреплю на всякий случай:
У меня дежавю ))
http://arduino.ru/forum/programmirovanie/bionicheskii-budilnik
Самое простое - протыкать контакты мультиметром.
Для начала я бы оставил на шилде только одни часы и просканировал их скетчем I2C-scaner. Если есть провода типа dupont - подключил бы модуль часов напрямую к плате Arduino. Исправность батареи на ход часов во включенном состоянии не влияет.
Обратите внимание на следующее примечание: http://wiki.amperka.ru/products:arduino-troyka-slot-shield : "При коммуникации с управляющими платами с большим USB разъёмом, контакты Troyka Shield могут замкнутся между собой. Для решение проблемы наклейте пару слоёв изоленты на коннектор USB."
Можно просто картонку просунуть между разъемом USB и шилдом.
Да, первоначальный текст сообщения с поломанными ссылками был залит одним из представителей моих заботливых родителей в какой-то другой форум. Возможно, вы видели его там.
У вас есть какие-либо советы? Как можно было бы удостовериться в неработоспособности модуля с часами? Ибо в подключении у меня сомнений нет, на фотографии всё видно в общем-то, точно по указаниям. Я хотела заказать другой модуль, но если проблема здесь не в нём, то это обернётся в пустую трату денег.
Для начала я бы оставил на шилде только одни часы и просканировал их скетчем I2C-scaner.
Здравствуйте! Спасибо за отклик, указанное я как раз-таки проделала, причём в разных пригодных зонах шилда, но сканер нигде не обнаружил I2C устройств.
Если есть провода типа dupont - подключил бы модуль часов напрямую к плате Arduino.
Да, действительно есть, этого я ещё не пробовала, сделаю прямо сейчас. Спасибо большое.
Ну а остальные модули, кроме часов работают? На видео часы работают и без модуля RTC.
Да, первоначальный текст сообщения с поломанными ссылками был залит одним из представителей моих заботливых родителей в какой-то другой форум. Возможно, вы видели его там.
Они уже и заказ в платном разделе сделали ))))
воткните модуль в слот А и посмотрите
Остальные модули, кроме модуля реальных часов, работают.
У меня, конечно, есть план Б: заменить этот модуль на модуль кнопок, если не удастся решить проблему, и сделать схожий проект. Вместо будильника с точными часами сделать будильник с настройкой времени с помощью кнопок, но зато реализовать установку времени пробуждения с помощью второго модуля кнопок (потому что в текущем проекте время пробуждения устанавливается программно, мне это показалось неудобным в бытовой эксплуатации, а вот несбивающееся время не так уж необходимо, ибо дома всегда можно узнать текущее время и настроить будильник, если тот был отключён от питания).
Но проблема в том, что времени мало, проект нужно будет сдать 18 января, подготовив презентацию и материалы сверх самого устройства, поэтому хочется решить проблему с модулем часов, если она легко решаема и идти дальше.
Но если проблема не решится, то да, остальные компоненты работают, и другой план имеется.
Здравствуйте, пожалуйста, прочтите выше. Я втыкала этот модуль в слоты A-B-C, но ни в одном I2C-scanner ничего не обнаружил. Спасибо за отклик!
Авхах. Как раз-таки благодаря этой новости я залезла сюда сама, ибо уверена, что при исчерпывающем количестве информации о проблеме будут какие-либо "бесплатные" идеи, как можно ошибку найти и исправить.
Простим заботливым родительским сердцам их неосторожность и незнание :)
Какие же заботливые родители, всем бы таких.
Подсоединила напрямую к Ардуино.
Результат:
I2C Scanner
Scanning...
No I2C devices found
Подключала С-5, D-4, V-5V, G-Gnd. Не обнаружил.
C-A5, D-A4?
Извиняюсь, первоначально нет... Невнимательность.
Но сейчас подключила так, прошила - результат прежний: No I2C devices found.
Предварительный диагноз - модуль неисправен.
Дальше только мультиметром тыкать.
О чудо!!!
Я подложила картон и... Счастью нет предела.
В общем:
Scanning...
I2C device found at address 0x68 !
done
По памяти, я гуглила, это как раз адрес rtc и должен быть.
Огромное спасибо вам; и всем, кто пытался помочь. Выглядит сейчас это нелепо, но ерунда.
Большое спасибо, я застряла на этом ещё 3 дня назад, прошивала разные скетчи, чтобы понять, что происходит и почему - оказалось, нужно было лишь перечитать фрагмент статьи.
Думаю, можно считать тему закрытой, но если есть какие-то ещё советы, то пишите. Не могу перестать радоваться. Сейчас сразу попробую прошить скетч из той статьи.
Как то вы невнимательно читаете... sadman41 вам ещё в #2 об этом говорил.(
Нет, я обратила внимание, но старалась сразу отвечать на каждое сообщение, потом вот подсоединила напрямую часы к плате (это было тоже намного позже, чем совет поступил), сразу после этого отписала о результате и пошла за картоном :)
Спасибо вам тоже за отклик!
Кстати говоря, прошила скетч с сайта Амперки, и он работает. Завтра уже буду переписывать код и проовать другую библиотеку.
Что же он на проводках не сканировался...
китайский дюпон...
осталось проверить I2C точно отражен на все три посадочных места? по маркировке этого не скажешь, а на презентации чел об этом вещает