mensajes en matriz 8x8

hola, he conseguido hacer funcioanr una matriz led de 8x8 , siguiendo este tutorial, y con el ultimo codigo, usando timer1

http://www.arduino.cc/playground/Main/DirectDriveLEDMatrix

/*
 * _8x8 LED matrix
 *
 * (c) 2009 BlushingBoy.net
 */

#include "TimerOne.h"

byte rows[8] = {9, 14, 8, 12, 1, 7, 2, 5};
byte cols[8] = {13, 3, 4, 10, 6, 11, 15, 16};
byte pins[16] = {5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10, 9, 8, 7, 6};
byte screen[8] = {0, 0, 0, 0, 0, 0, 0, 0};
volatile byte screenRow = 0;
volatile byte screenCol = 0;

void setup() {
  Timer1.initialize(100);
  for (int i = 2; i <= 17; i++)
    pinMode(i, OUTPUT);
  Timer1.attachInterrupt(doubleBuffer);
}

// interrupt routine
void doubleBuffer() {
  // reset the previous iteration
  digitalWrite(translatePin(rows[screenRow]), HIGH); // set previous off
  digitalWrite(translatePin(cols[screenCol]), LOW);  // set previous off
  // go to the next iteration...
  // go to the next screenCol, wrap if necessary
  screenCol++;
  if (screenCol >= 8) {
    screenCol = 0;
    // when screenCol wraps, go to the next screenRow, wrap if necessary
    screenRow++;
    if (screenRow >= 8) {
      screenRow = 0;
    }
  }
  // set this iteration
  if((screen[screenRow]>>screenCol)&B1 == B1) {
    digitalWrite(translatePin(rows[screenRow]), LOW);  // set this on
    digitalWrite(translatePin(cols[screenCol]), HIGH); // set this on
  } else {
    digitalWrite(translatePin(rows[screenRow]), HIGH); // set this off
    digitalWrite(translatePin(cols[screenCol]), LOW);  // set this off
  }
}

byte translatePin(byte original) {
  return pins[original - 1];
}

void allOFF() {
  for (int i = 0; i < 8; i++)
    screen[i]=0;
}

void on(byte row, byte column) {
    screen[column-1] |= (B1<<(row-1)); 
}

void off(byte row, byte column) {
    screen[column-1] &= ~(B1<<(row-1)); 
}

// looping some LEDs routine
void loop() {
  allOFF();
  delay(1000);
  on(3,3); on(3,4); on(3,5); on(3,6);
  delay(400);
  allOFF();
  delay(1000);
  on(4,4); 
  delay(400);
}

el problema es , que a la matriz se le quedan todos los leds iluminados, cuando yo pensaba que iba a mostrar "hello", tengo poca idea de programacion, pero deduzco que algo esta mal , porque lo que esta en el void loop no "aparece" reflejado en la matriz, es decir siempre muestra todos los leds encendidos

me gustaria que alguien me dijera como poner algun tipo de mensaje

muchas gracias, un saludo

recien cargado el codigo

trasteando con el codigo jeje

pd: siento mi ignorancia, pero estoi intentando aprender

un saludo y gracias

Yo nunca lo he utilizado, pero según el enlace que has puesto, el display tendría que tener 16 cables: 8 por un lado y 8 por el otro. En tu foto veo 4 a un lado y un amasijo que parecen más de 8 por el otro. ¿Eso está bien?
Por cierto, en el enlace que has puesto, pone por aquí que tal vez debas poner unas resistencias de unos pocos ohmnios en los pines fila para que no se achicharren los leds.

Te recomendaría también comprobar que la matriz de leds es similar a la que has puesto en tu enlace. Mira lo que se comenta aquí: http://www.tigoe.net/pcomp/code/category/arduinowiring/424

gracias por responder, el conexionado esta bien , ya he echo mas pruebas con la misma matriz, y despues de una tarde he dado con su patillaje, cojo 4 cables por un lado y 12 de otro , porque utilizo una matriz bicolor, aunque la este usando solo con uno , el rojo

el patillaje de mi matriz es el siguiente:

y conexionandola asi ya realicé un ejemplo , el cual movia un punto de la matriz con un potenciometro y resulto que me salió bien

he probado el ejemplo del link que me has peusto de como hacer el efecto matrix en la matriz, y funciona,

muchas gracias

sigo intentando coseguir mostrar un mensaje, o al menos una letra :slight_smile:

Estupendo, me alegro de que te funcione.
¡El vídeo está chulísimo! :slight_smile:

haber si ahora alguien me dice como mostrar mensajes, o al menos una letra en la matriz :stuck_out_tongue: :wink:

un saludo

En este enlace tienes una idea de cómo guardar la información de las letras: Minor Project - Keyboard input, Matrix Display Output | Arduino Blog

con on() y off() enciendes y apagas los leds que forman la letra, en función de la información de los bits del array que define la letra.

En el vídeo que aparece en este enlace: 112-LED Coffee Table | Hackaday en el minuto 2:02 puedes ver la idea de un scroll.

Ánimo! :slight_smile: