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