Pages: [1]   Go Down
Author Topic: Matriz 8x8 con control de cada led individual  (Read 3525 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tienes que ir led por led rapidamente y así das la ilusión de tener control individual.
Logged

My website: http://ried.cl

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 .
Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

My website: http://ried.cl

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

¿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
Logged

My website: http://ried.cl

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: October 31, 2012, 06:30:34 pm by eried » Logged

My website: http://ried.cl

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 .
« Last Edit: October 31, 2012, 06:57:01 pm by Dragun » Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Y el código que usan ahí (aparte del inicial):
Code:
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);                     //  + + + + + + +
Logged

My website: http://ried.cl

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: