Nota
¡Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Sumérgete más en Raspberry Pi, Arduino y ESP32 con otros aficionados.
Why Join?
Expert Support: Resuelve problemas posventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Learn & Share: Intercambia consejos y tutoriales para mejorar tus habilidades.
Exclusive Previews: Obtén acceso anticipado a anuncios de nuevos productos y avances exclusivos.
Special Discounts: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Festive Promotions and Giveaways: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo!
Lección 44: Dados digitales
Este programa simula un lanzamiento de dados utilizando una pantalla OLED. La simulación se activa agitando el interruptor de vibración, lo que provoca que la pantalla muestre números del 1 al 6, similar a lanzar un dado. La pantalla se detiene después de un corto período, revelando un número seleccionado al azar que representa el resultado del lanzamiento del dado.
Componentes Necesarios
Para este proyecto, necesitaremos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Universal de Sensores para Creadores |
94 |
También puedes comprarlos por separado en los siguientes enlaces.
Introducción del Componente |
Enlace de Compra |
|---|---|
Arduino UNO R3 o R4 |
|
- |
|
Cableado
Código
Nota
Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «Adafruit SSD1306» y «Adafruit GFX» e instálala.
Análisis del Código
Un desglose completo del código:
Inicialización de variables:
vibPin: Pin digital conectado al sensor de vibración.Variables volátiles:
rolling: Una bandera volátil que indica el estado de rodaje de los dados. Es volátil ya que se accede tanto dentro de la rutina de servicio de interrupción como en el programa principal.setup():Configura el modo de entrada del sensor de vibración. Asigna una interrupción al sensor para activar la función rollDice al cambiar de estado. Inicializa la pantalla OLED.
loop():Verifica continuamente si
rollinges verdadero, mostrando un número aleatorio entre 1 y 6 durante este estado. El rodaje cesa si el sensor ha sido agitado durante más de 500 milisegundos.rollDice():La rutina de servicio de interrupción para el sensor de vibración. Inicia el lanzamiento del dado cuando el sensor es agitado registrando la hora actual.
displayNumber():Muestra un número seleccionado en la pantalla OLED.