Go Down

Topic: DS3231 (Read 228 times) previous topic - next topic

kaaskopje

ik ben redelijk nieuw met arduino en ik probeer nu een tijd gestuurde motor te laten lopen met een DS3231 component.
ik gebruik de library DS3231.h

als ik de tijd instel op de chip gaat het helemaal goed ( ook als ik hem heel eventjes er uit haal)
maar zodra ik hem ongeveer 2 minuten uit mijn pc heb gedaan recet heel de chip zichzelf zou iemand kunnen zeggen waardoor dit komt?

ik gebruik het easy voorbeeld van de library

MAS3

#1
Sep 13, 2019, 11:08 pm Last Edit: Sep 14, 2019, 12:47 am by MAS3 Reason: Typo
Hoi kaaskopje, welkom.

Gebruik je een losse chip, of heb je een module ?
Een Dallas RTC heeft doorgaans een batterijtje nodig om z'n klokje tikkende te houden wanneer de spanning weg is, en dat is bij jouw DS3231 ook het geval.
Zo'n batterijtje heeft meestal 3 volt, en wanneer dat veel minder is, dan is ie leeg.
Die dingen zijn niet oplaadbaar dus in dat geval moet ie vervangen worden.

De modules zijn meestal wel voorzien van een batterijhouder en een batterij.
Maar wanneer de batterij al in de houder zit bij levering, dan zit er ook meestal een stukje plastic tussen zodat die batterij niet onnodig leeg getrokken word tijdens transport en opslag voor ie gebruikt word.
Dus kijk eens of dat bij jou niet ook het geval is.

Wanneer je de losse chip gebruikt, dan moet je dus een knoopcel aansluiten op pin 14; VBAT.

Voor het geval je dat interessant vind, hier (klik !) vind je de DS 3231 datasheet, waarin word uitgelegd hoe een en ander werkt.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

kaaskopje

Hoi kaaskopje, welkom.

Gebruik je een losse chip, of heb je een module ?
Een Dallas RTC heeft doorgaans een batterijtje nodig om z'n klokje tikkende te houden wanneer de spanning weg is, en dat is bij jouw DS3231 ook het geval.
Zo'n batterijtje heeft meestal 3 volt, en wanneer dat veel minder is, dan is ie leeg.
Die dingen zijn niet oplaadbaar dus in dat geval moet ie vervangen worden.

De modules zijn meestal wel voorzien van een batterijhouder en een batterij.
Maar wanneer de batterij al in de houder zit bij levering, dan zit er ook meestal een stukje plastic tussen zodat die batterij niet onnodig leeg getrokken word tijdens transport en opslag voor ie gebruikt word.
Dus kijk eens of dat bij jou niet ook het geval is.

Wanneer je de losse chip gebruikt, dan moet je dus een knoopcel aansluiten op pin 14; VBAT.

Voor het geval je dat interessant vind, hier (klik !) vind je de DS 3231 datasheet, waarin word uitgelegd hoe een en ander werkt.
bedankt voor je reactie,

ik heb de module met de batterij ook heb ik deze gecontroleerd of hij vol is (heb het ook met een andere ds3231 module geprobeerd) maars steeds na ongeveer 2 minuter recet de klok zichzelf.

ligt dit aan de library die ik gebruikt heb (ds3231.h) of waar kan dit nog meer aan liggen?
als het aan die library ligt weet iemand dan een andere die ook goed werkt?

mvg

MAS3

Hoi.

Het is een beetje lastig om de library de schuld te geven, als je nog nooit met die library gewerkt hebt.
Maar heel waarschijnlijk is het niet dat die library je probleem veroorzaakt, want je bent vast niet de eerste die die library gebruikt en als die problemen zou geven dan zou daar vast allang iets aan gedaan zijn.

Maar stel nou dat je net een heel nieuwe en nog niet volledig geteste versie zou hebben gevonden, dan kun je eens kijken of er ook nog een oudere versie is (natuurlijk eerst ff zien hoe oud jouw versie eigenlijk is).

Ik vermoed echter dat het probleem ergens in je sketch zit.
Om daar achter te komen, kun je jouw sketch hier laten zien.
Kopieer daarvoor de sketch voor het forum (dat vind je in de IDE onder het edit knopje in het menu), en plak dat hier in een antwoord tussen code tags:

