This example shows how to connect a DS1624 sensor to an Intel Galileo
The DS1624 consists of two separate functional units: a 256-byte nonvolatile E2 memory and a direct-to-digital temperature sensor.
The nonvolatile memory is made up of 256 bytes of E2 memory. This memory can be used to store any type of information the user wishes. These memory locations are accessed through the 2-wire serial bus.
The direct-to-digital temperature sensor allows the DS1624 to measure the ambient temperature and report the temperature in a 12-bit word with 0.0625°C resolution. The temperature sensor and its related registers are accessed through the 2-wire serial interface. Figure 1 in the full data sheet shows a block diagram of the DS1624.
Key Features
- Reduces Component Count with Integrated Temperature Sensor and Nonvolatile E2 Memory
- Measures Temperatures from -55°C to +125°C in 0.0625°C Increments
- ±0.5°C Accuracy from 0°C to 70°C
- 256 Bytes of E2 Memory for Storing Information Such as Frequency Compensation Coefficients
- No External Components
- Easy-to-Use 2-Wire Serial Interface
- Temperature is Read as a 12-Bit Value (2-Byte Transfer)
Layout
Code
I used the following library – https://github.com/bluemurder/DS1624
[codesyntax lang=”cpp”]
#include <DS1624.h> // Sensor presents all address pins connected to ground DS1624 ds1624(0x00); void setup() { // Begin serial connection at 9600 baud Serial.begin(9600); } void loop() { float temperature; bool valid; // Get current temperature ds1624.GetTemperature(temperature, valid); // Print it if(valid) { Serial.println(temperature); } else { Serial.println("Invalid value read from I2C bus"); } // Wait a while delay(1000); }
[/codesyntax]
Testing
Open the serial monitor and you should see something like this
25.06
25.00
24.94
24.94
24.88
24.88
24.88
24.81
24.75
24.69
24.62
24.56
24.50
24.44
24.37
24.31
24.25
24.19
Links
DS1624 temperature sensor, high precision digital thermometer with memory function