SlideShare una empresa de Scribd logo
Matriz bicolor 8x8 + Shift Register 74CH595


int pinLatch = 10;      //Pin para el latch de los 74CH495
int pinDatos = 11;      //Pin para Datos serie del 74CH495
int pinReloj = 12;      //Pin para reloj del 74CH495

int letra = 0;           //Variable para cada letra
int ciclo = 0;           //Variable para los ciclos de cada letra en cada posicion
int desplaza = 0;        //Variable para generar desplazamiento en las filas

//Definimos los numeros decimales que hacen falta para dibujar cada caracter

#define   SP {0, 0, 0, 0, 0}                 //Espacio
#define   EX {0, 125, 0, 0, 0}               //Exclamacion !
#define   A {31, 36, 68, 36, 31}
#define   B {127, 73, 73, 73, 54,}
#define   C {62, 65, 65, 65, 34}
#define   D {127, 65, 65, 34, 28}
#define   E {127, 73, 73, 65, 65}
#define   F {127, 72, 72, 72, 64}
#define   G {62, 65, 65, 69, 38}
#define   H {127, 8, 8, 8, 127}
#define   I {0, 65, 127, 65, 0}
#define   J {2, 1, 1, 1, 126}
#define   K {127, 8, 20, 34, 65}
#define   L {127, 1, 1, 1, 1}
#define   M {127, 32, 16, 32, 127}
#define   N {127, 32, 16, 8, 127}
#define   O {62, 65, 65, 65, 62}
#define   P {127, 72, 72, 72, 48}
#define   Q {62, 65, 69, 66, 61}
#define   R {127, 72, 76, 74, 49}
#define   S {50, 73, 73, 73, 38}
#define   T {64, 64, 127, 64, 64}
#define   U {126, 1, 1, 1, 126}
#define   V {124, 2, 1, 2, 124}
#define   W {126, 1, 6, 1, 126}
#define   X {99, 20, 8, 20, 99}
#define   Y {96, 16, 15, 16, 96}
#define   Z {67, 69, 73, 81, 97}

//Escribimos la frase separando cada letra por comas
//En el primer numero lo adaptaremos la longitud de la frase (caracteres)
byte frase[32]
[6]={B,I,E,N,V,E,N,I,D,O,S,SP,A,SP,A,R,D,U,I,N,O,SP,A,C,A,D,E,M,Y,SP,SP,SP};

//Almacenamos los pines de las filas que van conectadas a los catodos
int gnd[13]={0,0,0,0,0,2,3,4,5,6,7,8,9};

//Configuramos la placa
void setup()

{
    //Ponemos del pin 2 al 12 como salidas
    for (int i=2;i<=12; i++)
      {
        pinMode(i, OUTPUT);
      }

    //Ponemos a nivel alto todas las lineas de los catodos de la matriz
    for (int g=2; g<=9; g++)
      {
        digitalWrite(g, HIGH);
}
}

void loop()
{

//Pequeño contador para que salga una letra de cada color
for (int count = 0 ; count <= 1; count ++)
  {
    if (count < 1 )
      {
        for (desplaza = 9; desplaza>=0; desplaza--)
           {
             for (ciclo=0; ciclo<=35; ciclo++)
               {
                 imprimeRojo();
               }
           }
      }
    else {
        for (desplaza = 9; desplaza>=0; desplaza--)
           {
             for (ciclo=0; ciclo<=35; ciclo++)
               {
                 imprimeVerde();
               }
           }
        }

    //Una vez ha mostrado una letra, sumamos uno para que salga la siguiente
    letra++;

    }

//Cuando ha llegado al final de la frase, lo pone a cero para que vuelva a salir
//Si cambiamos la longitud de la frase, este valor hay que cambiarlo
if(letra == 32)
  {
    letra = 0;
  }
}

//Funcion que imprime en color rojo
void imprimeRojo()
{
  //Un contador del tamaño de las letras (5 lineas de ancho)
  for (int z=0; z<=5; z++)
        {
            int fila = z + desplaza;                                   //Le decimos
en que linea empieza a dibujar
            digitalWrite(gnd[fila], LOW);                              //La ponemos
a cero
            digitalWrite(pinLatch, LOW);                               //Le decimos
a los registros que empiecen a escuchar los datos
            shiftOut(pinDatos, pinReloj, MSBFIRST, 0);                 //Le decimos
que en el ultimo registro no encienda nada
            shiftOut(pinDatos, pinReloj, MSBFIRST, frase[letra][z]);   //Le decimos
que imprima la línea z de la letra en el primer registro (rojo)
            digitalWrite(pinLatch, HIGH);                              //Guarda y
graba las salidas en los registros al poner a 1 el latch
            digitalWrite(gnd[fila], HIGH);                             //Apagamos
esa fila poniendola en alto
          }
}
//Funcion que imprime en color verde
void imprimeVerde()
{
  //Un contador del tamaño de las letras (5 lineas de ancho)
  for (int z=0; z<=5; z++)
        {
            int fila = z + desplaza;                                  //Le decimos
en que linea empieza a dibujar
            digitalWrite(gnd[fila], LOW);                          //La ponemos a
cero
            digitalWrite(pinLatch, LOW);                     //Le decimos a los
registros que empiecen a escuchar los datos
            shiftOut(pinDatos, pinReloj, MSBFIRST, frase[letra][z]); //Le decimos
que imprima la linea z de la letra en el segundo registro (verde)
            shiftOut(pinDatos, pinReloj, MSBFIRST, 0);       //Le decimos que en
el primer registro no encienda nada
            digitalWrite(pinLatch, HIGH);                    //Guarda y graba las
salidas en los registros al poner a 1 el latch
            digitalWrite(gnd[fila], HIGH);                         //Apagamos esa
fila poniendola en alto
          }
}

Más contenido relacionado

La actualidad más candente

Plots
PlotsPlots
Tutoria Lenguaje C++
Tutoria Lenguaje C++Tutoria Lenguaje C++
Tutoria Lenguaje C++
ruth_reategui
 
Lab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSLab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECS
Ing. Electrónica xD
 
Kruskal
KruskalKruskal
Kruskal
Alhe' Wero
 
Continuidad de una función en un punto
Continuidad de una función en un puntoContinuidad de una función en un punto
Continuidad de una función en un punto
toribio62
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discreto
guest1e528d
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
guest39b2f2
 
Factorial en C++
Factorial en C++Factorial en C++
Factorial en C++
KareliaRivas
 
seno_coseno_102.29
seno_coseno_102.29seno_coseno_102.29
seno_coseno_102.29
marloy revelo
 
Presentación3d
Presentación3dPresentación3d
Presentación3d
mephistodark
 
Respuesta experta. Tesis
Respuesta experta. Tesis Respuesta experta. Tesis
Respuesta experta. Tesis
Estefania Bravo
 
Laboratorio Computación Gráfica - Práctica 05
 Laboratorio Computación Gráfica - Práctica 05 Laboratorio Computación Gráfica - Práctica 05
Laboratorio Computación Gráfica - Práctica 05
Cristian Ortiz Gómez
 
Sistemas Numéricos
Sistemas NuméricosSistemas Numéricos
Sistemas Numéricos
fabian rubio lopez
 
Actividad 2 Control digital: Ejercicios de teoremas de transformada Z
Actividad 2 Control digital: Ejercicios de teoremas de transformada Z Actividad 2 Control digital: Ejercicios de teoremas de transformada Z
Actividad 2 Control digital: Ejercicios de teoremas de transformada Z
SANTIAGO PABLO ALBERTO
 
Actividad 3 gemio duran andrea
Actividad 3 gemio duran andreaActividad 3 gemio duran andrea
Actividad 3 gemio duran andrea
Andrea Gemio
 
Actividad 2. foro
Actividad 2. foroActividad 2. foro
Fase 5 ciclo for
Fase 5 ciclo forFase 5 ciclo for
Fase 5 ciclo for
luisoctis
 

La actualidad más candente (17)

Plots
PlotsPlots
Plots
 
Tutoria Lenguaje C++
Tutoria Lenguaje C++Tutoria Lenguaje C++
Tutoria Lenguaje C++
 
Lab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSLab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECS
 
Kruskal
KruskalKruskal
Kruskal
 
Continuidad de una función en un punto
Continuidad de una función en un puntoContinuidad de una función en un punto
Continuidad de una función en un punto
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discreto
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
 
Factorial en C++
Factorial en C++Factorial en C++
Factorial en C++
 
seno_coseno_102.29
seno_coseno_102.29seno_coseno_102.29
seno_coseno_102.29
 
Presentación3d
Presentación3dPresentación3d
Presentación3d
 
Respuesta experta. Tesis
Respuesta experta. Tesis Respuesta experta. Tesis
Respuesta experta. Tesis
 
Laboratorio Computación Gráfica - Práctica 05
 Laboratorio Computación Gráfica - Práctica 05 Laboratorio Computación Gráfica - Práctica 05
Laboratorio Computación Gráfica - Práctica 05
 