[code] de code hier dus [/code]

Dan kan men hier eens kijken wat er allemaal in je sketch gebeurt en of dat daar iets in zit wat je probleem veroorzaakt.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

kaaskopje

Hoi.

Het is een beetje lastig om de library de schuld te geven, als je nog nooit met die library gewerkt hebt.
Maar heel waarschijnlijk is het niet dat die library je probleem veroorzaakt, want je bent vast niet de eerste die die library gebruikt en als die problemen zou geven dan zou daar vast allang iets aan gedaan zijn.

Maar stel nou dat je net een heel nieuwe en nog niet volledig geteste versie zou hebben gevonden, dan kun je eens kijken of er ook nog een oudere versie is (natuurlijk eerst ff zien hoe oud jouw versie eigenlijk is).

Ik vermoed echter dat het probleem ergens in je sketch zit.
Om daar achter te komen, kun je jouw sketch hier laten zien.
Kopieer daarvoor de sketch voor het forum (dat vind je in de IDE onder het edit knopje in het menu), en plak dat hier in een antwoord tussen code tags:

[code] de code hier dus [/code]

Dan kan men hier eens kijken wat er allemaal in je sketch gebeurt en of dat daar iets in zit wat je probleem veroorzaakt.

goedenavond,

ik heb de library via http://www.rinkydinkelectronics.com/library.php?id=73 gedownload
ik heb van de library de standaard easy code gebruikt

deze:
Code: [Select]

// To use the hardware I2C (TWI) interface of the Arduino you must connect
// the pins as follows:
//
// Arduino Uno/2009:
// ----------------------
// DS3231:  SDA pin   -> Arduino Analog 4 or the dedicated SDA pin
//          SCL pin   -> Arduino Analog 5 or the dedicated SCL pin

// The internal pull-up resistors will be activated when using the
// hardware I2C interfaces.
//
// You can connect the DS3231 to any available pin but if you use any
// other than what is described above the library will fall back to
// a software-based, TWI-like protocol which will require exclusive access
// to the pins used, and you will also have to use appropriate, external
// pull-up resistors on the data and clock signals.





//rode op 5v // zwart op ground // blauw helemaal links van aref en op scl // geel rechts van blauw en op sda

#include <DS3231.h>

// Init the DS3231 using the hardware interface
DS3231  rtc(SDA, SCL);

void setup()
{
  // Setup Serial connection
  Serial.begin(115200);

  // Initialize the rtc object
  rtc.begin();
 
  // The following lines can be uncommented to set the date and time
  //rtc.setDOW(THURSDAY);     // Set Day-of-Week to SUNDAY
  //rtc.setTime(12, 41,50 );     // Set the time to 12:00:00 (24hr format)
  //rtc.setDate(12, 9, 2019);   // Set the date to January 1st, 2014
}

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);
}
}


ik hoop hiermee dat je kan vinden waarmee ik zit

shooter

dat ligt toch echt aan het batterijtje of verbinding met een voeding.
paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

shooter

heb je bat ook aangesloten.
dat is een pin op de 3231
paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

kaaskopje

dat ligt toch echt aan het batterijtje of verbinding met een voeding.

dat ligt toch echt aan het batterijtje of verbinding met een voeding.

ik heb nu een andere bibliotheek gedownload de rtclib ik heb deze ook getest met een ds3231 module van een vriend en daar doet hij het op alleen bij mij lijkt hij hem niet te pakken waarmee kan dit te maken hebben
Code: [Select]
// Date and time functions using a DS3231 RTC connected via I2C and Wire lib
#include "RTClib.h"

RTC_DS3231 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {

#ifndef ESP8266
  while (!Serial); // for Leonardo/Micro/Zero
#endif

  Serial.begin(9600);

  delay(3000); // wait for console opening

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
     //This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
}

void loop () {
    DateTime now = rtc.now();

    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(" (");
    Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();

    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");

    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now + TimeSpan(7,12,30,6));

    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();

    Serial.print("Temperature: ");
    Serial.print(rtc.getTemperature());
    Serial.println(" C");

    Serial.println();
    delay(3000);
}

shooter

wat is jullie verschil dan er zal wel iets anders zijn.
paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

Go Up