puertas logicas para el manejo de LEDs

Hola a todos de entemano. Lo que necesito saber es el nombre de algun integrado o algo que me permita enviar una señal binaria por el puerto LPT de la PC y ensender un LED segun el numero enviado. y que este se mantenga encendido hasta que no reciba otra señal. Por ejemplo si envio "0000 0001" encendera el Led 1 si envio "0000 0101" encendera el Led 5 y si vuelvo enviar "0000 0001" como ya taba encendido se apagara el Led 1" El programa lo tengo casi diseñado completamente me faltaria una idea de por donde encarar el circuito. tendria que manejar 70 LEDS +o- y la señal binaria podria contar de 8 bits, quizas tb pueda usar 12 bits pero supongamos que solo 8. gracias agradezco cualquier ayuda o dato que me puedan dar para orientarme por donde tengo que encarar el asunto.

Reply to
Mauricio
Loading thread data ...

El domingo pudimos ver a Mauricio diciendo:

Pues a base de lógica yo no lo veo nada fácil, sobretodo hablando de ¡70! leds y creo entender que el estado de cada uno de ellos no depende del resto, esto es, que si después de ordenar encender el 10 ordenas encender el 15 éste último se enicende pero el 10 no se inmuta hasta que vuelvas a llamarlo. Ni siquiera con EPROMS se me ocurre algo sencillo. En mi opinión lo más factible sería un micro y los expansores de puertos necesarios para llegar a 70. Sería relativamente sencillo y: Podrías añadir una interfaz serie (RS232 o incluso USB)si quisieras. Podrías tener un historial de cambios de estados si quisieras (aunque viniendo las órdenes de un PC, sería más fácil y con millones de veces más capacidad hacerlo en éste). En vez de leds podrías tener una LCD gráfica (complicando el montaje a lo bestia y encareciéndolo, eso sí) Fácilmente modificable / escalable. Más barato. A menos que algún maestro de por aquí sepa alguna solución exótica y currada o de algún integrado que haga esto, a ojímetro te haría falta una caja de zapatos de chips, algo así como el chisme aquél de PMosh de nosecuantos integrados ;-)

Una opción que no contesta lo que preguntas pero quizás te valga sería pintar en un monitor 10 x 7 cuadrados en verde/rojo según su estado. Existen monitores de TPV pequeñitos que quizás te hicieran el papel.

Reply to
Franois

Si por hacer un programa sencillo vas a complicarte con la electrónica ....

Creo que deberías hacer primero la electronica, lo más simple posible, aunque eso te lleve a complicar el programa.

Tal como lo planteas necesitas 70 leds, con 70 flipflops o similar para memorizar su estado, con sus 70 transistores y 140 resistencias, más mogollon de demultiplexores, etc...

Quizas, dependiendo del uso que le vayas a dar, podrías simplificar la electronica montando una matriz de 10 x 7 y barriendo la matriz para encender una fila cada vez, el programa es más complejo sobre todo por la temporización, además de que se supone que los leds lucen menos al estar encendidos solo 1/10 del tiempo.

Reply to
Nolo Pongo

De la manera que lo estas planteando , es decir , activar el led y que quede encendido hasta recibir un reset individual, es para implementarlo con los CD4099 (latch direccionable de 8 bits), necesitarias 9 de estos mas 70 transistores mas un par de 74HC138 mas resistencias varias.

Creo que te convendria en lugar de una activacion directa hacer un multiplexado, la reduccion de componentes es drastica y el conexionado se simplifica, si no te gusta que la PC se encargue del barrido lo puede hacer un PIC.

Eduardo.

Reply to
Eduardo

Muchas Gracias por tu idea ya les estare informando como lo hice.

"Eduardo" escribió en el mensaje news:4287b38b snipped-for-privacy@x-privat.org...

Reply to
Mauricio

muchas gracias por tu ayuda. ya avisare como lo hice. "Franois" escribió en el mensaje news: snipped-for-privacy@terra.es...

Reply to
Mauricio

Mauricio se atrevió a decir:

Tanto Nolopongo como Eduardo han propuesto una solución pero me asalta una duda, ¿De verdad es posible con el puerto paralelo suficiente control como para hacer un barrido-multiplexado decente? Es que me da que en la práctica no quede muy limpio. Bajo DOS, puede ser, pero bajo otros S.O. en los que no tienes control real sobre el hard me extraña. Es sólo una impresión, si alguien lo ha hecho me lo creo y aprendo algo.

Reply to
Franois

Franois escribió:

Yo creo que el puerto paralelo no podrá realizar un barrido multiplexado correcto, no por el hardware del pc sino por el sistema operativo que lo controle, por ejemplo yo utilizo el programa scope que controla motores paso a paso con micro pasos y solo funciona bajo ms-dos, creo que una de las mejores soluciones es utilizar un micro

Reply to
Joan

"Franois" escribió en el mensaje news: snipped-for-privacy@terra.es...

Bajo Windows se puede aunque no es tan sencillo porque hay que hacer el driver. El uso de las interrupciones en Windows es una cagada, no puede redireccionarse el vector de interrupcion tan elegantemente como se hace en DOS, la interrupcion la recibe el SO y este llama a la aplicacion con un retardo variable, a su vez la rutina llamada debe estar en un vxd (en W95/98), y a para que la aplicacion acceda al vxd debe hacerlo via la API DeviceIoControl.

Hace unos años necesitaba leer por interrupcion un conversor A/D a 10kHz , y quise hacerlo bajo Windows, en esa oportunidad usaba un P233 con W95, la diferencia maxima en los retardos de lectura fue 50uS (maquina limpia, sin ninguna otra tarea), demasiado cerca del tiempo de muestreo. Para barrer los leds bastarian 250Hz, aunque cuando se haga acceso al disco o algo parecido seguramente habra parpadeos. Con DOS es mas sencillo, incluso no es necesario reprogramar el PIT para generar interrupciones cada 4mS sino que puede usarse el RTC que genera interrupciones de 1,2,4,8,.........2048,4096,8192 Hz y ninguna aplicacion lo usa.

En realidad hacer el barrido con la PC es apropiado como primer etapa, ya que se hace la matriz de leds con los elementos basicos y se la prueba sin hardware extra , sirve para ver si el efecto visual es como queriamos y nos ahorramos el rediseño de otra placa entera. Luego hacer otra placa con un PIC que se encargue del barrido y que se comunique a la PC por el puerto serie.

Eduardo.

Reply to
Eduardo

El lunes pudimos ver a Eduardo diciendo:

Exactamente a eso me refería, por eso la mención que hacía del DOS, en el cual apuntabas el puntero a donde te daba la gana. EMHO, currarse un programa y después el driver (con la problemática que ello puede llevar) me parece mucha tarea comparado con un micro que se encargue de todo, ya sea multiplexando o por control directo (con expansores por ejemplo, son 70 salidas). Ello teniendo en cuenta lo que mencionas más abajo: hasta donde yo llego (yo me bajé del carro con el DOS y en Win sólo hago cosas en Delphi sin complicarme mucho), bajo Windows no tienes un control preciso porque nunca te puedes adueñar del hard como hacíamos en DOS. Incluso dejando todo el PC trabajando exclusivamente para ese soft, estoy seguro que habría discontinuidades. O sea, mucho curro para algo bastante imperfecto. Y desde luego, si el PC va a estar dedicado _sólo_ a esta tarea, yo personalmente le cascaría un DOS para facilitarme la vida. (Y ya puestos en plan oldie, para recordar viejos tiempos buscaría un viejo XT y me haría una tarjetita con un par de decodificadores y buffer para pinchar en el bus ISA) ;-)

Sí, sería una opción válida. Cuando mencioné DOS como ejemplo válido no lo estaba considerando como una opción, no sé porqué asumí que el programa _que ya existe_ corre en Windows (aunque apuesto un cubata a que va a ser así).

Esto último me gusta, pero no cumple con lo propuesto. Desde luego NoloPongo pone el dedo en la llaga: lo normal es tener un hard sencillo primeramente y adecuar el soft a él, al fin y al cabo en el software tenemos muchísimo más margen de maniobra.

