TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: pablo.caviglia en 10 de Marzo de 2011, 10:43:34
-
Buenas tardes foristas!
Tengo una duda, la cual probablemente sea bastante sencilla de responder, pero debido a que estoy recien iniciandome en este increible mundo de los microcontroladores estoy bastante duro para entender algunos conceptos probablemente basicos.
Paso a relatar mi problema. Actualmente estoy trabajando con el PIC16F628, y por suerte he logrado sortear los famosos 'hello world' de este nuevo mundo (prender y apagar leds, etc). Ahora me surgió una duda interesante, estoy empezando a trabajar en el circuito con botones también. Lo que no me queda muy claro es si preciso explicitamente dedicar un pin de los puertos de entrada exclusivamente para cada botón, o si existe alguna manera (no muy compleja) de dedicar un mismo pin para varios botones (10 para poner un ejemplo).
Yo en realidad soy analista de sistemas, y en lo relativo a programación tengo bastante experiencia en varios lenguajes. Lo primero que se me cruzó en mi cabeza de programador es que una posible solución podría ser parametrizar cada uno de los botones poniendo algun tipo de componente entre medio de cada boton y el pin de entrada del pic para que module algun tipo de señal diferente para cada uno de los botones. ( Perdón si digo alguna burrada :D )
Bueno, el problema es ese, creo que fui bastante explicito con el problema. Cualquier cosa que quede en duda digan no más.
Normalmente no suelo preguntar en foros... no sé debido a que realmente porque es un recurso muy util. Esta vez no me quedó mas alternativa porque no tenia palabras para buscar en google... y no tengo ningun conocido que me pueda tirar un pique, asi que bueno.
Agradezco desde ya todo tipo de información que se pueda brindar.
Saludos
Pablo Caviglia
-
Si es posible hacer lo que quieres, en el siguiente enlace aparece coma hacerlo
http://www.google.com/url?sa=t&source=web&cd=1&ved=0CB0QFjAA&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2Fdevicedoc%2F40040b.pdf&ei=gNZ4TabpPKST0QHLo9TyAw&usg=AFQjCNGP5cY1fTrCOlGxieojsLw6pya5Xw&sig2=ov5JWLeZKxaaVPpU1TFqLQ (http://www.google.com/url?sa=t&source=web&cd=1&ved=0CB0QFjAA&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2Fdevicedoc%2F40040b.pdf&ei=gNZ4TabpPKST0QHLo9TyAw&usg=AFQjCNGP5cY1fTrCOlGxieojsLw6pya5Xw&sig2=ov5JWLeZKxaaVPpU1TFqLQ)
Tienes que revisar el Tip#5.
Lo que se hace es utilizar una red de resistencias y un capacitor, en dependencia de donde esté el botón el capacitor se cargará a cierta velocidad y luego debes medir este tiempo de carga con un Timer y con un Comparador.
Te recomiendo que primero uses 10 botones conectados a 10 pines y luego que leas como funcionan los Timer y comparadores prueba este ejemplo.
Lo otro que puedes hacer es utilizar un teclado matricial, estos tienen la ventaja de que a medida que aumenta el número de teclas el número de pines necesario para controlar el teclado aumenta en un grado mucho menor. Por ejemplo si deseas conectar un teclado de 4x4 teclas solo necesitas 8 pines, si deseas conectar un teclado de 8x8 teclas solo necesitas 16 pines.
-
Hola !
Caviglia de Ramallo?
La otra forma es con el ADC del PIC y midiendo resistencias conctadas en serie, las que son puenteadas por los botones.
AQUÍ (http://www.neoteo.com/microcontroladores-sumando-pulsadores.neo) tienes algo para leer.
AQUÍ (http://www.todopic.com.ar/foros/index.php?topic=17893.0) hay más.
Saludos!
Mario
-
Muchas gracias por toda la data, acabo de leerlo y voy a vichar todas las opciones para ver como camina de todas las maneras posibles.
Hola Mario, con respecto a lo del apellido, no soy de Ramallo, soy de Montevideo, Uruguay.
Salute y veremos a ver que pasa!
Bye
-
de aqui (http://www.todopic.com.ar/foros/index.php?topic=21747.20) también puedes sacar algo de información sobre como usar interrupciones para manejar teclas en forma matricial.