- 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 13: Pulsador en Pull Down
Actividad 13

Control de un contador
Estás creando un contador interactivo para una competición, donde los participantes pueden registrar puntos usando dos botones. En esta actividad, vamos a trabajar con los dos pulsadores configurados en modo Pull-Down.
El objetivo será que uno de los pulsadores incremente un contador numérico y el otro lo disminuya. Cada vez que se presione el pulsador asignado, el contador aumentará o disminuirá en una unidad, y el valor actualizado se mostrará por el Monitor Serial. Si se presiona repetidamente, el sistema deberá seguir sumando o restando de manera precisa.

Pista 1 (Bloques): Lectura de los Pulsadores
Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
elegir de qué pulsador tomar la medida:

elegir de qué pulsador tomar la medida:

Pista 1 (C/C++): Incluir la librería base
Recuerda que para incluir una librería previamente instalada en nuestro programa, debemos utilizar
la sentencia siguiente:
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.
En nuestro ejemplo incluiremos la librería MentorBit, que facilita el uso de los componentes básicos de la
placa.
Pista 2 (C/C++): Conexiones de los Pulsadores
Recuerda que la librería de MentorBit da acceso a las conexiones de los diferentes pulsadores
empleando las siguientes referencias:
- miObjetoMentorBit.PULSADOR_PULLDOWN_DIGITAL
- miObjetoMentorBit.PULSADOR_PULLDOWN_ANALOGICO
empleando las siguientes referencias:
- miObjetoMentorBit.PULSADOR_PULLDOWN_DIGITAL
- miObjetoMentorBit.PULSADOR_PULLDOWN_ANALOGICO
Pista 3 (C/C++): Comprobar lectura de un Pulsador por pin Digital
Para leer la señal de un pulsador, debemos realizar la lectura digital del pin donde se encuentre
conectado utilizando la siguiente función:
Donde pin es el número identificador del pin donde está conectado el pulsador. Cuando trabajamos
con pulsadores, combinamos el uso de la función anterior con un condicional para realizar una tarea
específica si dicho pulsador se ha accionado. Deberá compararse con el estado contrario al normal
debido a su configuración (un pulsador en Pull Down, normalmente estará en LOW, mientras uno en
Pull High estará por defecto en HIGH). Por ejemplo, para detectar la acción de un pulsador en Pull Down:
conectado utilizando la siguiente función:
digitalRead(pin);
Donde pin es el número identificador del pin donde está conectado el pulsador. Cuando trabajamos
con pulsadores, combinamos el uso de la función anterior con un condicional para realizar una tarea
específica si dicho pulsador se ha accionado. Deberá compararse con el estado contrario al normal
debido a su configuración (un pulsador en Pull Down, normalmente estará en LOW, mientras uno en
Pull High estará por defecto en HIGH). Por ejemplo, para detectar la acción de un pulsador en Pull Down:
if(digitalRead(pin) == HIGH) {
// Líneas a ejecutar
}
Pista 4 (C/C++): Comprobar lectura de un Pulsador por pin Analógico
Para leer la señal de un pulsador, debemos realizar la lectura analógica del pin donde se encuentre
conectado utilizando la siguiente función:
Donde pin es el número identificador del pin donde está conectado el pulsador. Cuando trabajamos
con pulsadores, combinamos el uso de la función anterior con un condicional para realizar una tarea
específica si dicho pulsador se ha accionado. Deberá compararse con el estado contrario al normal
debido a su configuración (un pulsador en Pull Down, normalmente estará en 0, mientras uno en
Pull High estará por defecto en 1023). Por ejemplo, para detectar la acción de un pulsador en Pull Down:
conectado utilizando la siguiente función:
analogRead(pin);
Donde pin es el número identificador del pin donde está conectado el pulsador. Cuando trabajamos
con pulsadores, combinamos el uso de la función anterior con un condicional para realizar una tarea
específica si dicho pulsador se ha accionado. Deberá compararse con el estado contrario al normal
debido a su configuración (un pulsador en Pull Down, normalmente estará en 0, mientras uno en
Pull High estará por defecto en 1023). Por ejemplo, para detectar la acción de un pulsador en Pull Down:
if(analogRead(pin) > 0) {
// Líneas a ejecutar
}
También puedes trabajar los pines analógicos como si fueran pines digitales a la hora de leer sus estados
siempre que tengas conectado algún elemento simple que devuelve señales binarias (como los
pulsadores, que están abiertos o cerrados, sin más opciones intermedias).
También puedes trabajar los pines analógicos como si fueran pines digitales a la hora de leer sus estados
siempre que tengas conectado algún elemento simple que devuelve señales binarias (como los
pulsadores, que están abiertos o cerrados, sin más opciones intermedias).
Solución (C/C++)
#include <MentorBit.h>
// Declaración de instancia de la clase
MentorBit miMentorBit;
// Variable para almacenar el valor del contador
int cuenta = 0;
// Inicialización del sketch
void setup() {
// Inicialización del Monitor Serial
Serial.begin(9600);
}
// Bucle principal del sketch
void loop() {
// Comprobar la lectura del pulsador Pull-Down digital
if(digitalRead(miMentorBit.PULSADOR_PULLDOWN_DIGITAL) == HIGH) {
// Aumentamos el valor del contador y lo mostramos por el Serial
cuenta++;
Serial.print("Contador: ");
Serial.println(cuenta);
// Esperamos que se deje de accionar el pulsador
while(digitalRead(miMentorBit.PULSADOR_PULLDOWN_DIGITAL) == HIGH) {}
}
// Comprobar la lectura del pulsador Pull Down en pin digital
if(digitalRead(miMentorBit.PULSADOR_PULLDOWN_ANALOGICO) == HIGH) {
// Comprobamos que la cuenta almacena un número entero mayor que cero
if(cuenta > 0) {
// Aumentamos el valor del contador
cuenta--;
}
// Mostramos por el Serial el valor del contador
Serial.print("Contador: ");
Serial.println(cuenta);
// Esperamos que se deje de accionar el pulsador
while(digitalRead(miMentorBit.PULSADOR_PULLDOWN_ANALOGICO) == HIGH) {}
}
}
Puedes descargar la solución sin utilizar nuestra extensión en el siguiente icono:
| Vistas | |
|---|---|
| 15 | Número de vistas |
| 15 | 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.
