This is another example of how to wire the TMP461. The TMP461 is a high-accuracy remote and local temperature sensor developed by Texas Instruments, this device has a pin-programmable bus address and also operates on the i2C protocol driven by a low-power with a high accuracy temperature sensing.
Another feature of this sensor utilizes remote sensing that communicates on a serial bus, typically a discrete NPN or PNP transistor, or a substrate thermal transistor or diones that integrate parts of a microprocessor, microcontroller, or FPGA, in addition, the temperature is represented as a 12-bit digital code for both local and remote sensors, providing a resolution of 0.0625°C.
The 2wire serial interface can accept an address of up to 9 different programmable addresses. The TMP461 integrates an advanced series of resistance cancellations, a programmable non-ideality factor, programmable offset, programmable temperature limits, and a programmable digital filter combined to enhance your thermal monitoring solutions with improved high accuracy and noise immunity.
The TMP461 is suitable for muti-location implementation, especially in precision instruments, communication devices, Embedded Applications, Smart Batteries, Smart Battery Controller, Smart Battery Management Systems, Test equipment, LED lighting, Processor temperature monitoring, industrial applications, and Precision Instruments.
The TMP461 chip is specified for operation over a supply voltage range from 1.7v ~ 3.6v and a temperature range of 40°C ~ 125°C. For more technical details and additional configuration please refer to the datasheet below.
Requirements
- Arduino IDE | PlatformIO
- Test Boards :
- Note: The Diagram below is using ATMEGA4809 Microcontroller (please refer to your MCU’s respective pin-outs & bus configuration)
- Resistors (See below diagram for required value)
- Capacitor(See below diagram for required value)
Wiring Diagram & Schematics
Source Code – Single Address
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <Wire.h> //This library is already integrated to your Arduino IDE #include "TMP461.h" //You can download this library below TMP461 tmp = TMP461(&Wire, 0x48); //i2C Protocol Address void setup() { Serial.print(" 14CORE | TMP461 TEST "); delay(3000); Serial.print("Initializing ............... "); delay(2000); Wire.begin(); Serial.begin(250000); } void loop() { Serial.print("Local Temperature: "); Serial.print(tmp.readLocalTemp()); Serial.print("\t Remote Temperature: "); Serial.println(tmp.readLocalTemp()); delay(1000); } |
Source Code – Multi Address
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
/* * This will probably only compile for SAMD21 based boards * */ #include <Wire.h> #include "wiring_private.h" // This library can downloaded below #include "TMP461.h" //This library can be downloaded below void readTemps(); //TMP461 TwoWire alt_i2c(&sercom1, 11, 13); TMP461 tmp[] = { TMP461(&alt_i2c, 0x48), // i2c Address - 1 TMP461(&alt_i2c, 0x49), // i2c Address - 2 TMP461(&alt_i2c, 0x4A), // i2c Address - 3 TMP461(&alt_i2c, 0x4B), // i2c Address - 4 TMP461(&alt_i2c, 0x4C), // i2c Address - 5 TMP461(&alt_i2c, 0x4D), // i2c Address - 6 TMP461(&alt_i2c, 0x4E), // i2c Address - 7 TMP461(&alt_i2c, 0x4F) // i2c Address - 8 }; float temps[] = { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 }; void setup() { Serial.print(" 14CORE | TMP461 TEST "); delay(3000); Serial.print("Initializing ............... "); delay(2000); Wire.begin(); Serial.begin(3000); alt_i2c.begin(); pinPeripheral(14, PIO_SERCOM); // Set this pin as your TMP461 - SDA pinPeripheral(13, PIO_SERCOM); // Set this pin as your TMP461 - SCL alt_i2c.setClock(400000); } void loop() { readTemps(); } void readTemps(){ for(int i = 0; i < 8 ; i++){ temps[i*2] = tmp[i].readLocalTemp(); } for(int i = 0; i < 8 ; i++){ temps[i*2 + 1] = tmp[i].readRemoteTemp(); } } |
PCB Board Milling / Gerber File
Downloads
- Download Texas Instruments TMP461 Datasheet | PDF
- Download Texas Instruments TMP461 Arduino Code Library | ZIP
Можна видалити підтягуючий резистор? Дякую – Слава Україні