PRÁCTICAS DE PROGRAMACIÓN CON ARDUINO
P9: APLICACIÓN MATRIZ DE LEDS
José	
  Pujol	
  Pérez	
  
IES	
  Vicente	
  Aleixandre	
  
OBJETIVOS
•  Controlar una matriz de LEDS y comprender
su funcionamiento
•  Instalar y usar una librería
•  Usar control de tiempo mediante reloj interno
	
  
Ideas Previas:
•  ¿Qué es una matriz de LEDs?
•  ¿Para qué nos puede servir?¿Qué aplicaciones se os
ocurren?
•  ¿Puedo controlarla con Arduino? ¿Cuantos pines
digitales necesito?
INTRODUCCIÓN
•  MATRIZ DE LEDS
•  LIBRERÍA MATRIZ DE LEDS
•  INSTALAR LA LIBRERÍA
•  MULTIPLEXADO
•  FUNCIÓN MILLIS
•  CONTROL TIEMPO MILLIS
•  SENSOR TEMPERATURA LM35
INFORMACIÓN
 
MATRIZ DE LEDS
Es un encapsulado que contiene LEDs distribuidos en
filas y columnas
En este caso, tenemos 5 filas i y 7 columnas j
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
•  Para encender un LED tengo que activar a 1 la
columna y poner a 0 la fila
librería matriz leds
- #include <Matriz.h>	
Incluye la librería Matriz con todas sus funciones
- Matriz matriz(6, 9, 5);	
Indica los pines latch, reloj y datos del registro de
desplazamiento
- matriz.printPixel(fila, columna);	
Enciende un pixel
- matriz.printLine(filaIni, columnaIni,
filaFin, columnaFin);	
Dibuja una línea desde un punto inicial a un punto final
librería matriz leds
- matriz.printNumber(numero);	
Imprimir un número de una o dos cifras
- matriz.cleanMatrix();	
Apaga todos los píxeles de la matriz
- matriz.newPixel(fila, columna);	
Almacena píxeles en una variable
- matriz.printMatrix();	
Imprime los píxeles almacenados en la variable
 
INSTALAR LA LIBRERÍA
Descargar la librería de:
http://www.kiwibot.es/escudo-arduino/libreria-matriz-de-leds/
En Arduino:
Sketchà Importar Librería à Add Library
Cargar el archivo .zip
Reiniciar Arduino y la librería ya está lista para ser usada
Realizar un termómetro usando la matriz de LEDs
•  Imprimir la temperatura por el puerto serie
•  Representar el valor de la temperatura con dígitos
Ideas:
•  Añadir que cambie de temperatura Celsius a
Fahrenheit con un pulsador
•  Realizar un gráfico de barras. Alternar entre gráfico de
barras y dígitos con pulsador
•  Pulsador de desconexión
•  Realizar media de valores para que no oscile
HACER PROPUESTA 1
 
SENSOR TEMPERATURA LM35
Sensor de temperatura calibrado
•  Tensión de salida proporcional a la temperatura
•  Cada grado centígrado equivale a 10mv
1°C=10mv	
  
5v=1024	
  pasos	
  
	
  
 
ESQUEMA ARDUINO LM35
PROGRAMA BASE
Realizar una aplicación o juego usando la matriz de
LEDs
Ideas:
•  Mover un pixel por la pantalla con el acelerómetro
•  Dibujar usando el joystick-pulsador y borrar con el
otro pulsador
•  Juego de memorización de flechas
HACER PROPUESTA 2
 
MULTIPLEXADO
Consiste en realizar barridos a gran velocidad
Crea la ilusión óptica de que todos los LEDs están
encendidos simultaneamente
FUNCIÓN mILLIS
- millis();	
Devuelve el número de milisegundos desde que se
conectó la placa Arduino
Es necesario usarlo si vamos a usar funciones con
multiplexado y control de tiempo
Si lo guardamos en una variable de tipo unsigned long
se desborda cada 50 dias
unsigned long time=0;	
time=millis();
 
CONTROL TIEMPO RELOJ INTERNO
•  ¿Qué hemos conseguido hacer?
	
  
reflexionamos
 
	
  
	
  
Este	
  guía	
  se	
  distribuye	
  bajo	
  licencia	
  Reconocimiento-­‐	
  ComparJrIgual	
  CreaJve	
  
commons	
  4.0	
  	
  
	
  
	
  
(cc)	
  2014	
  José	
  Pujol	
  Pérez	
  Some	
  rights	
  reserved.	
  This	
  work	
  licensed	
  under	
  CreaJve	
  
Commons	
  ARribuJon-­‐ShareAlike	
  License.	
  To	
  view	
  a	
  copy	
  of	
  full	
  license,	
  see	
  	
  	
  	
  	
  	
  	
  	
  	
  
hRp://creaJvecommons.org/licenses/by-­‐sa/3.0/	
  or	
  write	
  to	
  CreaJve	
  Commons,	
  559	
  
