jueves, 12 de marzo de 2015

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
Conectamos el sensor de temperatura a la protoboard, teniendo el lado plano del sensor de frente realizamos las conexiones de la siguiente forma:
  • El pin izquierdo lo conectamos a 5v.
  • El pin derecho lo conectamos a tierra.
  • El pin central lo conectamos a cualquier pin analógico de nuestro Arduino (el pin A0 en nuestro caso).
Conectamos dos LEDs de distintos colores, agregamos una resistencia a cada LED en la parte plana que vaya a tierra.
El otro pin del LED lo conectamos uno al 3 y 5 que son los que tienen funcionalidad PWM.Conectamos los cables de tierra y 5V de la Arduino a la protoboard.
Cargamos el código.

Código


/* Practica  - 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);
}
 
 
Fuente del artículo: https://manualarduinos52.wordpress.com  

No hay comentarios:

Publicar un comentario