5. timer module

Time module (RTC DS1307) voor Arduino

 
 

Gekocht bij: http://www.tinytronics.nl/shop/Diversen/Tijd/RTC-DS1307-met-AT24C32-eeprom-incl.-Batterij

Wat doet de time module?

De time module is een hardware onderdeel die nauwkeurig de tijd kan bijhouden en kan registreren. Het kan aangesloten worden op Arduino en het kan bijvoorbeeld gebruikt worden om data gedurende een bepaalde periode te registreren aan de hand van tijd.


 
 

Nodig:

-Time module + batterij (LIR2032)

-Bibliotheken: Arduino "Time” library (zie

http://playground.arduino.cc/Code/Time) +"DS1307RTC” library

(library downloaden in Arduino programma Bestand > Schets > Biblotheek gebruiken > Bibliotheken beheren > "Time” & "DS1307RTC”)

Aansluitschema:


Code:

CONTROLEER OF DE TIME MODULE GESYNCHRONISEERD IS:

-Download de libraries "Time” en "DS1307RTC”

-Open de voorbeeldcode Time > TimeRTC

-Upload de code en open de seriële monitor; als het goed is wordt de huidige tijd en datum in het scherm weergeven. Dit kun je vervolgens integreren in je eigen project en code (zie GESYNCHRONISEERD). Mocht de tijd van de time module nog niet gesynchroniseerd zijn met de huidige tijd, volg dan de stappen onder het kopje NOG NIET GESYNCHRONISEERD.

 

NOG NIET GESYNCHRONISEERD:

Wanneer de timer nog niet is gesynchroniseerd in real time, kun je dat doen m.b.v. "SyncArduinoClock” processing code.

-Open eerst de voorbeeldcode Time > TimeRTCSet in het Arduino programma.

-Upload de code op een Arduino.

-Open de Processing code "SyncArduinoClock” in de Time library map op je computer (Time > examples > Processing > SyncArduinoClock).

'Processing' is andere software.  Mocht je dit programma nog niet op je computer hebben staan, dan moet je dat eerst dowloaden (https://processing.org/)

-Zorg dat ook de Arduino met de TimeRTCSet code is aangesloten op je computer. Druk op de "play” button van het Processing programma.

-Er verschijnt een vierkant venster. Klik op dit venster met de muis om de huidige tijd te synchroniseren met de tijd op de time module. Vervolgens zullen links onderin de balk ook de tijd en datum verschijnen. Nu is de tijd van de time module gesynchroniseerd.

 

GESYNCHRONISEERD:

Wanneer de time module al wel is gesynchroniseerd, kun je de voorbeeldcode "TimeRTC” (of andere voorbeeldcodes, afhankelijk van je project doel) uit de Time bibliotheek gebruiken om te integreren in jouw project.

 
 
Tevens te gebruiken:
 
 
 
 
DS 1302 YL-41 timer module:
 
 
 
 
 
 
aansluitschema:
 
 
 
download library DS 1302 YL-41:
 

 
Code:

 
 
 
#include <DS1302.h>
 
// Init the DS1302
// DS1302 rtc([CE/RST], [I/O], [CLOCK]);
DS1302 rtc(8, 7, 6);
 
void setup() {
  // Set the clock to run-mode, and disable the write protection
  rtc.halt(false);
  rtc.writeProtect(false);
  
  // Setup Serial connection
  Serial.begin(9600);
 
  // The following lines can be commented out to use the values already stored in the DS1302
  rtc.setDOW(FRIDAY);        // Set Day-of-Week to FRIDAY
  rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(6, 8, 2010);   // Set the date to August 6th, 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);
}

Ps. Vergeet na de upload deze regels niet uit te zetten of weg te halen! en dan het script zonder deze regels opnieuw te uploaden.

rtc.setDOW(FRIDAY);        // Set Day-of-Week to FRIDAY
rtc.setTime(12, 0, 0);         // Set the time to 12:00:00 (24hr format)
rtc.setDate(6, 8, 2010);     // Set the date to August 6th, 2010