Nathan	
  AbboR	
  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

P9: Kiwibot Basic Shield: Aplicaciones Matriz de LEDs

  • 1.
    PRÁCTICAS DE PROGRAMACIÓNCON ARDUINO P9: APLICACIÓN MATRIZ DE LEDS José  Pujol  Pérez   IES  Vicente  Aleixandre  
  • 2.
    OBJETIVOS •  Controlar unamatriz de LEDS y comprender su funcionamiento •  Instalar y usar una librería •  Usar control de tiempo mediante reloj interno  
  • 3.
    Ideas Previas: •  ¿Quées una matriz de LEDs? •  ¿Para qué nos puede servir?¿Qué aplicaciones se os ocurren? •  ¿Puedo controlarla con Arduino? ¿Cuantos pines digitales necesito? INTRODUCCIÓN
  • 4.
    •  MATRIZ DELEDS •  LIBRERÍA MATRIZ DE LEDS •  INSTALAR LA LIBRERÍA •  MULTIPLEXADO •  FUNCIÓN MILLIS •  CONTROL TIEMPO MILLIS •  SENSOR TEMPERATURA LM35 INFORMACIÓN
  • 5.
      MATRIZ DE LEDS Esun encapsulado que contiene LEDs distribuidos en filas y columnas En este caso, tenemos 5 filas i y 7 columnas j M5x7= 35 LEDs Cada punto de la matriz es localizado por su posición M(i,j)=M(2,3)
  • 6.
      MATRIZ DE LEDS Configuracióninterna: •  Las columnas están conectadas a los ánodos de los LEDs •  Las filas están conectadas a los cátodos •  Para encender un LED tengo que activar a 1 la columna y poner a 0 la fila
  • 7.
    librería matriz leds -#include <Matriz.h> Incluye la librería Matriz con todas sus funciones - Matriz matriz(6, 9, 5); Indica los pines latch, reloj y datos del registro de desplazamiento - matriz.printPixel(fila, columna); Enciende un pixel - matriz.printLine(filaIni, columnaIni, filaFin, columnaFin); Dibuja una línea desde un punto inicial a un punto final
  • 8.
    librería matriz leds -matriz.printNumber(numero); Imprimir un número de una o dos cifras - matriz.cleanMatrix(); Apaga todos los píxeles de la matriz - matriz.newPixel(fila, columna); Almacena píxeles en una variable - matriz.printMatrix(); Imprime los píxeles almacenados en la variable
  • 9.
      INSTALAR LA LIBRERÍA Descargarla librería de: http://www.kiwibot.es/escudo-arduino/libreria-matriz-de-leds/ En Arduino: Sketchà Importar Librería à Add Library Cargar el archivo .zip Reiniciar Arduino y la librería ya está lista para ser usada
  • 10.
    Realizar un termómetrousando la matriz de LEDs •  Imprimir la temperatura por el puerto serie •  Representar el valor de la temperatura con dígitos Ideas: •  Añadir que cambie de temperatura Celsius a Fahrenheit con un pulsador •  Realizar un gráfico de barras. Alternar entre gráfico de barras y dígitos con pulsador •  Pulsador de desconexión •  Realizar media de valores para que no oscile HACER PROPUESTA 1
  • 11.
      SENSOR TEMPERATURA LM35 Sensorde temperatura calibrado •  Tensión de salida proporcional a la temperatura •  Cada grado centígrado equivale a 10mv 1°C=10mv   5v=1024  pasos    
  • 12.
  • 13.
  • 14.
    Realizar una aplicacióno juego usando la matriz de LEDs Ideas: •  Mover un pixel por la pantalla con el acelerómetro •  Dibujar usando el joystick-pulsador y borrar con el otro pulsador •  Juego de memorización de flechas HACER PROPUESTA 2
  • 15.
      MULTIPLEXADO Consiste en realizarbarridos a gran velocidad Crea la ilusión óptica de que todos los LEDs están encendidos simultaneamente
  • 16.
    FUNCIÓN mILLIS - millis(); Devuelveel número de milisegundos desde que se conectó la placa Arduino Es necesario usarlo si vamos a usar funciones con multiplexado y control de tiempo Si lo guardamos en una variable de tipo unsigned long se desborda cada 50 dias unsigned long time=0; time=millis();
  • 17.
  • 18.
    •  ¿Qué hemosconseguido hacer?   reflexionamos
  • 19.
          Este  guía  se  distribuye  bajo  licencia  Reconocimiento-­‐  ComparJrIgual  CreaJve   commons  4.0         (cc)  2014  José  Pujol  Pérez  Some  rights  reserved.  This  work  licensed  under  CreaJve   Commons  ARribuJon-­‐ShareAlike  License.  To  view  a  copy  of  full  license,  see                   hRp://creaJvecommons.org/licenses/by-­‐sa/3.0/  or  write  to  CreaJve  Commons,  559   Nathan  AbboR  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