- Portada
- Fundamentos de MentorBit
- Alimentación de circuitos y dispositivos
-
Programación y ejercicios básicos
-
Introducción
-
Driver necesario para programar la placa
-
Descripción de mBlock
-
Descripción de IDE Arduino
-
Estructura de un programa
-
Variables
-
Tipos de datos
-
Operadores
-
Sintaxis
-
Principales Bloques
-
Principales funciones C/C++
-
Monitor Serial
-
Actividad 1: Mi primer programa
-
Estructuras de control
-
Actividad 2: Bucle for
-
Actividad 3: Bucle while
-
Actividad 4: Condicional if y else
-
Actividad 5: Sentencia Switch
-
Arrays
-
Actividad 6: Los Arrays
-
Recibir por Serie
-
Actividad 7: Recepción por bus serial
-
Funciones
-
Funciones en Bloques
-
Funciones en C/C++
-
Actividad 8: Mis primeras funciones
-
Clases en C/C++
-
Actividad 9: Mi primera Clase
-
Actividad 10: Mi propia Calculadora
-
-
Programación y ejercicios con hardware
-
Introducción a MentorBit
-
LEDs
-
Actividad 11: LEDs de colores
-
El LED RGB
-
Actividad 12: LED RGB
-
El pulsador
-
Actividad 13: Pulsador en Pull Down
-
Actividad 14: Pulsador en Pull Up
-
El Potenciómetro
-
Actividad 15: Potenciómetro
-
El Zumbador
-
Actividad 16: Zumbador Pasivo
-
La Fotorresistencia
-
Actividad 17: LDR
-
Sensor de temperatura DS18B20
-
Actividad 18: DS18B20
-
El Servomotor
-
Actividad 19: Servomotor
-
Motores Corriente Continua
-
Puente en H
-
Actividad 20: Motor DC
-
Introducción a Motores paso a paso
-
Actividad 21: Motor paso a paso
-
Displays 7 Segmentos
-
Actividad 22: Display 7 Segmentos
-
Pantallas LCD
-
Actividad 23: Pantalla LCD
-
Actividad 24: Pantalla LCD
-
Pantallas OLED
-
Actividad 25: Pantalla OLED
-
Actividad 26: Pantalla OLED
-
Reloj en Tiempo Real (RTC)
-
Actividad 27: RTC
-
Tarjeta micro SD
-
Actividad 28: Micro SD
-
Actividad 29: Micro SD & RTC
-
Actividad 30: Micro SD & RTC
-
Puertos para Módulos MentorBit
-
Puertos de Comunicaciones
-
Puertos Genéricos
-
- Problemas Adicionales
- Proyectos Finales
Actividad 20: Motor DC
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.

Pista 1 (Bloques): Mover el Motor DC
Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
controlar un motor de corriente continua:

controlar un motor de corriente continua:

Pista 1 (C/C++): Incluir librería de motores
Recuerda que para incluir una librería previamente instalada en nuestro programa, debemos utilizar
la sentencia siguiente:
En nuestro ejemplo incluiremos la librería MentorBitMotores, que facilita el uso de los diferentes motores
con MentorBit.
la sentencia siguiente:
#include <MentorBitMotores.h>
En nuestro ejemplo incluiremos la librería MentorBitMotores, que facilita el uso de los diferentes motores
con MentorBit.
Pista 2 (C/C++): Conexiones del Motor DC
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
siguientes referencias:
- miObjetoMentorBitMotores.MOTOR_DC_EN
- miObjetoMentorBitMotores.MOTOR_DC_IN_1
- miObjetoMentorBitMotores.MOTOR_DC_IN_2
Pista 3 (C/C++): Control del Motor DC
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:
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.
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.
Solución (C/C++)
#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, 0, 1023, 0, 255);
// 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(0, 0);
} 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 por correo
Por favor iniciar sesión para compartir esto webpage por correo.
