Contenido del curso

Actividad 19

 

EJERCICIO LM35
En esta actividad se debe utilizar el sensor de temperatura LM35 y dos diodos led. Si la temperatura supera los 25 ºC se debe encender el led de color amarillo. Cuando la temperatura supere los 30 ºC se debe encender de forma gradual el led rojo. El led rojo se encenderá el máximo posible cuando la temperatura alcance los 50 ºC. Para esto es necesario usar uno de los pines PWM del Arduino. Es recomendable también utilizar la función "map" del Arduino.

    Nota importante

Ten en cuenta que el transistor y el sensor de temperatura analógico son iguales a simple vista. Esto se debe al tipo de empaquetado del componente y para distinguirlos debes leer el código que viene impreso en ellos. El sensor de temperatura es el LM35.

#define led_amarillo 2   // Definimos el pin del LED amarillo
#define led_rojo 3       // Definimos el pin del LED rojo
#define sensor A0        // Definimos el pin del Sensor LM35

void setup() {
    Serial.begin(9600);            // Iniciamos la comunicación Serial
    pinMode(led_amarillo, OUTPUT); // Definimos el LED amarillo como salida
    pinMode(led_rojo, OUTPUT);     // Definimos el LED rojo como salida
}

void loop() {
    // Tomamos la lectura analógica
    int lectura_sensor = analogRead(sensor);


    // Convertimos la lectura analógica a milivoltios,
    // sabiendo que la lectura es un valor de 0 a 1023
    // y que la mayor lectura del sensor sera 5V = 5000mV
    float temperatura_mV = (lectura_sensor / 1023.0) * 5000;


    // Convertimos los milivoltios a grados centigrados,
    // sabiendo que el sensor tiene una sensibilidad de
    // 10 milivoltios por ºC
    float temperatura_c = temperatura_mV / 10;


    // Imprimimos la temperatura
    Serial.print(temperatura_c);
    Serial.println(" ºC");


    // Comprobamos la temperatura obtenida y encendemos el
    // LED correspondiente a cada caso
    if(temperatura_c < 25.0) {
        digitalWrite(led_amarillo, LOW);
        digitalWrite(led_rojo, LOW);
    }
    if((temperatura_c >= 25.0) && (temperatura_c < 30.0)) {
        digitalWrite(led_amarillo, HIGH);
    }
    if((temperatura_c >= 30.0) && (temperatura_c < 50.0)) {
        digitalWrite(led_rojo, HIGH);
    }
    if(temperatura_c >= 50.0) {
        digitalWrite(led_amarillo, HIGH);
        digitalWrite(led_rojo, HIGH);
    }
    // Pequeña pausa
    delay(250);
}


Puedes descargar la solución pinchando en el siguiente icono:


Vistas
13 Número de vistas
13 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.