No tags
|
0 replies
MTM06 (Make Tokyo Meeting 06) was held in Nov 20 and 21. In this event, Nakamura-san handed out MCP 9700 temperature sensor to mbed fans who purchased Starboad Orange (Base board) during the event. Thanks Nakamura-san!
The followings are sample program to measure temperature with MCP9700.
This sensor generate output voltage in proportion to temperature. Output voltage is given with the following formula:
Vout = Tc x Ta + V0
where:
Therefore, temperature can be calculated from the following formula:
Ta = (Vout - V0) / Tc
That's say, measuring Vout using ADC (Analog Input) let you know ambient temperature. This formula is applicable for another linear temperature sensor - such as National Semiconductor LM35 - by modifying parameters. In addition to MCP9700, this class support MCP9701 and LM35 by specifying sensor type in constructor.
| Sensor Pin | mbed Pin | Notes |
| Vdd | VOUT (3.3V) | Red |
| Vout | p20 | Blue |
| GND | GND | Black |

Sensor handling is provided by LinearTempSensor class. This object accumulates N times of sample (default 10) and calculate average temperature using sampled data. Average is used to stabilize temperature readout.
The following is main routine to use this object. Text LCD class is also used to display measured data.
#include "mbed.h"
#include "TextLCD.h"
#include "LinearTempSensor.h"
TextLCD lcd(p24, p26, p27, p28, p29, p30, TextLCD::LCD16x2); // RS, E, DB4, DB5, DB6, DB7
LinearTempSensor sensor(p20); // With default parameters
//LinearTempSensor sensor(p20, 5, LinearTempSensor::MCP9700); // With option parameters
int main()
{
float Vout, Tav, To;
lcd.cls();
lcd.printf("TEMP:");
while(true)
{
Vout = sensor.Sense(); // Sample data (read sensor)
Tav = sensor.GetAverageTemp(); // Calculate average temperature from N samples
To = sensor.GetLatestTemp(); // Calculate temperature from the latest sample
lcd.locate(5, 0);
lcd.printf("%4.1f", Tav);
printf("Vout:%f Tav:%f To:%f\n\r", Vout, Tav, To); // Debug print
wait(2.0);
}
}
Program code with LinearTempSensor class : TempSensor

Please log in to post a comment.