Sistemas Numéricos
Sistemas NuméricosSistemas Numéricos
Sistemas Numéricos
 
Actividad 2 Control digital: Ejercicios de teoremas de transformada Z
Actividad 2 Control digital: Ejercicios de teoremas de transformada Z Actividad 2 Control digital: Ejercicios de teoremas de transformada Z
Actividad 2 Control digital: Ejercicios de teoremas de transformada Z
 
Actividad 3 gemio duran andrea
Actividad 3 gemio duran andreaActividad 3 gemio duran andrea
Actividad 3 gemio duran andrea
 
Actividad 2. foro
Actividad 2. foroActividad 2. foro
Actividad 2. foro
 
Fase 5 ciclo for
Fase 5 ciclo forFase 5 ciclo for
Fase 5 ciclo for
 

Similar a Sofware de matriz

Comandos
ComandosComandos
Comandos
ariannalizeeth
 
Comandoss
ComandossComandoss
Comandoss
ariannalizeeth
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y Java
Ana Ruth G H
 
Curso - C. 02. C tipos y expresiones.pptx
Curso - C. 02. C tipos y expresiones.pptxCurso - C. 02. C tipos y expresiones.pptx
Curso - C. 02. C tipos y expresiones.pptx
fcomoya3248
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
Beydasanchezhernandez
 
Comandos
ComandosComandos
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
Beydasanchezhernandez
 
Curso Básico de Pl Sql Oracle
Curso Básico de Pl Sql OracleCurso Básico de Pl Sql Oracle
Curso Básico de Pl Sql Oracle
luisguil
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
Beydasanchezhernandez
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
ariannalizeeth
 
Numeros aleatorios
Numeros aleatoriosNumeros aleatorios
Numeros aleatorios
Marcelino Torres
 
Matrices
MatricesMatrices
Matrices
alesso1234
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
Beydasanchezhernandez
 
comandos
comandoscomandos
comandos
arecerv
 
53692670 arduino-programacion
53692670 arduino-programacion53692670 arduino-programacion
53692670 arduino-programacion
Cesar Castelo
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
Markoos Riveroo
 
if-while-for.ppsx
if-while-for.ppsxif-while-for.ppsx
if-while-for.ppsx
MULTISERVICIOS INFORMATICOS
 
Manual software
Manual softwareManual software
Manual software
neyj11r
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
Richard Eliseo Mendoza Gafaro
 
Capítulo 1 Qbasic entrada y salida básica
Capítulo 1  Qbasic entrada y salida básicaCapítulo 1  Qbasic entrada y salida básica
Capítulo 1 Qbasic entrada y salida básica
Julio Ayala Rolón
 

Similar a Sofware de matriz (20)

Comandos
ComandosComandos
Comandos
 
Comandoss
ComandossComandoss
Comandoss
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y Java
 
Curso - C. 02. C tipos y expresiones.pptx
Curso - C. 02. C tipos y expresiones.pptxCurso - C. 02. C tipos y expresiones.pptx
Curso - C. 02. C tipos y expresiones.pptx
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
Comandos
ComandosComandos
Comandos
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
Curso Básico de Pl Sql Oracle
Curso Básico de Pl Sql OracleCurso Básico de Pl Sql Oracle
Curso Básico de Pl Sql Oracle
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
Numeros aleatorios
Numeros aleatoriosNumeros aleatorios
Numeros aleatorios
 
Matrices
MatricesMatrices
Matrices
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
comandos
comandoscomandos
comandos
 
53692670 arduino-programacion
53692670 arduino-programacion53692670 arduino-programacion
53692670 arduino-programacion
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
if-while-for.ppsx
if-while-for.ppsxif-while-for.ppsx
if-while-for.ppsx
 
Manual software
Manual softwareManual software
Manual software
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Capítulo 1 Qbasic entrada y salida básica
Capítulo 1  Qbasic entrada y salida básicaCapítulo 1  Qbasic entrada y salida básica
Capítulo 1 Qbasic entrada y salida básica
 

