Go Down

Topic: Matriz 8x8 con control de cada led individual (Read 4319 times) previous topic - next topic

Dragun

Muy buenas , estoy en un projecto personal para extraer salidas desde un archivo lua de un simulador de combate de pc.  Por si alguien le interesa es para exportar salidas del simulador DCS , cuando tenga algo definitivo lo posterare..
El tema es que puedo mandar un valor desde este archivo y que el Arduino Duemilanove me encienda un led conectado a una salida normal , si cumple la condicion de que tiene que estar encendido, recibida por el archivo lua que exporta ese estado desde el Sim  al Arduino via puerto serie.


Bien , ahora quiero aumentar las salidas del Arduino Duemilanove con una matriz , por lo que e estado leyendo se puede hacer con un Max7219 ó AS1106 .

El tema es que no se como indicar el led que quiero que se encienda exactamente , es decir , segun esta matriz con un MAX7219 de 7x5:



No se como decirle al arduino que me encienda (C5,R5), entendiendo que la conexion al arduino es Columnas (C)  conectada a tierra (a través de una resistencia de 220 ohm) mientras que las filas (R) es conectada a voltaje (5v).

Por otro lado teniendo en cuenta que se puede dar el caso que todas se activen a la vez , seria mejor usar otro tipo de matriz o sistema ?

Muchas gracias a todos ,

Espero vuestros consejos

eried

Tienes que ir led por led rapidamente y así das la ilusión de tener control individual.
My website: http://ried.cl

Dragun

No te entiendo , perdona  soy muy novato ¡¡¡, sory, me podias poner un ejemplo de 1 led , del (C5,R5) por ejemplo? , lo que recibe el led es por ejemplo un 'warningOn' como cadena paa saber que se tiene que activar .

eried

No entiendo mucho tu pregunta, en el arduino mantienes una matriz con las leds. Cuando te llega algún "cambio" desde tu aplicación cambias la matriz.

Por otro lado  un ciclo que recorre todos los pines de tu matriz de leds energiza los que corresponden a cada led. Prueba con unas pilas jugando con los pines para que veas como funciona primero.
My website: http://ried.cl

Dragun

Pues me estoy perdiendo , es decir , me dices que no activo un led sino que modifico el estado de toda la matriz , poniendo el que interesa  en on y los demas apagados?? , ...creo que me estoy liando.

ahora mismo hago esto:
Code: [Select]

int led = 13;

void setup()
  {
    Serial.begin(115200);
    pinMode(led, OUTPUT);   
  }
 
void loop()
  {
    if(Serial.available() > 0)
    {
      if(Serial.read() == 119) // 119 = w
        {
          digitalWrite(led, HIGH);
        }
       else
         {
          digitalWrite(led, LOW);
         }
    }
     
   
  }


Mi pregunta es, segun la matriz de antes, como hago para encender el led1 que esta en (C5,R5) ? este es mi problema , se que funcionaria poniendo la C5 a masa y R5 a 5v.Pero como hago esto, en formato codigo me refiero ??

Muchas gracias por tu tiempo y paciencia

eried

¿Quieres aprenderlo o es parte del requisito?
http://www.arduino.cc/playground/Main/LEDMatrix

Los pines tienen un modo en que actuan 'como tierra'
http://www.arduino.cc/en/Reference/pinMode
My website: http://ried.cl

Dragun

Te agradezco los link de referencia , pero aun asi no se como buscar en esa infomacion como puedo controlar las filas y columnas que en este caso controla el max7219 . No consigo imaginarlo , podrias ponerme un ejemplo de lo te comentaba que necesitaba conseguir ??

Muchas gracias.

eried

#7
Nov 01, 2012, 12:29 am Last Edit: Nov 01, 2012, 12:30 am by eried Reason: 1
pones pin input <---- led ---< pin output
o a la inversa, así puedes controlar 2 leds.

Mira un concepto simple es http://en.wikipedia.org/wiki/Charlieplexing (* fijate en la foto de 6 leds con 3 pines, ahi juegan con los estados de los pines)
podrias incluso controlar toda la pantalla sin nada adicional, solo 9 pines y charlieplexing
My website: http://ried.cl

Dragun

#8
Nov 01, 2012, 12:45 am Last Edit: Nov 01, 2012, 12:57 am by Dragun Reason: 1
Pero esto es sin montaje del max7219 y teniendo la matriz conectada directamente al arduino http://www.arduino.cc/playground/Main/DirectDriveLEDMatrix , mi necesidad es la de encender un solo led , y con matriz realizada con un 7219

Segun este esquema si quisiera encender el led (C5,R5) pondria el  pin6 en HIGH y pin1 en LOW , eso lo entiendo , pero  donde no llego es como se haria para hacerlo a traves de la matriz conectada a un Max7219 .

eried

Ah... te comentaba cosas generales con la esperanza de que buscaras :P
http://www.arduino.cc/playground/LEDMatrix/Max7219

Y el código que usan ahí (aparte del inicial):
Code: [Select]
157.
  //if you use just one MAX7219 it should look like this

158.
  /*

159.
   maxSingle(1,1);                       //  + - - - - - - -

160.
   maxSingle(2,2);                       //  - + - - - - - -

161.
   maxSingle(3,4);                       //  - - + - - - - -

162.
   maxSingle(4,8);                       //  - - - + - - - -

163.
   maxSingle(5,16);                      //  - - - - + - - -

164.
   maxSingle(6,32);                      //  - - - - - + - -

165.
   maxSingle(7,64);                      //  - - - - - - + -

166.
   maxSingle(8,128);                     //  - - - - - - - +

167.


168.
  */

169.
  //if you use more than one MAX7219, it should look like this

170.


171.
  /*

172.
  maxAll(1,1);                       //  + - - - - - - -

173.
  maxAll(2,3);                       //  + + - - - - - -

174.
  maxAll(3,7);                       //  + + + - - - - -

175.
  maxAll(4,15);                      //  + + + + - - - -

176.
  maxAll(5,31);                      //  + + + + + - - -

177.
  maxAll(6,63);                      //  + + + + + + - -

178.
  maxAll(7,127);                     //  + + + + + + + -

179.
  maxAll(8,255);                     //  + + + + + + +
My website: http://ried.cl

Dragun

Gracias gracias , ahora si lo veo , el problema es que no sabia verlo aunque me lo mostrabas y me lo dabas echo , te lo agradezco y pongo hacer practicas , te agradezco la info y el hacerme leer, de verdad, me as sido de muchisima ayuda , ahora a trabajar y seguir leyendo... Espero que con la practica aprenda a manejar mejor la ayuda ...


Seguire informando sobre le project DCSBoardOuts (DBO)

Dragun

Retomo el post para haber si alguien me puede confirmar, que usando una matriz de con un MAX7219 ó AS1106 , no podría tener mas de 10 cm de longitud desde la salida de la matriz al led en cuestión.

si esto fuera así me resultaría inútil este sistema , a que sistema podría optar para conseguir sacar de un Arduino por los menos 60 salidas??


Como siempre muchas gracias a todos por echarme una mano

Go Up