Contenido del curso

Actividad 17

 

Control automático de un LED

Vamos a simular el funcionamiento de una lámpara de escritorio inteligente utilizando un LDR (fotorresistencia) para controlar la intensidad del LED Rojo de la placa MentorBit, que representará la lámpara. El nivel de luz ambiente que detecte la fotorresistencia ajustará automáticamente la intensidad del LED Rojo.


Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
obtener la lectura actual de la LDR (del 0 al 1023):


Recuerda que para incluir una librería previamente instalada en nuestro programa, debemos utilizar
la sentencia siguiente:

#include <MentorBit.h>
#include <MentorBitSensores.h>

En nuestro ejemplo incluiremos la librería MentorBit, que facilita el uso de los componentes básicos de la
placa, y la librería MentorBitSensores, que facilita el uso de los diferentes sensores con MentorBit.
Recuerda que la librería de MentorBitSensores da acceso a la conexión de la fotorresistencia empleando las
siguientes referencias:

- miObjetoMentorBitSensores.LDR
Después de leer la medida tomada del potenciómetro, que nos da un número entre 0 y 1023, debemos
convertir este valor para que podamos utilizarlo para crear una PWM, que solo admite valores de 0 a 255.
Esto puede hacerse de dos maneras diferentes, igual de válidas.

La primera de ellas es realizar la conversión resolviendo una regla de tres como se indica a continuación:

float lectura0a255 = (lectura0a1023 / 1023.00) * 255;

La segunda es utilizar la función map, que nos permite hacer la transformación directamente como puede
observarse a continuación:

float lectura0a255 = map(lectura0a1023, 010230255);


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

 
#include <MentorBit.h>
#include <MentorBitSensores.h>

// Declaración de instancia de las clases
MentorBit miMentorBit;
MentorBitSensores miMentorBitSensores;

// Inicialización del sketch
void setup() {

    digitalWrite(miMentorBit.LED_ROJO, LOW);

}

// Bucle principal del sketch
void loop() {

    // Obtención y conversión de la lectura del sensor
    int lectura0a1023 = miMentorBitSensores.obtenerLecturaLDR();
    float lectura0a255 = (lectura0a1023 / 1023.00) * 255;

    // Modificación de la intensidad del LED
    analogWrite(miMentorBit.LED_ROJO, lectura0a255);
    delay(100);

}

Puedes descargar la solución sin utilizar nuestra librería en el siguiente icono:

Vistas
17 Número de vistas
17 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.