TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: baldibal en 14 de Mayo de 2008, 13:17:05
-
Hola, he comenzado en el dia de hoy en este foro con la intencion de recibir ayuda y por supuesto dar la que yo pueda y esté a mi alcance.
Decir que soy tecnico montador de maquinaria industrial y a principios de este mes me encontrado con un problema que se podria resolver de
la siguiente manera:
necesito un teclado con 20 pulsadores que puedan encender y apagar de manera individual a 20 led´s, osea lo mismo que podriamos
realizar con 20 interruptores para encender o apagar a 20 lamparas, la cuestion es que por espacio debe de ser un circuito con el menor numero de componentes, y
me han hablado de la posibilidad de crearlo con un PIC, pero yo a esto no llego, por ello agradeceria a quien me pudiera orientar sobre este tema.
Incluyo un pequeño esquema aclaratorio.
MIL GRACIAS.
-
Bienvenido baldibal.
Si quieres pocos componentes, lo mejor será elegir un PIC con al menos 40 entradas/salidas digitales, como el 16f946 o el 18f6390.
Luego, con un simple programa (por ejemplo en basic), configuras 20 pines como entradas para los botones y otros 20 como salidas para los LEDs y listo.
-
Y no es practicamente lo mismo usar un Switch para cada led??
-
Saludos baldibal, bienvenido al foro! :)
Oye maestro navaismo tienes toda la razón, no parece necesario el pic verdad? :D
Qué te parece esa solución, baldibal? A no ser que necesites alguna otra cosa...
Ok nos leemos!
-
Pues debes tener 20 salidas para los leds, eso seguro!!! y para los interruptores, un teclado matricial de 5x4, lo que nos da 20 :D pulsadores. La rutina, seria una similar a la de un teclado matricial, y el programa principal recogeria la tecla pulsada y encenderia el led. Se podria hacer por interrupciones ( seria lo mas adecuado mira AQUI (http://www.todopic.com.ar/foros/index.php?topic=21515.0))
Se deberian utitilizar las interrupciones de ccp2 y ccp1 y quedaria completo (de hecho quedaria de 5x5, faltarian pines para los leds :D ). Si el problema es de espacio, pues deberias trabajar con micros SMD asi queda pequeno el montaje.
Entonces 20pines para los leds + 9 pines de teclado = 29 pines!!!! :D , toca el pic de 40 pines :(
Saludos
-
Fabuloso MLO! Un urra para tí! :-/
De esa forma sí parece necesario el pic, para escanear el teclado...
Ey Baldibal, y qué grabador de pic posees? De repente el pic 16F877 te serviría... está permitido por muchos grabadores, y no es tan costoso...
Ok nos leemos! :mrgreen:
-
Entonces 20pines para los leds + 9 pines de teclado = 29 pines!!!! :D , toca el pic de 40 pines :(
¿Why? Podría usar registros de desplazamiento y usar 3 pines(incluso 2) para controlar la cantidad de LEDs que se le de la gana.
De esta manera sólo necesitaría 12 pines(te sobra con un 16F84).
Y sino, también se pueden multiplexar los 20 LEDs de manera similar al teclado y ahorrar pines...
Saludos.
-
Hola a todos, yo apoyo la mocion de BrunoF de trabajar en forma matricial con los LED's y el teclado. De todas formas no creo que la decision sea tan sencilla. Baldibal, donde piensas colocar el teclado?? si es una aplicacion industrial ten cuidado con los ruidos, podrias terminar perdiendo la ventaja de numero de componentes por los filtros que tendrias que ponerle al pic. Otra cuestión, ya has trabajado alguna vez con microcontroladores? esto es importante, aunque el proyecto es bastante sencillo si no cuentas ni con las herramientas ni con los conocimientos, puede llegar a alargarse el tiempo de desarrollo a tal punto de no ser economicamente viable. No quise ser ofensivo en la oracion anterior, solo trato de contemplar todos los puntos de vista de la situación, sabran entenderme.
Si quieres, cuentanos un poco mejor acerca de lo que quieres hacer y ahi estaremos para ayudar.
Un saludo desde Argentina.
-
Fuera de tema me parece que la forma mas "barata", pequeña y rápida seria utilizar Latch tipo "D".
Y además es mas fácil dado que por lo que veo no conoces mucho sobre micros y tendrias que aprender a programar, conseguirte un programador, etc.
Ahora si es para aprender a programar me parece que la opción mas viable es la de multiplexar el teclado y las salidas.
Saludos
-
Y sino, también se pueden multiplexar los 20 LEDs de manera similar al teclado y ahorrar pines...
Claro!!!!!! no se me ocurrio por estar pensando solo en los pulsadores :-) , en cuanto a los registros, eso involucra mas HW?, como seria el manejo Bruno ( no he usado uno de esos! )
Saludos
-
Y sino, también se pueden multiplexar los 20 LEDs de manera similar al teclado y ahorrar pines...
Claro!!!!!! no se me ocurrio por estar pensando solo en los pulsadores :-) , en cuanto a los registros, eso involucra mas HW?, como seria el manejo Bruno ( no he usado uno de esos! )
Saludos
Sisi. Implica agregar unos IC's. Hay muchos! yo uso los 74HC4094 porque me han dado un resultado espectacular y poseen latch interno.
El manejo es SIPO(Serial Input Parallel Output) y es bastante sencillo. Se envia una trama de bits de manera serial mediante un clock y un data, y se pueden colocar muchos IC's en forma de cascada. Hay mucha info sobre esos IC's en el foro y en la web.
Saludos!
-
Gracias a todos los interesados por ayudarme en este proyecto, decir que me gustaria que explicarais como hacerlo desde el principio ya que buscaria las herramientas necesarias que me dijerais para grabar el PIC, lo que pasa es que el programa que pueda hacer lo que yo quiero no soy capaz de hacerlo.
Comentaros para que y como utiliazaria el montaje:
se trata de activar o desactivar con un mando joystick una serie de reles a una distancia de unos 60 metros utilizando para ello un "sistema local multiplexado" el cual es capaz de comunicarse a una distancia maxima de 600 metros con solo 2 hilos, ya hice una prueba con una grancantidad de flip-flop y el tamanño del circuito es muy grnade, por eso pense en el desarrollo de un programa para un microcontrolador y de esta manera me ocupe menos espacio y podria incorporarlo en el propio joystick.
GRACIAS.
-
Hola.
Para manejar tales distancias y con dos hilos se me ocurre transmision serial RS232 o RS485 (esta ultima mejor).
Necesitas: Un microcontrolador (18F442 o 18F452 o 16F877A como lo dijo el amigo FirePic), un programador de micros, los integrados para la interfaz 485, y para el programa del micro un compilador (CCS que es el que mas usan aca en el foro, aunque no es ansiC, pero es bueno, tambien esta el C18 de Microchip o el HiTech, el MikroC, el IAR, y debe haber mas).
Para entender mejor seria bueno un diagrama o algo, yo entiendo que si es un joystick es una palanca y un boton!!!! y (se me ocurre) que con la palanca escojes el rele y con el boton activas o desactivas el rele.
Saludos!!!
-
Ahora si es un proyecto!!!!! Yo no entendia porque querias encender 20 LEDS solamente :mrgreen: :mrgreen:. Bueno, creo que ya alguien ha hecho algo parecido en el foro, asi que podrias utilizar los circuitos ya diseñados y compactarlos aun más. MLO te ha dicho todo lo que necesitas, lo unico que considero que falta son las herramientas para hacer las PCB, si no tienes un taller de electrónica necesitas conseguir a alguien que haga las placas por ti. Suerte con el proyecto.
Saludos.
-
Gracias nuevamente y disculpad mi ignorancia sobre este tema, comentaros que he estado revisando el foro y no encuentro algo parecido que pudiera servirme, tambien deciros que solamente me es necesario el programa del pic, (NO SE HACERLO) ya que sobre como fabricar el circuito no tengo problemas, tambien comentaros que el sistema para el envio a traves de 2 hilos lo tengo resuelto porque utilizo un circuito hecho con los integrados U6050B y U6052B y que lo puse en marcha cuando fabriqué el montaje con los flip-flop.
Una vez que tubiera la programacion de dicho PIC, y una vez colocado en el circuito lo unico que tengo que hacer es sustituir los flip-flop por el material necesario que pidiera el insertar el PIC.
GRACIAS.
-
Ok!!!!
Mi pregunta es la siguiente: Necesitas las salidas totalmente independientes? (1 pin - 1 led), o se puede multiplexar las salidas.? Otra pregunta: solo debe estar activo una salida a la vez o va a haber combinaciones?
Si lo unico que necesitas es atender los pulsadores para sacar 1's me parece que la rutina de teclado por interrupciones (AQUI (http://www.todopic.com.ar/foros/index.php?topic=21515.0)) te seria muy util, lo unico que hay que cambiar es una interrupcion de mas CCPx y asignar el main la encendida de los leds en funcion de la tecla leida.
Saludos
-
gracias MLO, si las salidas son independientes osea se necesita que se puedan activar las que se deseen.
-
Hola.
Y con el mismo pulsador que enciendes la salida debes apagarlo cierto???? :mrgreen: :mrgreen: :mrgreen:
Saludos
-
hola MLO, si, asi es, es unicamente convertir un pulsador en un interruptor, lo que pasa que eneste caso necesito 20 pulsadores. Tambien habia pensado en que fuera mas facil realizar un pequeño programa para utilizar 10 pulsadores, lo unico que pasaria que tendria que utilizar 2 pic, en cualquier caso me es igual lo que si necesito es saber que programa hay que desarrollar para este proyecto.
Gracias.
-
Saludos!
Ya has decidido en qué lenguaje programar?
Pues me parece que es lo más importante, que leas y busques información en el foro sobre ese lenguaje, y te des una idea de cómo funciona para que comiences a echar tus primeras líneas de código.
Animo, que tampoco es nada del otro mundo! :P
Nos leemos! :mrgreen:
-
hola MLO, si, asi es, es unicamente convertir un pulsador en un interruptor, lo que pasa que eneste caso necesito 20 pulsadores. Tambien habia pensado en que fuera mas facil realizar un pequeño programa para utilizar 10 pulsadores, lo unico que pasaria que tendria que utilizar 2 pic, en cualquier caso me es igual lo que si necesito es saber que programa hay que desarrollar para este proyecto.
Gracias.
si necesitas 20 pulsadores puedes tomar un teclado matricial de 4x4 y añadirle una columna, luego aplicas el mismo principio de escaneo de columnas, en tal caso te llevara 9 pines.