I'm Road Testing the Rohm SensorShield-EVK-003 (Arduino Compatible) and the sensors that come with it. In this post, the Temperature Sensor BD1020HFVBD1020HFV. |
The Sensor Shield ecosystemSensor Shield ecosystem is ROHM's test bed for their sensors. It's an Arduino form shield with a number of slots.
The small evaluation boards for their sensors plug into that board.
For each of the sensors, there's an example sketch available.
For this blog post, I'm testing the analog temperature sensor that comes with the kit.
The Evaluation Board
The tiny board is very simple. It just contains the sensor and a bypass capacitor.
source: ROHM
The belly of the IC is soldered to the PCB and thermally (also electrically, but no worries, there is no signal on that part) connected to an exposed square of copper.
The PG pin is in contact with the silicon but has no electrical purpose. It's there to get the temperature of the part you want to measure inside the package.
The isolation between that pin and the rest of the chip is via the P substrate. That means that under certain conditions, it may act as a diode and interfere.
That's not an issue. It's the nature of silicon. Below is an extract of the datasheet that explains the mechanism and consequences.
As long as the temperature sensor pin does not get a voltage lower than ground, you're fine.
Test Procedure
I'm using the proposed test method from ROHM.
I plugged the sensor board in the lower Analog dock. That connects the temperature sensor's output to the Arduino A2 pin.
The power supply of the sensor is set to 3 V, similar as what's used in ROHMs data sheet.
I taped the temperature probe of my multimeter to the pad on the BD1020HFV evaluation board.
Then I powered on the Arduino and the meter, and let everything stabilise.
I've also measured the analog output of the IC, and compared it with the curve in the data sheet.
The sensor works as expected. The voltage drop per °C is typical. Right in the middle of what the data sheet specifies: -8.2 mV / °C.
I noted that the temperature reported by the IC is 3 to 4°C higher than what my multimeter reports.
The spec gives a +- 2.5°C precision. Note that my meter is not calibrated. It's spec is ±0.5%+3°C - definitely not good enough for this activity.
I've contacted co-road-tester fmilburn to double-check. He has similar measurements.
In the image above, you can see that I used both the Arduino sketch and the output voltage of the IC to compare my setup with the curve.
The orange projection is the voltage I was expecting to measure, based on the evaluation board temperature measured by the multimeter (17.7 °C).
The green projection is looking up the temperature, based on the actual measurement of the analog pin (1.38 V).
Below is the calculation that the Arduino sketch does. It takes the measurement of the analog input,
then calculates the voltage based on the voltage per ADC step.
Then calculates the temperature, setting the base as 1.546 V. If you look at the curve, you can see that this represents the voltage at 0° C.
The sketch uses the typical value of -8.2 mV per °C difference.
// Calculations for Temp Sensor - BD1020 // Math: ADC_Voltage = sensorValue * (5V/1024) // Tempurature = - (1000 * ADC_Voltage - 1546) / 8.2
This was my first attempt with the ROHM evaluation ecosystem. All went very smooth.
I didn't have a single problem. The instructions were clear and the sketch and library installed flawlessly in the Arduino IDE.
Compilation went perfect and the example is a good way to get real life experience with the sensor.
Top Comments