Прикупил такой девайс https://ru.aliexpress.com/item/In-s...-Cable-for-Arduino-Wholesale/32606470192.html скачал библиотеку https://github.com/msparks/arduino-ds1302 библиотека не суть, всякие пробывал результат один время устанавливается через код батарейка работает время идет с питанием или без (автономно) проблема в том что я не могу прочитать время какието прыгающие цыфры считываются отключаю провод GND (земля) время считывается отлично вплоть до секунд, но часы не ходят подключаю землю, опять каша в переменных при считывании, но часы идут потомучто отлючаю землю, считываю время, вижу разницу что это может быть, как земля может портить получение данных? часы по идее работают у меня но прочитать данные я могу только при отлюченной GND, при этом часы просто останавливаются перепробывал кучу библиотек
Секундочку, если батарея стоит, но GND не подключен к ардуино, то часы останавливаются? Схему подключения и программу - в студию.
вру, время никогда не останвливается GND отключаю, время начинает считыватся адекватно, время не останавливается, но значения при считывании не изменяюся, считывается правильное время но перестает обновляться, вижу время на момент отключения земли подключил таимер стандартно, как в учебниках написано питание 5 вольт, остальное по пинам короче если я хочу считать время я должен подключить и отключить землю и тогда я получу новое время на момент отключения земли
Ну тогда два варианта: или модуль бракованный, или ... руки. Есть подозрение, что перепутано подключение ножек.
решил проблему надо читать первоисточник запоминайте DS1302 надо запитывать через пины http://playground.arduino.cc/Main/DS1302RTC через них подаем напряжение Код (C++): // Activate RTC module digitalWrite(DS1302_GND_PIN, LOW); pinMode(DS1302_GND_PIN, OUTPUT); digitalWrite(DS1302_VCC_PIN, HIGH); pinMode(DS1302_VCC_PIN, OUTPUT); и вуаля все работает из минусов.... целых два пина заняты под питание! пысы на питание с платы я подавал 5 вольт, 3 вольта... может просто меньше надо подавать... сколько там в пинах поиду проверю
сам в шоке... вольтаж через пины практически такойже... ардуино уно китайский развешто стоит прослоичка Troyka-Shield... вроде тоже не преступление может там питание с платы с какойто частотой передается..... осцилографа под рукой нет жалко конечно два пина заняты, но пока не критично работает и работает
Дабы не плодить новую тему, спрошу тут. Часы DS1302 убегают приблизительно на 2 минуты в день вперед. Кварц перепаял из материнской платы - эффекта нет. Что то еще можно сделать или только программно корректировать?
Две минуты это много. Можно проверить чистоту пайки и дорожек, может где-то сопля висит и создает паразитную емкость. Также проверить контакты микросхемы, если она она там в кроватке стоит. ну и микросхему поменять попробовать в крайнем случае.
Странный порядок какой то. Код (C++): digitalWrite(DS1302_GND_PIN, LOW); pinMode(DS1302_GND_PIN, OUTPUT); digitalWrite(DS1302_VCC_PIN, HIGH); pinMode(DS1302_VCC_PIN, OUTPUT);
Хорошо бы все канавки проверить с лупой и зубочисткой, чтобы нигде волосков или капелек олова не оставалось. можно еще попробовать корпус кварцевого резонатора на GND подпаять, только аккуратно, чтоб не перегреть корпус. Если не поможет, тогда пробовать саму микросхему заменить. P.S. А вообще DS3132 в этом плане получше, все внутри.
Сделать программную корректировку. Каждую, например, полночь откатывать время на сколько там нужно назад. А вообще я бы новый RTC купил.
Если я правильно помню, модуль 1020 нужно запитывать с резистором в разрыве GND, сам удивился, но без резистора время считывалось через раз. Номинал не помню, то ли 1к, то ли 10к. Именно на GND а не VCC.
Думаю замена микросхемы может все прояснить. Снаружи косяк или внутри. Ну и батарейка там стоит, наверно, хорошая и запаяна хорошо?! У меня практически такой же модуль стоит. Убегает конечно, но это недели и месяцы.