Matriz
Una vez que tenemos todo conectado.. empecemos a programar!
Parte 3: Programando…
Antes de comenzar a darle caña al programa, oscomento una novedad de Arduino Academy, a partir de ahora, cada proyecto tendrá enlazado su correspondiente hilo en el foro, de manera que allí podáis derivar vuestras consultas, dudas, sugerencias y versiones mejoradas tanto de software como de hardware, además de las descargas del proyecto, que yo me puedo equivocar muy fácilmente!!
El enlace del foro para este proyecto es ESTE!
En cuanto alprograma, he realizado uno muy sencillo, y nada optimizado, así que espero que aquellos ases de la programación colaboréis en mejorarlo, adaptarlo quemarlo o lo que haga falta en el foro, ok?
Observemos en primer lugar el programa al completo.
?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | /* Tutorial # 0008 Arduino Academy Matriz bicolor 8x8 + Shift Register 74CH595 En este proyecto vamos a controlar los anodos de una matriz led bicolor con dos desplazamientos de registros, y las filas de lamatriz con arduino directamente, reproduciendo asi una serie de caracteres previamente definidos. Todos los detalles en http://www.arduinoacademy.com Este proyecto es de dominio público. */ int pinLatch = 10; //Pin para el latch de los 74CH495int pinDatos = 11; //Pin para Datos serie del 74CH495int pinReloj = 12; //Pin para reloj del 74CH495 int letra = 0; //Variable para cadaletraint ciclo = 0; //Variable para los ciclos de cada letra en cada posicionint 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 primernumero 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 catodosint gnd[13]={0,0,0,0,0,2,3,4,5,6,7,8,9}; //Configuramos la placavoid 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 colorfor (int count = 0 ; count <= 1; count ++) { if (count < 1 ) { for (desplaza = 9; desplaza>=0; desplaza--) { for (ciclo=0; ciclo<=35;...
Regístrate para leer el documento completo.