Todos estamos familiarizados con los dados y a menudo jugamos al juego LUDO o SANP SIDI (Snake & Ladders) usando dados. Dice es una caja sólida tipo escudero que contiene 6 números diferentes en todos sus lados. Lanzamos los dados sobre una superficie para obtener un número aleatorio mientras jugamos. En este proyecto hemos intentado replicarlo con un dado digital usando placa arduino uno. En lugar de lanzar los dados, aquí debemos presionar un botón para obtener un número aleatorio entre 0 y 6.
Componentes requeridos
- Arduino UNO
- Pantalla de siete segmentos (ánodo común)
- Apretar botones
- Cables de conexión
- Tabla de pan
- 1 k resistencia
- Fuente de alimentación
Diagrama de circuito y explicación
Como se muestra en el circuito de dados digitales anterior, arduino se utiliza para controlar todo el proceso. Se utilizan dos botones en el circuito: uno para iniciar los dados y otro para reiniciar los dados. Arduino lee estos dos botones y realiza la operación. Se utiliza una pantalla de siete segmentos para mostrar el resultado de los dados.
Arduino está ejecutando continuamente la función rand () y almacena su valor en una variable temporal. Cuando se presiona el botón de dados, el valor almacenado se calcula y se muestra en siete segmentos utilizando el método apropiado (consulte la parte de programación del artículo).
Aquí, en este circuito de dados, se utiliza una pantalla de siete segmentos de ánodo común para mostrar los números de dados, que está directamente conectada a los números de pin digital arduino 6, 5, 4, 3, 2, 1, 0. Y el pin de ánodo común de siete segmentos es conectado con resistencia de +5 voltios 220 ohmios. También están conectados dos botones pulsadores, a saber, el botón de dados y el botón de reinicio que están conectados al pin digital 14 (A0) y 15 (A1) con respecto a tierra.
Explicación del código
La parte de programación de este proyecto juega un papel muy importante para mostrar el número de dados digitales aleatorios en la pantalla de siete segmentos. Arduino no contiene ninguna biblioteca para pantalla de siete segmentos. así que creamos todo el código sin usar ninguna biblioteca.
En primer lugar, seleccionamos el pin digital para la pantalla de siete segmentos.
int pin = {6,5,4,3,2,1,0};
Después, creamos una matriz de 6 dígitos de dados, a saber, 1, 2, 3, 4, 5 y 6.
char dígito = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Ahora le dimos instrucciones para usar el pin arduino como salida.
configuración vacía () {para (int i = 0; i <7; i ++) pinMode (pin, SALIDA); pinMode (dado, ENTRADA); pinMode (restablecer, ENTRADA); digitalWrite (dado, ALTO); digitalWrite (restablecer, ALTO);
Enviamos un código para mostrar cero en la pantalla de siete segmentos de forma predeterminada.
int temp = 0x40; para (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); temp = temp >> 1; }
Ahora ejecutamos la función rand () para obtener un número aleatorio.
int temp = rand ();
Y cuando presionamos el botón de dados, el programa primero mapea este número aleatorio y luego envía el número a la pantalla de siete segmentos utilizando un operador de bits.
if (digitalRead (dado) == 0) {int k = temp% 6; temp = dígito; Espere(); para (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); temp = temp >> 1; } retraso (200); }
Y lo mismo para el botón de reinicio.
En este programa, enviamos un bit a la vez. Aquí aplicamos un bucle for que se ejecuta 7 veces para enviar datos a cada segmento uno por uno.