Using the Ladyada download for RTC from the datalogger tutorial,
The following sketch compiles and loads OK, but fails the “RTC is NOT running” test. Examples > RTC > ds1307 does the same. Removing the test, as suggested by Adafruit forum and just using RTC.adjust(DateTime(__DATE__, __TIME__)); doesn’t work. Deleting RTClib in the Arduino library and downloading Ladyada’s RTClib.master again, unzipping and renaming it to RTClib in the libraries doesn’t work. Any suggestions?
Code: Select all
//TMP36 Pin Variables
#include <Wire.h>
#include "RTClib.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial = SoftwareSerial(0,1);
RTC_DS1307 RTC;
int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to
//the resolution is 10 mV / degree centigrade with a
//500 mV offset to allow for negative temperatures
/*
* setup() - this function runs once when you turn your Arduino on
* We initialize the serial connection with the computer
*/
void setup()
{
Serial.begin(9600); //Start the serial connection with the computer
Wire.begin();
RTC.begin();
if(! RTC.isrunning()) {
Serial.println("RTC NOT running");
RTC.adjust(DateTime(__DATE__, __TIME__));
}
Serial.println("goodbye moon");
Serial.println("hour, minutes, seconds, volts, degC, degF");
mySerial.begin(9600);
mySerial.print("Hello World");
mySerial.print("hour, minutes, seconds, volts, degC, degF");
}
void loop() // run over and over again
{
DateTime now = RTC.now();
Serial.print(now.day());
Serial.print(" ");
Serial.print(now.hour(), DEC);
Serial.print(" ");
Serial.print(now.minute(), DEC);
Serial.print(" ");
Serial.print(now.second(), DEC);
Serial.print(", ");
//getting the voltage reading from the temperature sensor
int reading = analogRead(sensorPin);
// converting that reading to voltage, for 3.3v arduino use 3.3
float voltage = reading * 5.0;
voltage /= 1024.0;
// print out the voltage
Serial.print(voltage);
Serial.print(" ");
// now print out the temperature
float temperatureC = (voltage - 0.47) * 100 ; //converting from 10 mv per degree wit 500 mV
//to degrees ((volatge - 500mV) times 100)
Serial.print(temperatureC);
Serial.print(" ");
// now convert to Fahrenheight
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.println(temperatureF);
mySerial.print(now.hour(), DEC);
mySerial.print(" ");
mySerial.print(now.minute(), DEC);
mySerial.print(", ");
mySerial.print(voltage);
mySerial.print(" ");
mySerial.print(temperatureC);
mySerial.print(" ");
mySerial.println(temperatureF);
delay(15000); //waiting a second
}