Contenido del curso

Actividad 15

 

Regulación de la intensidad de una luz

Imagina que estás creando un sistema de control de iluminación para una lámpara de escritorio ajustable. En esta actividad, utilizarás un potenciómetro para ajustar el brillo del LED rojo, simulando cómo cambiar la intensidad de la luz en función de tus necesidades.


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


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

#include <MentorBit.h>

En nuestro ejemplo incluiremos la librería MentorBit, que facilita el uso de los componentes básicos de la
placa.
Recuerda que la librería de MentorBit da acceso a la conexión del potenciómetro empleando las
siguientes referencias:

- miObjetoMentorBit.POTENCIOMETRO
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);
Recuerda que para poder controlar una salida de tipo PWM debemos utilizar la siguiente función:

analogWrite(pin, cicloDeTrabajo);

Donde pin es el número identificador del pin donde queremos emplear la PWM y cicloDeTrabajo puede
ser un número entero entre 0 y 255 indicativo del ciclo de trabajo de la señal a generar.


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

 
#include <MentorBit.h>

// Declaración de instancia de la clase
MentorBit miMentorBit;

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

    // Inicializar pines apagados
    analogWrite(miMentorBit.LED_ROJO0);

}

// Bucle principal del sketch
void loop() {

    int lectura0a1023 = analogRead(miMentorBit.POTENCIOMETRO);
    float lectura0a255 = (lectura0a1023 / 1023.00) * 255;

    analogWrite(miMentorBit.LED_ROJO, lectura0a255);
    delay(100);

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

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