I2C EEPROM plus Temperature Sensor breakout board
|
This tiny breakout board carries Microchip’s 24LC512 EEPROM and MCP9802 temperature sensor devices, both of which support I2C protocol. This board can be used for both sensing the ambient temperature and storing it. The MCP9802 is a digital temperature sensor with an user-selectable resolution from 9 to 12 bit. It can measure temperature ranging from -55°C to +125°C and notifies the host microcontroller when the ambient temperature exceeds a user programmed set point through its ALERT output pin. This board allows you to store up to 32000 temperature samples when you use the sensor in high resolution mode (12-bit, 0.0625°C) with each sample stored as two bytes.
- Small PCB layout (0.95″ X 0.65″)
- ±1°C temperature measurement accuracy from -10°C to +85°C
- Operating voltage range +2.7V to +5.5V
- Pin headers with standard 0.1″ spacing for breadboarding
- I2C pull-up resistors and decoupling capacitors on board
- User-selectable 9- to 12-bit temperature measurement resolution
Applications:
- Temperature monitoring, controlling, and logging
- Learning and practicing I2C protocol
- Rapid prototyping with Microchip’s serial EEPROM and MCP9802 temperature sensor
We are accepting preorders for this breakout board through a Fundraising Campaign on Tindie. If you are interested, you can preorder it for $9.00. Interfacing examples for Arduino and PIC microcontrollers will be posted soon.
Update (April 4, 2013)
The funding campaign was successful and all orders have been shipped out today. Thank you for supporting the campaign.
Note that the 7-bit slave addresses of the two I2C devices on board are as follows:
MCP9802 sensor: 0x48
24LC512 EEPROM: 0x50
Here’s a simple Arduino sketch to read temperature from the MCP9802 device and send it to PC through serial port.
#include <Wire.h> #define address 0x48 //I2C address of MCP9802 #define baudrate 9600 // Baud rate for serial communication int TempByte1, TempByte2; void setup() { Wire.begin(); Serial.begin(baudrate); // Write to Configuration Register Wire.beginTransmission(address); Wire.write(0x01); // Address to Configuration register Wire.write(0x64); // ADC resolution: 12-bit, Wire.endTransmission(); } void loop() { // Read temperature Wire.beginTransmission(address); Wire.write((byte)0x00); // Pointer to temperature register Wire.endTransmission(); Wire.beginTransmission(address); Wire.requestFrom(address, 2); // Now read two bytes of temperature data if (Wire.available()) { TempByte1 = Wire.read(); TempByte2 = Wire.read(); int Temperature = ((TempByte1 << 8) | TempByte2); Temperature = Temperature >> 4; float TempC = 1.0*Temperature*0.0625; float TempF = TempC*1.8+32.0; Serial.print(" Temperature= "); Serial.print(TempC); Serial.print(" C, "); Serial.print(TempF); Serial.println(" F"); } else{ Serial.println("No response "); } Wire.endTransmission(); delay(1000); } |
And here’s the output as displayed on the Serial Monitor terminal window.
Visit the following links for Arduino examples to read/write to the I2C EEPROM devices.
http://fritzing.org/projects/readwrite-serial-eeprom-via-i2c/
http://playground.arduino.cc/code/I2CEEPROM
|
Pingback: MCP9802 temperature sensor and Arduino -Use Arduino for Projects
Excuse me, where can i buy this sensor just like the one in the picture? Thank you in advance
Hi Raj!
Is it using I2C or ADC Raj?
thank you!