Reply to
Franois

Yo he hecho letreros de mensaje variable con leds de alto brillo, en forma matricial solo con unos cuantos UCN5821.

formatting link
es lo mejor para manipular leds.

Si no tienes acceso a el , necesitas un shift register que permita conexion en cascada(ej. 74HC597) y un buffer para energizar los leds(ej. uln2003), aunque el UCN5821 trae los dos chips en uno.

Evidentemente, en el UCN5821 debes conectar en paralelo los clock, reset, etc. y la salida de datos de un chip es la entrada de datos del otro. Al final con cerca de 5 lineas del puerto paralelo y usando 9 UCN5821 puedes controlar 9*8=72 leds, que es 2 led mas de lo que buscas.

Saludos, Nitron.

"Mauricio" escribió en el mensaje news:42879b7c snipped-for-privacy@x-privat.org...

Reply to
Nitron

aunque tambien es verdad que la matriz se podría controlar con un PIC, y conectando el PIC al puerto serie, y quedaría mucho más elegante ;-)

Reply to
Nolo Pongo

El lunes pudimos ver a Nolo Pongo diciendo:

No, no, lo de usar un XT sería por no desperdiciar máquina y usar DOS, esto unido al bus ISA, un cóctel que nadie puede negar que era una gozada para trastear con el hard,

Ahí le has dado. Simplemente me llamó la atención ver a ambos describiendo un control _muy preciso_ del PP que a mí me parece utópico y pensé que habría filón para aprender algo nuevo. Vislumbro que no es tan imposible como creía, pero desde luego hay que currárselo; me dió la impresión de que describíais eso como algo trivial, y ya te digo, siempre me gusta aprender nuevos métodos.

Umm, podría ser interesante, con tiempo y ganas, claro...

Reply to
Franois

Podrías implementar un bus I2C con dos patillas del puerto paralelo, que es algo bastante simple, y conectar por ejemplo tres MAX6956 (podrías controlar hasta 84 LEDs). Además te evitas tener que usar transistores, resistencias limitadoras, y todo eso, y tendrías control sobre la luminosidad.

--
Saludos de Jose Manuel Garcia
jose.mgg@terra.es
 Click to see the full signature
Reply to
Pepitof

Buscando información sobre el integrado de MAXIM que propone Pepitof, me he encontrado con una nota de aplicacion de xilinx (XAPP805) que menciona varios controladores de leds.

Si hubieras necesitado controlar tan sólo 64 leds (en vez de 70) quizás hubieras podido aprovechar el ICM7218 de Intersil. Es un integrado de

28 pines que controla hasta 8 displays de 7 segmentos y que además tiene una opción de desabilitar el decodificador interno con lo cual puedes cambiar cada uno de los 64 leds individualmente (con la pega de que el punto decimal esta invertido).

Otra opcion bastante interesante es la que propone Nitron con los registros de desplazamiento. En la misma nota de Xilinx aparecen dos registros SIPO (Serial In - Parallel OUT). Allegro micro devices tiene uno de 16 bits con latch integrado, en encapsulado de 24 pines (A6276). Allegro tambien tenía un registro de 32 bits, pero está descatalogado (UCN5832A).

Un saludo.

Reply to
RF

Pepitof afirmó que:

¡Muy chulo ese chip!, me lo apunto por si acaso algún día le encuentro un curro.
Reply to
Franois

Sí que es interesante. En realidad es un expansor de puertos (unos cuantos pueden configurarse como entradas) con el añadido de la limitación de intensidad. La única pega que le veo es que la luminosidad se regula por grupos de LEDs. Hay otro, también muy interesante, con la electrónica necesaria para manejar

4 grupos de 35 LEDs (matrices de 7 x 5), y creo que permite deshabilitar el generador de caracteres para usarlos independientemente, pero no recuerdo ahora el modelo exacto.
--
Saludos de Jose Manuel Garcia
jose.mgg@terra.es
 Click to see the full signature
Reply to
Pepitof

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.