3. Ideas Previas:
• ¿Qué es una matriz de LEDs?
• ¿Para qué nos puede servir?
• ¿Puedo controlarla con Arduino? ¿Cuantos pines
digitales necesito?
• ¿Conoceis alguna forma de ahorrar pines?
INTRODUCCIÓN
4. Controlar una matriz de LEDs a través de los registros
de despalazamiento
Ideas:
• Encender sucesivamente todos los puntos de la
matriz
• Controlar el encendido de un punto con el joystick o
el acelerómetro
• Añadir proporcionalidad al movimiento
HACER
5. • MATRIZ DE LEDS
• REGISTRO DE DESPLAZAMIENTO
• CONEXIÓN ARDUINO MATRIZ DE LEDS
• FUNCIÓN SHIFTOUT
• TIPO BYTE
• TIPO ARRAY
• EJEMPLO CONTROL MATRIZ
INFORMACIÓN
6.
MATRIZ DE LEDS
Es un encapsulado que contiene LEDs distribuidos en
filas y columnas
5 Filas y 7 Columnas à M5x7= 35 LEDs
Cada punto de la matriz es localizado por su posición
M(i,j)=M(2,3)
7.
MATRIZ DE LEDS
Configuración interna:
• Las columnas están conectadas a los ánodos de los
LEDs
• Las filas están conectadas a los cátodos
8.
REGISTRO DE DESPLAZAMIENTO
Transmite un byte, bit a bit a sus salidas desde Q0àQ7
Nos permite aumentar el número de salidas digitales
disponibles de Arduino
Salidas digitales: Q0-Q7
Datos: byte enviado por Arduino 10101010
Reloj: marca la velocidad de desplazamiento de los bits
Latch: habilita la entrada de datos
74HC595
9.
REGISTRO DE DESPLAZAMIENTO
Salidas digitales Q0-Q7
Necesita 3 pines para ser controlado:
• DS: Datos serie (byte) enviados por Arduino
• SHCP= Reloj, velocidad de desplazamiento de los bits
• STCP= LATCH, si está a 0 ''escucha'' los datos
entrantes, cuando se pone a 1 los muestra
10.
REGISTRO DE DESPLAZAMIENTO
Registros en serie:
• Comparten señal de reloj y de activación
• Los datos se transmiten a través de Q7'
• El primer byte pasa al segundo registro
12. FUNCIÓN SHIFTOUT
Transmite un byte bit a bit
- shiftOut (dataPin, clockPin, bitorder,value);
dataPin: pin que transmite los datos
clockPin: pin del reloj
bitorder: MSBFIRST / LSBFIRST
MSBFIRST: transmite primero el bit más
significativo
LSBFIRST: transmite primero el bit menos
significativo
value: el byte a transmitir
13. TIPO BYTE
- byte b;
Variable que almacena un byte = 8 bits
El byte lo podemos codificar en formato binario
byte b= B0001000;
El byte lo podemos codificar en formato decimal 0-255
byte b= 16;
El byte lo podemos codificar en formato hexadecimal
byte b= 0x10;
14. ARRAY
Es una colección de variables indexadas por un número
Para definir un array
- tipo nombre[#]={v1, v2,...}
byte columna[2]={B1000000, B0100000};
Para definir uno de sus elementos
columna[0]=B1000000;
15. ARRAYS MATRIZ
Para indicar un 1 en las columnas y un 0 en las filas
enviando el bit menos significativo primero:
byte columna[7]={B00000010, B00000100, B00001000,
B00010000, B00100000, B01000000,B10000000};
byte fila[5]= {B11110111, B11101111, B11011111,
B10111111,B01111111};
18.
Este
guía
se
distribuye
bajo
licencia
Reconocimiento-‐
ComparBrIgual
CreaBve
commons
4.0
(cc)
2015
José
Pujol
Pérez
Some
rights
reserved.
This
work
licensed
under
CreaBve
Commons
APribuBon-‐ShareAlike
License.
To
view
a
copy
of
full
license,
see
hPp://creaBvecommons.org/licenses/by-‐sa/3.0/
or
write
to
CreaBve
Commons,
559
Nathan
AbboP
Way,
Stanford,
California
94305,
USA.
Some
of
the
figures
have
been
taken
from
the
Internet
Source,
and
author
and
licence
if
known,
is
specified.
For
those
images,
fair
use
applies.
licencia