P11: Kiwibot Basic Shield: Control matriz led sin libreria

18
PRÁCTICAS DE PROGRAMACIÓN CON ARDUINO P11: CONTROL MATRIZ DE LEDS SIN LIBRERÍA José Pujol Pérez IES Vicente Aleixandre

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  

OBJETIVOS

•  Controlar una matriz de LEDS sin usar librería

•  Usar un registro de desplazamiento  

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

 

CONEXIÓN ARDUINO MATRIZ LEDS

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};

 

EJEMPLO ENCENDER UN PUNTO MATRIZ

•  ¿Qué hemos conseguido hacer?

 

reflexionamos

     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