P11: Kiwibot Basic Shield: Control matriz led sin libreria
-
Upload
jose-pujol-perez -
Category
Education
-
view
4.857 -
download
0
Transcript of P11: Kiwibot Basic Shield: Control matriz led sin libreria
PRÁCTICAS DE PROGRAMACIÓN CON ARDUINO
P11: CONTROL MATRIZ DE LEDS SIN LIBRERÍA
José Pujol Pérez IES Vicente Aleixandre
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
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
• MATRIZ DE LEDS
• REGISTRO DE DESPLAZAMIENTO
• CONEXIÓN ARDUINO MATRIZ DE LEDS
• FUNCIÓN SHIFTOUT
• TIPO BYTE
• TIPO ARRAY
• EJEMPLO CONTROL MATRIZ
INFORMACIÓN
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)
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
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
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
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
FUNCIÓN SHIFTOUT
Transmite un byte bit a bit - shiftOut (dataPin, clockPin, bitorder,value); dataPin: pin que transmite los datosclockPin: pin del relojbitorder: MSBFIRST / LSBFIRSTMSBFIRST: transmite primero el bit más significativo LSBFIRST: transmite primero el bit menos significativo value: el byte a transmitir
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;
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 elementoscolumna[0]=B1000000;
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};
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