First project

For RTC breakouts, etc., use the Other Products from Adafruit forum

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
ender1981
 
Posts: 1
Joined: Tue Mar 03, 2015 5:41 pm

First project

Post by ender1981 »

I'm brand new to arduino. I watched a few videos and did a few led blinking practice programs that worked fine. My project is a sunrise alarm of sorts for my 2 year old who wakes up at 5am every freaking day. I want to make a nightlight that'll glow red from 7pm to 6:30am. Glow yellow (all LEDs) from 6:30-7am, then green at 7am till 7pm when it switches back to red.

Components - i've purchased an arduino uno, neopixel ring with 12RGBs and a chronodot rtc to keep time. I purchased it all from adafruit.com, so that should answer any versioning questions.

I found and tried two different RTClib libraries i found on github. One by Mizraith - https://github.com/mizraith/RTClib, and one this guy links in his video https://www.youtube.com/watch?v=aPObIVGm1us - which is a very similar project. I used the that library, and tweaked the code a bit to use hours instead of seconds. (i was going to start with 7pm, 7am to start). My problem (i have many) is that it appears the libraries (both) i've tried have programming errors in them...

Is there a better library I can use?
and do you usually have to error-check the libraries others make? I paid for chronodot, there should be some provided code to interface with it. Its extremely frustrating.

I'm not a software engineer, but i am a tinkerer, DIY and pretty patient. I spoke to the folks at reddit.com/r/arduino who said this project could be done in an afternoon. I have 2 hours into it so far and i haven't gotten anywhere. I feel stupid. Please help/talk me out of going on Amazon and buying a sleep training light for kids - they do have them, but they all suck (in my opinion), so i figured i'd build my own.

Here's the errors i'm getting so you see what i mean. One or two may be MY code, but there's a poop ton of errors with the library i'm referencing, and i dont want to write that code too. Can someone point me in the right direction? I'm hoping i'm missing one step and all those errors will go away.

