Arduino - Juego de memoria: 4 pasos

Arduino - Juego de memoria: 4 pasos

Tabla de contenido:

Anonim

Un juego de memoria simpel usando el Arduino Uno.

Suministros:

Paso 1: Paso 1: Piezas y herramientas

4 botones

4 LED's

1 74HC595 registro de turnos

1 piezo

2 (quizás uno más grande) Breadboard

1 Arduino Uno

1 220 Ω Res.

Paso 2: Paso 2: Consejos

Trate de poner el arduino y la tabla (s) de pan juntos desde el principio. Es mucho más fácil trabajar con

Usé un poco de catron en el que pegué las tablas de panificación y usé dos tornillos y tuercas para sujetar el arduino.

Cuando esté transportando su proyecto (tal vez en mal estado), asegúrese de que el arduino esté bien protegido. Los cables se pueden desordenar fácilmente.

Paso 3: Paso 3: el Código

// Pin conectado a 12 (ST_CP) de 74HC595 Shift Register

int latchPin = 8; // clockPin conectado a 11 (SH_CP) en 74HC595 Shift Register int clockPin = 12; //// Pin conectado a DS de 74HC595 Shift Register int dataPin = 11;

// Variabel si el juego está sobre boolean gameover = false;

// Array for shiftregister int ledarray 8 = {1,2,4,8,16,32,64,128}; // Variabel para el nivel actual int level = 4; // Conjunto reservado de los LED correctos en cada nivel int randarray1 8; // Número de LEDs disponibles int min = 0; int max = 4; // Variabel para cual de los botones presionados int buttpr; // Variabel para todas las clavijas de LED int botines 8 = {2,3,4,5,6,7, A0, A1};

void setup () {// Ställ in pinnarna hasta Shift registret pinMode (latchPin, OUTPUT); pinMode (clockPin, SALIDA); pinMode (dataPin, SALIDA);

// Establecer todos los LED en modo PULLUP para (int buttpin = 0; buttpin <8; buttpin ++) {pinMode (buttonpins buttpin, INPUT_PULLUP); } // Arduino listo para la comunicación serie Serial.begin (9600); }

void loop () {// Subir el nivel del juego si (nivel <8) {nivel ++; } // Hacer el nivel siempre que no haya Gameover si (! Gameover) {// Generar una nueva combinación de LED para el nivel para (int i = 0; i <level; i ++) {randarray1 i = random (max); } // Loop para encender todos los LED en el nivel actual para (int numberToDisplay = 0; numberToDisplay <level; numberToDisplay ++) {Serial.println (ledarray randarray1 numberToDisplay); // Apague la alimentación del shiftregistro readingPin antes de elegir el nuevo pin digitalWrite (latchPin, LOW); // Marque el siguiente LED con shiftregister shiftOut (dataPin, clockPin, MSBFIRST, ledarray randarray1 numberToDisplay); // Enciende el LED marcado en la mitad de un segundo digitalWrite (latchPin, HIGH); retraso (500); // Mata la luz de nuevo digitalWrite (latchPin, LOW); // Marque el primer LED ShiftOut (dataPin, clockPin, MSBFIRST, 0); // Enciende el primer LED digitalWrite (latchPin, HIGH); // Paus un segundo antes del próximo retraso del LED (1000); }

// Presionar el botón para leer (int lednr = 0; lednr <nivel; lednr ++) {// Escriba cuál es el siguiente LED Serial.print correcto ("Siguiente led:"); Serial.println (lednr); // Espere un segundo antes de la próxima lectura (1000); // Lea los botones hasta que se presione uno, haga {buttpr = whichbuttonpressed (); } while (buttpr == 9); // Escriba el botón actual presionado y el botón que es correcto Serial.print (buttpr); Serial.println (randarray1 lednr); // Reproducir sonido para tono presionado (13,660,200); // Si es el botón incorrecto, es Gameover if (buttpr! = Randarray1 lednr) {gameover = true; // Play Gameover tono de sonido (13,440,1000); Serial.println ("Gameover"); // Cancelar el bucle para leer los botones break; }} Serial.println ("Nivel finalizado"); }}

int whichbuttonpressed () {// Repetir sobre todos los botones y leer para (int buttpin = 0; buttpin <8; buttpin ++) {// Si se presiona el botón, retorna el valor del botón if (digitalRead (buttonpins buttpin) == 0) {return (buttpin); descanso; }} // Si no se presiona ningún botón, regrese 9 para continuar leyendo los botones en el bucle retorno 9; }

Paso 4: Paso 4: Función del juego

Este pequeño juego es bastante fácil de hacer. Estoy seguro de que los entusiastas acabarán con esto probablemente en menos de una hora.

Pero el juego es bastante divertido y es muy útil en gimnasia cerebral.

Los cuatro LED en el juego parpadean en una combinación aleatoria. Cuando la combinación termina, presiona en orden usando los cuatro botones. Cada vez que presiona un botón, puede escuchar un sonido. Al presionar el botón equivocado, obtendrás un sonido claro que indica que se terminó el JUEGO. Pero si logras presionar la combinación correcta, llegas a un nuevo nivel. Esta vez la combinación es de cinco flashes. Siguiente nivel seis, y así sucesivamente.

Personalmente creo que este tipo de juegos es útil para las personas mayores. Tal vez las personas con una enfermedad que están afectando su memoria?