Gestion de matriz de leds con AS1106

Saludos...

Estoy probando un driver de led similar al Max7219 el AS1106, empleando como inicio una fila de 8 leds, entiendo que como row=1 y col=8. Estoy empleando una fuente de 5 volt externa y un pote de 50 k, para regular la luminosidad, conectado estan iluminados todos los leds...

He retocado el script de Tronixstuff, para probar un encendido y apagado de los leds cada 100 ms en un sentido y otro...

el resultado es decepcionante,...

#include "LedControl.h" // need the library
LedControl lc=LedControl(12,11,10,1); // lc is our object
// pin 12 is connected to the MAX7219 pin 1
// pin 11 is connected to the CLK pin 13
// pin 10 is connected to LOAD pin 12
// 1 as we are only using 1 MAX7219
int row=0;
void setup()
{
// the zero refers to the MAX7219 number, it is zero for 1 chip
lc.shutdown(0,false);// turn off power saving, enables display
lc.setIntensity(0,8);// sets brightness (0~15 possible values)
lc.clearDisplay(0);// clear screen
}
void loop()

{
for (int col=0; col<8; col++)
{
lc.setLed(0,col,row,true); // turns on LED at col, row
delay(10);
lc.setLed(0,col,row,false); // turns off LED at col, row
delay(10);
}
}

Podriais decirme donde meto la gamba???

inigohe

Buenas a todos...

Disculpar la insistencia... No sera que tengo que hacer la matriz 8x8 para que el driver funcione correctamente?, en principio pensaba realizarlo en una matriz (1x8)...

Inigohe

El AS1106, no lo he usado nunca. Recorres la columnas, yo por si acaso recorrería las filas, por si no lo hubieses conectado bien.

Suele ser aconsejable que en la foto salga algo enfocado :smiley:

Lo que te ha pasado es que tu cámara no enfoca tan cerca, aunque se vea más pequeño haz la foto desde un poco más lejos, lo justo para que te llegue a enfocar.

Buenas...

Despues de checar todo lo posible, segui sin poder gestionar los leds con drivers... No se porque motivo habia una derivacion, los leds no recibian un 0 y se quedaban encendidos en un modo atenuado.... Este fin de semana me he decantado por otro proyecto similar, cuyo link teneis a continuacion...

http://www.klugers.net/web/hardware/perifericos/15-8-x-7-segmentos

A pesar de que teneis conocimiento de la tecnica aprovecho para colgar un link del proceso desde cero, hasta la programacion del Arduino con un sketch sencillo, espero no haber metido la pata, de todos modos aceptare todos los consejos que me deis.

Como ya no tenemos megaupload, os pongo un link de 4shared, espero que os funcione bien,,, es lo que hay

http://www.4shared.com/rar/tmpZ3nGm/Pcb_diy.html

Es script que he empleado lo he modificado del ejemplo que viene en el compilador...

//Siempre tenemos que incluir la libreria...

#include "LedControl.h"

/*
Necesitamos un led control y asignar los pines
***** Tal vez estos no funcionen ¡Compruebalos! *****
pin 12 se conecta al DataIn
pin 11 se conecta al CLK
pin 10 se conecta al LOAD
Solamente disponemos de un AS1106.
Esta es una modificacion de un ejemplo de Arduino....diseñada
en principio para 4 digitos...
*/
LedControl lc=LedControl(12,11,10,1);

/* Siempre hay qye esperar un poco */
unsigned long delaytime=250;

void setup() {
/*
El AS1106 esta en modo reposo y tenemos que despertarlo
/
lc.shutdown(0,false);
/
Set the brightness to a medium values /
lc.setIntensity(0,8);
/
and clear the display */
lc.clearDisplay(0);
}

/*
Este metodo nos presenta la palabra Arduino y
finalmente limpia el display.
*/
void writeArduinoOn7Segment() {
lc.setChar(0,7,'a',false);
delay(delaytime);
lc.setRow(0,6,0x05);
delay(delaytime);
lc.setChar(0,5,'d',false);
delay(delaytime);
lc.setRow(0,4,0x1c);
delay(delaytime);
lc.setRow(0,3,B00010000);
delay(delaytime);
lc.setRow(0,2,0x15);
delay(delaytime);
lc.setRow(0,1,0x1D);
delay(delaytime);
lc.clearDisplay(0);
delay(delaytime);
}

/*
Este metodo nos presentara una secuencia hexadecimal de
numeros y letras, como minimo el efecto se vera bien con
4 digitos, sino ...
*/
void scrollDigits() {
for(int i=0;i<13;i++) {
lc.setDigit(0,7,i,false);
lc.setDigit(0,6,i+1,false);
lc.setDigit(0,5,i+2,false);
lc.setDigit(0,4,i+3,false);
lc.setDigit(0,3,i+4,false);
lc.setDigit(0,2,i+5,false);
lc.setDigit(0,1,i+6,false);
lc.setDigit(0,0,i+7,false);
delay(delaytime);
}
lc.clearDisplay(0);
delay(delaytime);
}

void loop() {
writeArduinoOn7Segment();
scrollDigits();
}

He empleado una protoboard para colocar los dos condensadores 10 uf electrolitico y 10 nF ceramico y la conexion a la fuente de alimentacion de 6 volt y 400 mA, que en su dia canibalice de un movil

En principio dispongo de un teclado mecanico 4x4 que he preparado para insertar numeros en el display y por ejemplo iniciar una cuenta atras, o algo similar, pero eso ya es harina de otro costal.

En principio me conformo con el resultado, que es muy prometedor...

inigohe

Buenas...

He encontrado un esquema de shield para una matriz de botones 4x4, empleando una sola entrada analogica... con permiso de su autor os pongo el link y una foto del esquematico...

Un saludo...

inigohe