Ds3231
I2cid: 11
lu:
http://forum.arduino.cc/index.php?topic=262986.0
chantier: C:\Users\adminpo\Desktop\ARDUINO\arduino-1.6.7\examples\po\
Ds3231InternalTemperature
bugprobable; la température ne change pas
// on nanbo, powered by D2
// from: http://forum.arduino.cc/index.php?topic=262986.0
#include <Wire.h>
#define DS3231_I2C_ADDR 0x68
#define DS3231_TEMPERATURE_ADDR 0x11
void setup()
{
pinMode(2,OUTPUT);
digitalWrite(2,HIGH);
Serial.begin(115200);
Seral.println("Ds3231 internal temperature powered by pin 2);
Wire.begin();
}
int n=0;
void loop()
{
float tempC = DS3231_get_treg(); // Reads the temperature as an int, to save memory
// float tempC = DS3231_get_treg();
Serial.print (n);
Serial.print (" " );
n=n+1;
Serial.println(tempC);
delay(5000);
}
float DS3231_get_treg()
{
Wire.beginTransmission(DS3231_I2C_ADDR);
Wire.write(DS3231_TEMPERATURE_ADDR);
Wire.endTransmission();
Wire.requestFrom(DS3231_I2C_ADDR, 2);
/* short temp; */
int temp;
temp = Wire.read() << 8;
temp |= Wire.read();
return(temp/256.);
/*
int rv; // Reads the temperature as an int, to save memory
// float rv;
uint8_t temp_msb, temp_lsb;
int8_t nint;
Wire.beginTransmission(DS3231_I2C_ADDR);
Wire.write(DS3231_TEMPERATURE_ADDR);
Wire.endTransmission();
Wire.requestFrom(DS3231_I2C_ADDR, 2);
temp_msb = Wire.read();
temp_lsb = Wire.read() >> 6;
if ((temp_msb & 0x80) != 0)
nint = temp_msb | ~((1 << 8) - 1); // if negative get two's complement
else
nint = temp_msb;
rv = 0.25 * temp_lsb + nint;
return rv;
*/
}