In file included from sketch_mar02a.ino:1:0:
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:12:24: error: expected ')' before 't'
DateTime (uint32_t t =0);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:13:24: error: expected ')' before 'year'
DateTime (uint16_t year, uint8_t month, uint8_t day,
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:17:21: error: '__FlashStringHelper' does not name a type
DateTime (const __FlashStringHelper* date, const __FlashStringHelper* time);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:17:42: error: ISO C++ forbids declaration of 'date' with no type [-fpermissive]
DateTime (const __FlashStringHelper* date, const __FlashStringHelper* time);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:17:54: error: '__FlashStringHelper' does not name a type
DateTime (const __FlashStringHelper* date, const __FlashStringHelper* time);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:17:75: error: ISO C++ forbids declaration of 'time' with no type [-fpermissive]
DateTime (const __FlashStringHelper* date, const __FlashStringHelper* time);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:18:5: error: 'uint16_t' does not name a type
uint16_t year() const { return 2000 + yOff; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:19:5: error: 'uint8_t' does not name a type
uint8_t month() const { return m; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:20:5: error: 'uint8_t' does not name a type
uint8_t day() const { return d; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:21:5: error: 'uint8_t' does not name a type
uint8_t hour() const { return hh; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:22:5: error: 'uint8_t' does not name a type
uint8_t minute() const { return mm; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:23:5: error: 'uint8_t' does not name a type
uint8_t second() const { return ss; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:24:5: error: 'uint8_t' does not name a type
uint8_t dayOfWeek() const;
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:29:5: error: 'uint32_t' does not name a type
uint32_t unixtime(void) const;
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:36:5: error: 'uint8_t' does not name a type
uint8_t yOff, m, d, hh, mm, ss;
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:42:23: error: expected ')' before 'seconds'
TimeSpan (int32_t seconds = 0);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:43:23: error: expected ')' before 'days'
TimeSpan (int16_t days, int8_t hours, int8_t minutes, int8_t seconds);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:45:5: error: 'int16_t' does not name a type
int16_t days() const { return _seconds / 86400L; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:46:5: error: 'int8_t' does not name a type
int8_t hours() const { return _seconds / 3600 % 24; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:47:5: error: 'int8_t' does not name a type
int8_t minutes() const { return _seconds / 60 % 60; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:48:5: error: 'int8_t' does not name a type
int8_t seconds() const { return _seconds % 60; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:49:5: error: 'int32_t' does not name a type
int32_t totalseconds() const { return _seconds; }
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:55:5: error: 'int32_t' does not name a type
int32_t _seconds;
^
In file included from sketch_mar02a.ino:1:0:
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:63:12: error: 'uint8_t' does not name a type
static uint8_t begin(void);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:65:5: error: 'uint8_t' does not name a type
uint8_t isrunning(void);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:69:5: error: 'uint8_t' does not name a type
uint8_t readnvram(uint8_t address);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:70:20: error: 'uint8_t' has not been declared
void readnvram(uint8_t* buf, uint8_t size, uint8_t address);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:70:34: error: 'uint8_t' has not been declared
void readnvram(uint8_t* buf, uint8_t size, uint8_t address);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:70:48: error: 'uint8_t' has not been declared
void readnvram(uint8_t* buf, uint8_t size, uint8_t address);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:71:21: error: 'uint8_t' has not been declared
void writenvram(uint8_t address, uint8_t data);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:71:38: error: 'uint8_t' has not been declared
void writenvram(uint8_t address, uint8_t data);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:72:21: error: 'uint8_t' has not been declared
void writenvram(uint8_t address, uint8_t* buf, uint8_t size);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:72:38: error: 'uint8_t' has not been declared
void writenvram(uint8_t address, uint8_t* buf, uint8_t size);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:72:52: error: 'uint8_t' has not been declared
void writenvram(uint8_t address, uint8_t* buf, uint8_t size);
^
sketch_mar02a.ino: In function 'void setup()':
sketch_mar02a.ino:16:7: error: 'class RTC_DS1307' has no member named 'begin'
sketch_mar02a.ino:18:13: error: 'class RTC_DS1307' has no member named 'isrunning'
sketch_mar02a.ino:21:41: error: no matching function for call to 'DateTime::DateTime(int, int, int, int, int, int)'
sketch_mar02a.ino:21:41: note: candidates are:
In file included from sketch_mar02a.ino:1:0:
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:17:5: note: DateTime::DateTime(const int*, const int*)
DateTime (const __FlashStringHelper* date, const __FlashStringHelper* time);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:17:5: note: candidate expects 2 arguments, 6 provided
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:16:5: note: DateTime::DateTime(const char*, const char*)
DateTime (const char* date, const char* time);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:16:5: note: candidate expects 2 arguments, 6 provided
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:15:5: note: DateTime::DateTime(const DateTime&)
DateTime (const DateTime& copy);
^
C:\Program Files (x86)\Arduino\libraries\RTClib-master/RTClib.h:15:5: note: candidate expects 1 argument, 6 provided
sketch_mar02a.ino: In function 'void loop()':
sketch_mar02a.ino:36:22: error: 'class DateTime' has no member named 'year'
sketch_mar02a.ino:38:22: error: 'class DateTime' has no member named 'month'
sketch_mar02a.ino:40:22: error: 'class DateTime' has no member named 'day'
sketch_mar02a.ino:42:22: error: 'class DateTime' has no member named 'hour'
sketch_mar02a.ino:44:22: error: 'class DateTime' has no member named 'minute'
sketch_mar02a.ino:46:22: error: 'class DateTime' has no member named 'second'
sketch_mar02a.ino:50:11: error: 'class DateTime' has no member named 'hour'
sketch_mar02a.ino:54:16: error: 'class DateTime' has no member named 'hour'
Error compiling.

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: First project

Post by adafruit_support_rick »

First of all, you should be using the Time Library and the RTCLib from here:
https://github.com/PaulStoffregen/Time
http://www.pjrc.com/teensy/td_libs_DS1307RTC.html


Next, have a look at this thread, which shows you how to initialize the Chronodot RTC and synchronize it with the onboard Arduino clock.
viewtopic.php?f=25&t=49423&hilit=+setsy ... er#p346369

The thing to remember is that the Time library works with the built-in Arduino clock. The setSyncProvider function keeps the Arduino clock synchronized with the RTC. The synchronization happens when the you call Time library functions to get the current time or date.

User avatar
DCodomo
 
Posts: 7
Joined: Fri Jul 10, 2015 12:59 am

Re: First project

Post by DCodomo »

I was about to start a thread on the same issue, it isn't clear on Adafruit's ChronoDot product page which library to use. Link's to http://docs.macetech.com/doku.php/chronodot_v2.0#rtclib and the mizraith RTC lib. Very frustrating indeed, can you guys please add links correct libraries on the ChronoDot product page? It would have saved me a lot of time.

Locked
Please be positive and constructive with your questions and comments.

Return to “Clock Kits (discontinued)”