Este tutorial tiene como objetivo mostrar el funcionamiento del sensor de temperatura MCP9700 con Arduino. El sensor genera una señal análoga y no se necesita algún otro componente para trabajar con él, sólo un ADC. Entonces, Lo que se debe obtener es la lectura del voltaje que se proporciona desde la terminal número 3 y esta señal es análoga. Es un sensor de temperatura que convierte la temperatura en un voltaje análogo. El pin de salida de voltaje (Vout) puede ser conectado directamente a una entrada ADC de un microcontrolador. Los coeficientes de temperatura están escalados para proporcionar una resolución de 1°C/bit para un ADC de 8 bits con una referencia de voltaje de 5V.
Con la información dada en la hoja de datos se sabe que la sensibilidad del sensor es de 10mV/°C es decir que 10mV equivale a 1°C, de la misma hoja se puede saber que 500mV corresponde a 0°C.

La siguiente imagen contiene el nombre de las terminales del MCP9700 y se ha obtenido de la hoja de datos del componente.


Material necesario
Teniendo en cuenta lo anterior se prosigue con la conexión de las terminales, la terminal número 4 se conecta a voltaje (5v), la terminal marcada con el número 3 se conecta a A0 de la placa de Arduino y la terminal con el número 2 se conecta a tierra. Se muestra a continuación la conexión del componente con la tarjeta programable.
Conexión del MCP9700 con Arduino



Las conexiones entre el sensor y el Arduino son de la siguiente manera:
SENSOR | ARDUINO |
VDD | 5V |
GND | GND |
VOUT | A0 |
Explicación del código del MCP9700 con Arduino.
Se inicia con la declaración de las variables a utilizar con la que se manipulara la temperatura y en la parte de setup se configura el serial a 9600.
[code language=»cpp»]
double TEM;
void setup() {
Serial.begin(9600);
};
[/code]
Se prosigue con la lectura de la señal análoga en el pin A0. Después se multiplica por 5 que son los 5 volts que lee la placa Arduino y se divide en 1024, y se resta 0.5 para quitar el offset de que 0°C es igual a 500mV.
[code language=»cpp»]
void loop () {
TEM = analogRead(A0)*5/1024.0;
TEM = TEM – 0.5;
[/code]
Ahora se divide entre 0.01 para obtener la equivalencia en valores de °C., y se finaliza imprimiendo el valor en nuestro monitor serial y finalmente se establece un tiempo de espera.
[code language=»cpp»]
TEM = TEM / 0.01;
Serial.println(TEM);
delay(1000);
};
[/code]
A continuación se muestra cómo es que debe verse la información en la terminal, en este caso la terminal de la placa Arduino.

Sitios de interes
Código completo de sensor con Arduino
[code language=»cpp»]
double TEM;
void setup() {
Serial.begin(9600);
};
void loop () {
TEM = analogRead(A0)*5/1024.0;
TEM = TEM – 0.5;
TEM = TEM / 0.01;
Serial.println(TEM);
delay(2000);
};
[/code]
Otros sensores de temperatura analógicos
- Sensor Arduino LM35, descripción del sensor LM35.