Practica 05 – Uso del Sensor de Temperatura

Objetivo:
Aprender a manjejar un sensor de temperatura. Y a usar la función map y constrain de Arduino.

Material necesario:
1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Tarjeta Protoboard
1 – Software IDE de Arduino
1 Sensor de Temperatura LM35
1 LED RGB catodo comun ó en su caso 2 LEDs comunes de colores Rojo y Azul.
2 Resistencias de 330 ohms.
Cables

Descripción

  1. Conectamos el sensor de temperatura a la protoboard, teniendo el lado plano del sensor de frente realizamos las conexiones de la siguiente forma:
    1. El pin izquierdo lo conectamos a 5v.
    2. El pin derecho lo conectamos a tierra.
    3. El pin central lo conectamos a cualquier pin analógico de nuestro Arduino (el pin A0 en nuestro caso).
  2. Conectamos dos LEDs de distintos colores, agregamos una resistencia a cada LED en la parte plana que vaya a tierra.
  3. El otro pin del LED lo conectamos uno al 3 y 5 que son los que tienen funcionalidad PWM.
  4. Conectamos los cables de tierra y 5V de la Arduino a la protoboard.
  5. Cargamos el código.
Diagrama de conexión de la práctica realizado en Fritzing

Diagrama de conexión de la práctica realizado en Fritzing

Código

/* Practica 5 - Uso del Sensor de temperatura.
 Encender un LED rojo o azul dependiendo de la temperatura*/

const int sensor = 0; // entrada del sensor LM35
const int ledRojo = 3; // pin del LED rojo
const int ledAzul = 5; // pin del LED azul

long miliVolts;
long temperatura;
int brillo;

long calctemp(int datosSensor){
  /*Calculamos los mV en la entrada*/
  miliVolts = (analogRead(datosSensor) * 5000L) / 1023; 
  /* Calculamos la temperatura*/
  temperatura = miliVolts / 10;
  /*Regresamos el valor de temperatura*/
  return temperatura;
}

void setup () {
  Serial.begin(9600); // iniciamos la comunicacion serial
  /*Declaramos los LEDs como salida*/
  pinMode(ledRojo, OUTPUT);
  pinMode(ledAzul, OUTPUT);
}

void loop () {
  /*Llamamos a la función para calcular temperatura
   y guardamos el valor*/
  temperatura = calctemp(sensor);

  /*Ajustamos la escala de temperatura para poder usar analoWrite*/
  brillo = map(temperatura, 10, 40, 0, 255);
  /*Restringimos el rango de brillo entre 0 y 255*/
  brillo = constrain(brillo, 0, 255);

  /*Ajustamos el color de los LED*/
  analogWrite(ledRojo, brillo);
  analogWrite(ledAzul, 250-brillo);

  /*Mandamos el valor de la temperatura al monitor serial
   y agregamos un delay para no saturar el monitor*/
  Serial.print("Temperatura: "); 
  Serial.print(temperatura);
  Serial.println("grados");
  delay(200);
}

Resultados
El resultado es un termómetro con salida visual que son los LEDs si la temperatura aumenta el LED azul aumenta su brillo y el del rojo disminuye, si baja la temperatura ocurre lo contrario.

Experiencia
Lo nuevo de esta práctica fue aprender el uso del sensor de temperatura LM35, y en cuanto a programación el uso de dos funciones de Arduino el map y el constrain, que en este caso el map lo emplee para convertir los valores a un rango de 0-255 y el constrain para restringir los valores a ese rango.

Deja un comentario