Skip to content

Instantly share code, notes, and snippets.

@iinitz-zz
Forked from aleksmk/DS1621.c
Created October 14, 2012 08:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save iinitz-zz/3887936 to your computer and use it in GitHub Desktop.
Save iinitz-zz/3887936 to your computer and use it in GitHub Desktop.
Simple arduino reader for the DS1621 I2C temperature sensor
#include <Wire.h>
#define DEV_ID 0x90 >> 1 // shift required by wire.h
void setup()
{
Serial.begin(9600);
Wire.begin();
Wire.beginTransmission(DEV_ID); // connect to DS1621 (#0)
Wire.send(0xAC); // Access Config
Wire.send(0x02); // set for continuous conversion
Wire.beginTransmission(DEV_ID); // restart
Wire.send(0xEE); // start conversions
Wire.endTransmission();
}
void loop()
{
int8_t firstByte;
int8_t secondByte;
float temp = 0;
delay(1000); // give time for measurement
Wire.beginTransmission(DEV_ID);
Wire.send(0xAA); // read temperature command
Wire.endTransmission();
Wire.requestFrom(DEV_ID, 2); // request two bytes from DS1621 (0.5 deg. resolution)
firstByte = Wire.receive(); // get first byte
secondByte = Wire.receive(); // get second byte
temp = firstByte;
if (secondByte) // if there is a 0.5 deg difference
temp += 0.5;
Serial.println(temp);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment