Read temperature from a TCN75 (or LM75) I2C thermometer
Dependencies: mbed
main.cpp
00001 /** 06_i2c_tcn75 00002 * Read temperature from a TCN75 (or LM75) I2C thermometer 00003 * I2C address: 1 0 0 1 A2 A2 A0 00004 * 00005 * Hardware requirements: 00006 * - FRDM-KL25Z board 00007 * - TCN75 (or LM75) thermometer 00008 * 00009 * Wiring scheme: 00010 * 00011 * TCN75 FRDM-25KLZ 00012 * ------------------------- 00013 * 1. SDA D14 (PTE0 alias I2C_SDA) 00014 * 2. SCL D15 (PTE1 alias I2C_SCL) 00015 * 3. ALERT -- (not used) 00016 * 4. GND GND 00017 * 5. A2 GND 00018 * 6. A1 GND 00019 * 7. A0 GND 00020 * 8. VCC 3V3 00021 */ 00022 00023 #include "mbed.h" 00024 I2C i2c(I2C_SDA, I2C_SCL); // Arduino compatible pins 00025 const int addr = 0x90; // TCN75 adress: 0x48<<1 00026 00027 int main() 00028 { 00029 char cmd[2]; // data buffer 00030 printf("\r\nTCN75 I2C thermometer\r\n"); 00031 cmd[0] = 0x01; // Pointer to CONFIG register 00032 cmd[1] = 0x00; // Data for CONFOG register (Normal operation, comparator mode) 00033 i2c.write(addr, cmd, 2); // Send Address/comman and two bytes 00034 while (1) { 00035 wait(1); 00036 cmd[0] = 0x00; // Pointer to TEMP register 00037 i2c.write(addr, cmd, 1); // Write adress/command byte, then register address 00038 i2c.read(addr, cmd, 2); // Read 2 bytes from TEMP register 00039 float temp = cmd[0]<<8|cmd[1]; 00040 printf("Temperatue = %.2f C\r\n", temp/256); 00041 } 00042 }
Generated on Sat Jul 16 2022 20:23:01 by 1.7.2