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).
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