Contenido del curso

Actividad 20

 

Control de velocidad de un ventilador

Imagina que tienes un ventilador en casa y quieres controlar la velocidad a la que gira ya que es muy potente y a veces da demasiado aire. Vamos a utilizar un potenciómetro para regular la velocidad de giro.

Debemos programar el MentorBit para crear un control completo del ventilador en función del valor de la resistencia regulable. Como indicador, utilizaremos el LED Azul variando su intensidad lo mismo que la velocidad del ventilador. Cuando el potenciómetro se encuentre en su posición mínima, o cero, indicando que el ventilador está apagado, apagaremos el LED Azul y encenderemos el LED Rojo.


Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
controlar un motor de corriente continua:


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

#include <MentorBitMotores.h>

En nuestro ejemplo incluiremos la librería MentorBitMotores, que facilita el uso de los diferentes motores
con MentorBit.
Recuerda que la librería de MentorBitMotores da acceso a la conexión del Motor DC empleando las
siguientes referencias:

- miObjetoMentorBitMotores.MOTOR_DC_EN
- miObjetoMentorBitMotores.MOTOR_DC_IN_1
- miObjetoMentorBitMotores.MOTOR_DC_IN_2
Recuerda que la librería de MentorBitMotores da acceso a la siguiente función específica que permite
controlar directamente el giro del Motor DC:

miMentorBitMotores.moverMotorDC(velocidad, dirección);

Donde velocidad es un valor de tipo entero cuyo rango será de 0 a 255 y dirección será 0 para un sentido

y 1 para el contrario.


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

#include <MentorBit.h>
#include <MentorBitMotores.h>

// Declaración de instancia de las clases
MentorBit miMentorBit;
MentorBitMotores miMentorBitMotores;

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

    // Configuramos los dos LEDs por defecto apagados
    digitalWrite(miMentorBit.LED_ROJO, LOW);
    digitalWrite(miMentorBit.LED_AZUL, LOW);

}

// Bucle principal del sketch
void loop() {

    // Obtenemos la lectura analógica del potenciómetro
    int lectura_potenciometro = analogRead(miMentorBit.POTENCIOMETRO);
    // Convertimos la lectura del potenciómetro (que puede dar entre 0 y 1023)
    // por un valor válido para una PWM (que puede ser entre 0 y 255) para
    // controlar con ello la velocidad del motor DC
    int velocidad = map(lectura_potenciometro, 010230255);

    // Comprobamos que la velocidad obtenida es cero
    if(velocidad == 0) {

        // Encendemos el LED Rojo y apagamos el LED Azul
        digitalWrite(miMentorBit.LED_ROJO, HIGH);
        digitalWrite(miMentorBit.LED_AZUL, LOW);
        // Apagamos por completo el motor
        miMentorBitMotores.moverMotorDC(00);

    } else {

        // Apagamos el LED Rojo y encendemos el LED Azul
        digitalWrite(miMentorBit.LED_ROJO, LOW);
        analogWrite(miMentorBit.LED_AZUL, velocidad);
        // Apagamos por completo el motor
        miMentorBitMotores.moverMotorDC(velocidad, 0);

    }

}

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

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