augusto0112

lab11.0

Oct 26th, 2016
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.18 KB | None | 0 0
  1. /*
  2. ********** Arduino **********
  3.  * Laboratorio 11: Mensaje desde Processing a Matriz LED 8x8 a través de IC MAX7219.
  4.  * Autor: Cristian Augusto Restrepo
  5.  * Descripción:
  6.  *   Enviar desde una interfaz en Processing un mensaje a una matriz LED 8x8
  7.  *   (desplazándose de izquierda a derecha) a través de IC MAX7219.
  8. */
  9. #include "LedControl.h"
  10. /*
  11.  * porcion de codigo tomada de:
  12.  * http://labs-embebidos.blogspot.com.co/
  13. */
  14. //array matrix que contiene la informacion para pintar los caracteres validos en la matrix led
  15. byte letras [][5] = {{B01111100, B00010010, B00010001, B00010010, B01111100},//A
  16.                     {B01000001, B01111111, B01001001, B01001001, B00110110},//B
  17.                     {B00111110, B01000001, B01000001, B01000001, B00100010},//C
  18.                     {B01000001, B01111111, B01000001, B01000001, B00111110},//D
  19.                     {B01111111, B01001001, B01001001, B01001001, B01000001},//E
  20.                     {B01111111, B00001001, B00001001, B00000001, B00000001},//F
  21.                     {B00111110, B01000001, B01001001, B01001001, B00111010},//G
  22.                     {B01111111, B00001000, B00001000, B00001000, B01111111},//H
  23.                     {B01000001, B01000001, B01111111, B01000001, B01000001},//I
  24.                     {B00100000, B01000000, B01000000, B00111111, B00000001},//J
  25.                     {B01111111, B00001000, B00010100, B00100010, B01000001},//K
  26.                     {B01111111, B01000000, B01000000, B01000000, B01000000},//L
  27.                     {B01111111, B00000010, B00000100, B00000010, B01111111},//M
  28.                     {B01111111, B00000010, B00000100, B00001000, B01111111},//N
  29.                     {B01111110, B00000101, B00001001, B00010001, B01111110},//Ñ
  30.                     {B00111110, B01000001, B01000001, B01000001, B00111110},//O
  31.                     {B01111111, B00001001, B00001001, B00001001, B00000110},//P
  32.                     {B00111110, B01000001, B01010001, B00100001, B01011110},//Q
  33.                     {B01111111, B00001001, B00011001, B00101001, B01000110},//R
  34.                     {B00100110, B01001001, B01001001, B01001001, B00110010},//S
  35.                     {B00000001, B00000001, B01111111, B00000001, B00000001},//T
  36.                     {B00111111, B01000000, B01000000, B01000000, B00111111},//U
  37.                     {B00000111, B00011000, B01100000, B00011000, B00000111},//V
  38.                     {B01111111, B00100000, B00011000, B00100000, B01111111},//W
  39.                     {B01100011, B00010100, B00001000, B00010100, B01100011},//X
  40.                     {B00000111, B00001000, B01110000, B00001000, B00000111},//Y
  41.                     {B01000001, B01100001, B01010001, B01001001, B01000111},//Z
  42.                     {0x00, 0x82, 0xff, 0x80, 0x00},//1
  43.                     {0xc2, 0xa1, 0x91, 0x89, 0x86},//2
  44.                     {0x81, 0x81, 0x85, 0x8b, 0x71},//3
  45.                     {0x18, 0x14, 0x12, 0xff, 0x00},//4
  46.                     {0x8f, 0x89, 0x89, 0x89, 0x71},//5
  47.                     {0x7c, 0x8a, 0x89, 0x89, 0x70},//6
  48.                     {0x01, 0xf1, 0x09, 0x05, 0x03},//7
  49.                     {0x76, 0x89, 0x89, 0x89, 0x76},//8
  50.                     {0x06, 0x89, 0x89, 0x89, 0x7e },//9
  51.                     {B01111110, B11100001, B10011001, B10000111, B01111110}//O
  52.                     };
  53. //------------------------------------------------------------------------------------------------
  54. //Se inicializa la varialbe que controla la matrix led
  55. LedControl matrix = LedControl(12,11,10,1);
  56. //variable que tendra la palabra a mostrar
  57. String palabra = "";
  58. //array que contiene los caracteres valido a mostrar
  59. char caracteres [] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
  60.                       'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
  61.  
  62. void setup() {
  63.   // put your setup code here, to run once:
  64. //se inicializa el puerto serial
  65.   Serial.begin(9600);
  66. //se enciende los leds
  67.   matrix.shutdown(0, false);
  68. //se asigna la intencidad de los leds
  69.   matrix.setIntensity(0, 1);
  70. //se borra cualquier cosa que haya estado pintada previamente
  71.   matrix.clearDisplay(0);      
  72. }
  73.  
  74. void loop() {
  75.   // put your main code here, to run repeatedly:
  76.   obtenerCaracter();
  77. }
  78.  
  79. //metodo que lee las palabras enviadas por el serial
  80. void obtenerCaracter(){
  81. //se valida si hay informacion en el Serial
  82.   if(Serial.available()){
  83. //se lee toda la cada de caracteres enviada
  84.     palabra = Serial.readString();
  85.   }
  86.   for(int i = 0; i < palabra.length(); i++){
  87.     for(int j = 0; j < sizeof(caracteres); j++){
  88. //se lee cada caracter y se valida para su impresion en la matrix led
  89.       if(palabra.charAt(i) == caracteres[j]){
  90.           imprimirCaracter(letras[j]);
  91.       }
  92.     }
  93.   }
  94. }
  95. //metodo que imprime la matrix led el caracter enviado por parametro
  96. void imprimirCaracter(byte elemento[]){
  97.   for(int j = 8; j > -8; j--){
  98.     for(int i = 0; i < 5; i++){
  99. //se encienden los led que corresponde al caracter solicitado
  100. //moviendolo de izquierda a derecha
  101.       matrix.setRow(0, j+i, elemento[i]);
  102.       delay(15);
  103. //se apagan los led's de la fila anterior
  104. //para generar el efecto de movimiento
  105.       matrix.setRow(0, j+6, 0x00);
  106.     }
  107.   }
  108. }
Add Comment
Please, Sign In to add comment