Sofware de matriz

  • 1. Matriz bicolor 8x8 + Shift Register 74CH595 int pinLatch = 10; //Pin para el latch de los 74CH495 int pinDatos = 11; //Pin para Datos serie del 74CH495 int pinReloj = 12; //Pin para reloj del 74CH495 int letra = 0; //Variable para cada letra int ciclo = 0; //Variable para los ciclos de cada letra en cada posicion int desplaza = 0; //Variable para generar desplazamiento en las filas //Definimos los numeros decimales que hacen falta para dibujar cada caracter #define SP {0, 0, 0, 0, 0} //Espacio #define EX {0, 125, 0, 0, 0} //Exclamacion ! #define A {31, 36, 68, 36, 31} #define B {127, 73, 73, 73, 54,} #define C {62, 65, 65, 65, 34} #define D {127, 65, 65, 34, 28} #define E {127, 73, 73, 65, 65} #define F {127, 72, 72, 72, 64} #define G {62, 65, 65, 69, 38} #define H {127, 8, 8, 8, 127} #define I {0, 65, 127, 65, 0} #define J {2, 1, 1, 1, 126} #define K {127, 8, 20, 34, 65} #define L {127, 1, 1, 1, 1} #define M {127, 32, 16, 32, 127} #define N {127, 32, 16, 8, 127} #define O {62, 65, 65, 65, 62} #define P {127, 72, 72, 72, 48} #define Q {62, 65, 69, 66, 61} #define R {127, 72, 76, 74, 49} #define S {50, 73, 73, 73, 38} #define T {64, 64, 127, 64, 64} #define U {126, 1, 1, 1, 126} #define V {124, 2, 1, 2, 124} #define W {126, 1, 6, 1, 126} #define X {99, 20, 8, 20, 99} #define Y {96, 16, 15, 16, 96} #define Z {67, 69, 73, 81, 97} //Escribimos la frase separando cada letra por comas //En el primer numero lo adaptaremos la longitud de la frase (caracteres) byte frase[32] [6]={B,I,E,N,V,E,N,I,D,O,S,SP,A,SP,A,R,D,U,I,N,O,SP,A,C,A,D,E,M,Y,SP,SP,SP}; //Almacenamos los pines de las filas que van conectadas a los catodos int gnd[13]={0,0,0,0,0,2,3,4,5,6,7,8,9}; //Configuramos la placa void setup() { //Ponemos del pin 2 al 12 como salidas for (int i=2;i<=12; i++) { pinMode(i, OUTPUT); } //Ponemos a nivel alto todas las lineas de los catodos de la matriz for (int g=2; g<=9; g++) { digitalWrite(g, HIGH);
  • 2. } } void loop() { //Pequeño contador para que salga una letra de cada color for (int count = 0 ; count <= 1; count ++) { if (count < 1 ) { for (desplaza = 9; desplaza>=0; desplaza--) { for (ciclo=0; ciclo<=35; ciclo++) { imprimeRojo(); } } } else { for (desplaza = 9; desplaza>=0; desplaza--) { for (ciclo=0; ciclo<=35; ciclo++) { imprimeVerde(); } } } //Una vez ha mostrado una letra, sumamos uno para que salga la siguiente letra++; } //Cuando ha llegado al final de la frase, lo pone a cero para que vuelva a salir //Si cambiamos la longitud de la frase, este valor hay que cambiarlo if(letra == 32) { letra = 0; } } //Funcion que imprime en color rojo void imprimeRojo() { //Un contador del tamaño de las letras (5 lineas de ancho) for (int z=0; z<=5; z++) { int fila = z + desplaza; //Le decimos en que linea empieza a dibujar digitalWrite(gnd[fila], LOW); //La ponemos a cero digitalWrite(pinLatch, LOW); //Le decimos a los registros que empiecen a escuchar los datos shiftOut(pinDatos, pinReloj, MSBFIRST, 0); //Le decimos que en el ultimo registro no encienda nada shiftOut(pinDatos, pinReloj, MSBFIRST, frase[letra][z]); //Le decimos que imprima la línea z de la letra en el primer registro (rojo) digitalWrite(pinLatch, HIGH); //Guarda y graba las salidas en los registros al poner a 1 el latch digitalWrite(gnd[fila], HIGH); //Apagamos esa fila poniendola en alto } }
  • 3. //Funcion que imprime en color verde void imprimeVerde() { //Un contador del tamaño de las letras (5 lineas de ancho) for (int z=0; z<=5; z++) { int fila = z + desplaza; //Le decimos en que linea empieza a dibujar digitalWrite(gnd[fila], LOW); //La ponemos a cero digitalWrite(pinLatch, LOW); //Le decimos a los registros que empiecen a escuchar los datos shiftOut(pinDatos, pinReloj, MSBFIRST, frase[letra][z]); //Le decimos que imprima la linea z de la letra en el segundo registro (verde) shiftOut(pinDatos, pinReloj, MSBFIRST, 0); //Le decimos que en el primer registro no encienda nada digitalWrite(pinLatch, HIGH); //Guarda y graba las salidas en los registros al poner a 1 el latch digitalWrite(gnd[fila], HIGH); //Apagamos esa fila poniendola en alto } }