User Tools

Site Tools


read_time_sketch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

read_time_sketch [2017/12/10 06:09] (current)
adam created
Line 1: Line 1:
 +Arduino Sketch - Read time on RTC DS1302
  
 +<code c>
 +// Example sketch for interfacing with the DS1302 timekeeping chip.
 +//
 +// Copyright (c) 2009, Matt Sparks
 +// All rights reserved.
 +//
 +// http://​quadpoint.org/​projects/​arduino-ds1302
 +#include <​stdio.h>​
 +#include <​DS1302.h>​
 +
 +namespace {
 +
 +// Set the appropriate digital I/O pin connections. These are the pin
 +// assignments for the Arduino as well for as the DS1302 chip. See the DS1302
 +// datasheet:
 +//
 +//   ​http://​datasheets.maximintegrated.com/​en/​ds/​DS1302.pdf
 +const int kCePin ​  = 5;  // Chip Enable
 +const int kIoPin ​  = 6;  // Input/​Output
 +const int kSclkPin = 7;  // Serial Clock
 +
 +// Create a DS1302 object.
 +DS1302 rtc(kCePin, kIoPin, kSclkPin);
 +
 +String dayAsString(const Time::Day day) {
 +  switch (day) {
 +    case Time::​kSunday:​ return "​Sunday";​
 +    case Time::​kMonday:​ return "​Monday";​
 +    case Time::​kTuesday:​ return "​Tuesday";​
 +    case Time::​kWednesday:​ return "​Wednesday";​
 +    case Time::​kThursday:​ return "​Thursday";​
 +    case Time::​kFriday:​ return "​Friday";​
 +    case Time::​kSaturday:​ return "​Saturday";​
 +  }
 +  return "​(unknown day)";
 +}
 +
 +void printTime() {
 +  // Get the current time and date from the chip.
 +  Time t = rtc.time();
 +
 +  // Name the day of the week.
 +  const String day = dayAsString(t.day);​
 +
 +  // Format the time and date and insert into the temporary buffer.
 +  char buf[50];
 +  snprintf(buf,​ sizeof(buf),​ "%s %04d-%02d-%02d %02d:​%02d:​%02d",​
 +           ​day.c_str(),​
 +           t.yr, t.mon, t.date,
 +           t.hr, t.min, t.sec);
 +
 +  // Print the formatted string to serial so we can see the time.
 +  Serial.println(buf);​
 +}
 +
 +}  // namespace
 +
 +void setup() {
 +  Serial.begin(9600);​
 +}
 +
 +// Loop and print the time every second.
 +void loop() {
 +  printTime();​
 +  delay(1000);​
 +}
 +</​code>​
read_time_sketch.txt · Last modified: 2017/12/10 06:09 by adam