Abel Jiménez Rodríguez
Práctica 3
Laberinto con matriz de LEDs
CONTENIDO
1. Introducción.....................................................................................................................................3
2. Descripción de la práctica...............................................................................................................4
3. Lista de elementos usados...............................................................................................................6
4. Esquema eléctrico..........................................................................................................................11
5. Fotos de montaje............................................................................................................................12
[Link]ón
1. Introducción
Se ha planteado un laberinto con una matriz de LEDs 8 x 8 en el cuál
debemos dibujar las paredes superponiendo un papel con el dibujo
encima, de tal modo que no pueda pasar a través de ellas.
Además, se debe de de partir de un punto de inicio y debe haber una meta
en la que al llegar haga algún efecto visual y de sonido. El sonido con el
zumbador del kit de Arduino.
También debe hacer sonido al mover el LED. Todo ello controlado por un
joystick.
Yo quería añadirle varias cosas más como música de fondo, función de
reset y Game Over por tiempo.
Para conseguir lo deseado se ha resuelto de la siguiente forma:
3
[Link]ón de la práctica
2. Descripción de la práctica
(1) Primero hice que se iluminara un LED y lo fuese controlarlo con el
joystick. Para ello hice uso de lo aprendido en el ejercicio del
potenciómetro con el switch case y de lo aprendido de arrays. Además
tuve que usar las funciones de la librería para manipular la matriz.
Lo que hice fue hacer una matriz de 1 x 2 en la que, con una variable en
cada dato, incrementaría o disminuiría la posición del LED según la lectura
del potenciómetro con una variable incremento para cada posición.
(2) Después con un IF hice que no se pudiese salir del cuadrado 8 x 8
de la matriz de LEDs de forma que si intentase salir me devolviese a mi
posición.
(3) Posteriormente busqué laberintos 8 x 8 en internet y me quedé con
el que más me gustó modificándolo un poco. Lo dibujé en un papel de
cuadros y lo pegué a la matriz.
(4) Lo dibujé en el programa “[Link]” para asignar un movimiento
posible a cada cuadro. Lo usé porque es gratis y permite usar capas.
Quedó así:
4
[Link]ón de la práctica
(5) Configuré el movimiento con un IF, haciendo que si la posición actual
del LED era la especificada en cada posición, entrase en dicho IF y
sumase el incremento de posición a cada valor del eje. Como éste
incremento va de -1 a 1 no dará saltos.
(6) Como a veces daba problemas y podía saltar varias posiciones a la
vez si al cambiar la posición entra en el IF siguiente, puse una variable tipo
bool que no me dejase hacerlo y se resetease en cada vuelta del LOOP.
(7) Después tuve el problema del movimiento en diagonal. Lo quise
resolver con un IF y else haciendo que si el incremento era igual en ambos
ejes no me ejecutase movimiento.
Tras ésto estaba resuelto el movimiento en diagonal en 2 direcciones pero
no si el signo era diferente. Así que tuve que investigar como arreglarlo.
Usé cosas como elevar al cuadro pero no me funcionaba correctamente
por lo que buscando en la referencia de Arduino vi que con la función de
valor absoluto podía resolver mi problema.
(8) Luego le implementé que pulsando el botón del joystick me hiciese
un reset de la matriz y de las variables usadas.
(9) Luego quise ponerle música de fondo. Quería ponerle la música de
“Ciudad Trigal” del videojuego “Pokémon Plata” ya que me encanta.
Encontré en YouTube cómo hacerlo pero con el código no me funcionaría
ya que el LOOP es un bucle.
Lo pude resolver haciendo una matriz de 1 x el número de notas que
usaría y con una variable que incrementaría en cada vuelta del LOOP
hacer que me seleccionase la nota en esa posición.
5
[Link]ón de la práctica
Para hacer que sonase como esperaba tuve que duplicar y triplicar notas
para ajustar las duraciones de éstas ya que no podía ponerle directamente
varias duraciones.
(10) Después para hacer que con cada movimiento hiciese sonido
también tuve que agregar el zumbador activo ya que descubrí que la
función tone no permite el uso simultáneo de varios sonidos aunque estén
en diferentes pines.
(11) Tras ésto añadí un efecto visual y de sonido de victoria al llegar a la
meta usando un IF con la posición. Puse un while para que se quedase en
bucle pero dejase salir al pulsar el joystick.
(12) Luego hice un Game Over si se acababa la música haciendo
también un efecto visual y de sonido.
(13) Para terminar puse varios de los conjuntos de código para hacer X
cosa como funciones en una pestaña nueva.
3. Lista de elementos usados
• Arduino UNO R3
• Placa de prototipos
• 1 resistencia de 1kΩ
6
[Link] de elementos usados
• 1 joystick:
Un joystick es una palanca que gira 360º y permite controlar una gran
cantidad de aparatos. Se utiliza en muchos dispositivos, sobre todo en
mandos de videoconsolas. También es muy útil para controlar, de forma
sencilla, robots u otros proyectos.
Internamente un joystick está formado por un sistema de balancín con dos
ejes ortogonales acoplados a dos potenciómetros. Dichos potenciómetros
realizan la medición de la posición de la palanca en ambos ejes.
A la vez, uno de los ejes está apoyado en un pulsador, lo que permite
detectar cuando presionas la palanca hacia abajo.
Por lo tanto, un joystick facilita una señal analógica para la posición de
cada eje, más una señal digital cuando detecta una pulsación.
El módulo tiene 5 pines: VCC, masa, X, Y, pulsación. La salida X, Y es
analógica, además, puede presionar el joystick hacia abajo para activar la
salida digital.
Cuando el joystick se encuentra en la posición de reposo o medio, debe
devolver un valor de aproximadamente 512. Va de 0 a 1024
aproximadamente.
7
[Link] de elementos usados
• Matriz de LEDs 8 x 8 controlada por integrado max7219:
Una matriz LED no es otra cosa que un conjunto de LEDs agrupados por
filas y columnas.
Las matrices LEDs 8 × 8 son sumamente conocidas. Su nombre se debe a
que están compuestas por 64 LEDs dispuestos en forma de cuadrado con
8 columnas de 8 LEDs cada una.
Las matrices de LEDs pueden ser de dos tipos: ánodo común o cátodo
común.
Matriz cátodo común: los terminales negativos (cátodos) de todos los
LEDs de cada fila están conectados juntos. Lo mismo ocurre con los pines
positivos (ánodos) de cada columna.
Matriz ánodo común: las conexiones son contrarias, es decir, los ánodos
se conectan a las filas y los cátodos a las columnas.
8
[Link] de elementos usados
Puedes notar que solo se cuenta con 16 pines para controlar la matriz, 8
para las columnas y 8 para las filas.
El MAX7219 es un circuito integrado que facilita el control de LEDs. Es
usado principalmente en pantallas de 7 segmentos, paneles de LEDs
industriales y como controlador de matriz de LED con Arduino.
Entre sus ventajas:
• Interfaz de control serie: con tan solo 3 pines podemos controlar toda
una matriz de LEDs.
• Circuito externo simple: requiere pocos componentes externos.
• Conexión en cascada: se pueden conectar varios MAX7219 en
cascada. De esta forma se puede controlar varias matrices LEDs
utilizando solo 3 pines de la placa Arduino.
• Modo de bajo consumo: puede consumir solo 120 uA
9
[Link] de elementos usados
• 1 Zumbador activo y 1 zumbador pasivo:
Un zumbador o mejor conocido como buzzer (en ingles) es un pequeño
transductor capaz de convertir la energía eléctrica en sonido.
El funcionamiento se basa en el efecto piezoeléctrico de los materiales,
Este efecto funciona de tal manera que cuando aplicamos un voltaje el
volumen del material cambia ligeramente.
Los zumbadores están construidos con dos pequeñas placas una metálica
y una cerámica, las cuales aprovechan este efecto pero solo generan un
click ya que los materiales cambiaron de forma pero no regresan a su
estado natural hasta que se les quita el voltaje.
Para que se pueda emitir un sonido continuo las placas necesitan vibrar
constantemente, para eso se instala un oscilador que hace que los
materiales cambien de estado una y otra vez, y así puedan cambiar miles
de veces para poder alcanzar un audio perceptible.
También podemos encontrar otro tipo de buzzer (electromagnético, como
el nuestro) que intercambia los materiales por 1 imán permanente y 1 una
bobina. Cuando la bobina recibe electricidad hace que la chapa metálica
vibre.
10
[Link] eléctrico
4. Esquema eléctrico
11
[Link] de montaje
5. Fotos de montaje
12
[Link] de montaje
13