TinyRTC v1.1 на DS1307Z

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Сегодня получил на почте TinyRTC v1.1

TinyRTC v 1.1

Как его правильно подключить к Arduino nano v 3.0 , по какой схеме ??? 

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

С подключением разобрался, интересует еще что за контакты "DS" и "SQ"  ????

 

maksim
Offline
Зарегистрирован: 12.02.2012

Так кто ж его знает кроме вас что это за контакты, ссылкой на описание только вы обладаете. Но если эта схема на ваш модуль, то DS - интерфейстный вывод DS18B20 - то есть 1-wire, а QS - вывод генератора DS1307.

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Скетч заливается, все ок.

// DS1307_Serial_Easy (C)2010 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// A quick demo of how to use my DS1307-library to 
// quickly send time and date information over a serial link
//
// I assume you know how to connect the DS1307.
// DS1307:  SDA pin   -> Arduino Digital 4
//          SCL pin   -> Arduino Digital 5

#include <DS1307.h>

// Init the DS1307
DS1307 rtc(4, 5);

void setup()
{
  // Set the clock to run-mode
  rtc.halt(false);
  
  // Setup Serial connection
  Serial.begin(9600);

  // The following lines can be commented out to use the values already stored in the DS1307
  rtc.setDOW(SUNDAY);        // Set Day-of-Week to SUNDAY
  rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(3, 10, 2010);   // Set the date to October 3th, 2010
}

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating :)
  delay (1000);
}

но когда открываю сериал порт то 

xxxxxxxxx 00.00.2000 -- 00:00:85
xxxxxxxxx 00.00.2000 -- 00:00:85
xxxxxxxxx 00.00.2000 -- 00:00:85

и все, провода местами менял, пропаяно все супер --- не могу понять в чем проблема ...

подключал к Р2 Header5 по схеме даной Максимом

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Сорри !!! Все работает !!! Код правильный такой!!!

#include <DS1307.h>

// Init the DS1307
DS1307 rtc(A4, A5);

void setup()
{
  
  rtc.halt(1);
  
  // Setup Serial connection
  Serial.begin(57600);

  // The following lines can be commented out to use the values already stored in the DS1307
  rtc.setDOW(SUNDAY);        // Set Day-of-Week to SUNDAY
  rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(3, 10, 2010);   // Set the date to October 3th, 2010
  // Set the clock to run-mode
  rtc.halt(false);
}

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating :)
  delay (1000);
}

 

maksim
Offline
Зарегистрирован: 12.02.2012
inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Спасибо, сам увидел )))

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

В моем коде тоже все работает после замены строки 

DS1307 rtc(4, 5);

на строку 

DS1307 rtc(A4, A5);

 

maksim
Offline
Зарегистрирован: 12.02.2012

Ваша библиотека программно организует I2C шину на тех выводах, на которых и так уже есть хардовый I2C - что есть криво.
Это как програмно организовывать UART на хардовых выводах: 

SoftwareSerial mySerial(0, 1);

что есть тоже криво.

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

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

А как тогда правильно ??? Без библтотеки ??? Или другие пины использовать ???

 

maksim
Offline
Зарегистрирован: 12.02.2012

Ссылка выше. http://www.arduino.cc/en/Reference/Wire Если нет возможности использовать аппаратный модуль, например по причине занятых выводов ,то тогда приходится применять программные средства.

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Максим, еще один вопрос  ---  когда открываю сериал отображается ход времени, часы идут пока не закрою сериал монитор порта, и при повторном открытии отсчет времени начинается с самого начала ( точнее с установленого времени) , и так постоянно. Батарейка нормальная, пробовал менять --- все тоже самое , не могу понять в чем проблема . За запуск хода часов отвечает я так понимаю rtc.halt(false); 

maksim
Offline
Зарегистрирован: 12.02.2012

Так вы строку rtc.setTime(12, 0, 0); закомментируйте.

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Спасибо большое, разобрался )))