Leer botones e interruptores

April 13, 2007 at 10:25 pm | Posted in HowTo, Rutinas, Tutorial | 15 Comments

Ya hace casi un mes y medio desde la última entrada, había estado ocupado con la escuela y por esa razón dejé un poco de lado este proyecto, pero ahora para continuar un poco por donde íbamos vengo con una nueva entrada, ahora sobre leer botones e interruptores.

Los botones e interruptores son dispositivos que nos sirven para introducir datos a algun sistema eléctrico o electrónico. Leer botones (e interruptores) es una tarea muy sencilla, solamente hay que tener en cuenta que estos, al ser dispositivos mecanicos, no cierran (ni abren) instantaneamente sino que presentan un fenomeno conocido como rebote, que no es otra cosa mas que un ruido electrico que genera errores en al detectar que se presionó un botón y que hace que parezca que el botón se presiono muchas veces.

Teniendo en cuenta eso podemos programar algunas rutinas anti-rebotes con el pic. Dos maneras sencillas de lograrlo son: crear un ciclo para verificar el estado de un bit y no salir de este hasta que el estado sea estable; o verificar el estado de un bit, llamar a un retardo (de alrededor de 10ms, aunque este retardo depende del tipo de interruptor y no es un valor fijo) y despues volver a verificar el estado del bit, si el estado es el mismo entonces el boton se presiono.

Lea el artículo completo en el blog Circuitos electronicos.

15 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Oye está muy bueno tu tutorial, ya hace mucho que no subes nada. Yo estoy usando el mismo PIC y no soy muy experto y tu tutorial me ha ayudado mucho. Ojalá pudieras subir o enviarme alguna info de cómo utilizar las interrupciones. Gracias!!!!!

  2. Si, hace tiempo que no subo nada nuevo, pero pronto tengo pensado subir algo sobre como utilizar interrupciones, precisamente quiero subir el mismo tutorial sobre leer botones e interruptores pero utilizando las interrupciones del puerto B. Trataré de subirlo esta semana, así que date una vuelta estos dias para que veas el tutorial. Gracias por tu comentario!

  3. HOLA QUEISIERA SAVER QUE FUNCION CUMPLE EL SIMBOLO $ $+1 +2 Y +3 POR FAVOR TE AGRADECERIA QUE ME EXPLIQUES
    GRACIAS

  4. EDUARDO, el símbolo $ hace referencia a la línea del programa en la que está dicho símbolo, por ejemplo un “goto $” significa que el programa saltaría a la misma línea, “goto $+1” indica que el salto se haría a la siguiente línea, del mismo modo “goto $+2” o “goto $+3”. Espero que haya quedado claro.

  5. me tranquiliza encontrar a alguien, que esta dispuesto a compartir sus conocimientos a cerca de PIC´s. Para mi seria muy util, y si noes molestia para ti, que me ayudaras a ubicar informacion de como funcionan los comandos en la programacion y como se pueden combinar porque aunque entiendo algunos, hay otors que no logro captar ni desglozar.

    gracias.

  6. En este mismo blog he explicado como funcionan las instrucciones de los pics de la gama media. Revisa estos dos enlaces que de seguro te sirven:
    Conjunto de instrucciones del PIC 16F628 (16F628A)
    Conjunto de instrucciones (segunda parte)

  7. hola yo soy nuevo todo en esto de los puertos a mi me dejaron:

    los Tipos de interrupciones del puerto paralelo e/s

    puerto serial, paralelo y sus variantes

    envio y recepcion de datos..

    pues eh encontrado informacion pero no se si es la correcta.. mas que nada no se si me puedas ayudar en el primer tema los otro no me interesan tanto pues creo que entendiendo al primer tema los demas seran mas sencillos.. gracias

  8. Si pones un condensador de 0.1uF el pulsador(laparte que da al pic) y masa te ahorras lo de los rebotes.
    Y poner una resistencia de 470R entro el pulsador y el pic tampoco vendria mal

  9. Si, poniendo un capacitor entre el boton y tierra se van los rebotes, sin embargo un profesor de la carrera me enseño que si se podia eliminar hardware mediante programacion se hiciera, al final los proyectos resultan mas sencillos (menos hardware) y en caso de producirse en serie tambien serian menos costosos.

  10. micropic, permite me inicialmente agradecerte por toda la información que has subido y si no es mucha molestia preguntarte si: sabes algo del empleo de módulos de radio?… tengo un proyecto en desarrollo pero necesito algo de información al respecto, o si conoces algún sitio el cual pueda visitar?

  11. Hola que tal, tengo un contador muy parecido al que vos hiciste pero con display de 7 segmentos. En el mio debe haber 2 cambios de estados del pulsador para que marque un 1 en el display. El problema que tengo es que me cuenta varios pulsos cuando doy uno solo, tengo un antirrebotes por tiempo (200ms) y un antirrebote como el tuyo (que debe cambiar de estado, en mi caso son dos cambios de estados).
    No tengo antirrebote por “hardware” y la resistencia de referencia esta en configuracion pull-up.
    Que me recomendarias hacer?
    Muchas Gracias

  12. Buenas Tardes Amigo.
    Muy buena la pagina. Todo Bien,

    Yo quería saber si al momento de realizar la interrupción por cambio de flanco de RB4 a RB7 te dio algún problema en el Proteus, es decir, al simularlo. Ya que en mi caso, yo estoy utilizando un P16F877, y no me apaga la el bit bandera RBIF, por lo tanto me queda constantemente activándose la interrupción. Yo realice la ejecución del programa con el MPLAB, y si me funciona a la perfección, pero en el Proteus no. Cualquier ayuda se agradece.

  13. Hola micropic, se que no va al tema, pero no sabía bien donde te lo podría preguntar, la cuestión es que quisiera saber como calculaste el valor de la resistencia de 4.7 Kilo Ohms (se para que sirve pero no se como se calcula, supongo que de la corriente que pueden soportar las líneas de los puertos), espero me puedas responder y de antemano gracias.

  14. Gracias, te scaste un 100, esta muy sencillo, pero me saco de un apuro, esta excelente tu mini tutorial…..

  15. hola amigo, me sirvio mucha tu info, pero tengo una duda. en la parte de:
    movlw 0x07
    movwf CMCON
    para que sirve?. GRACIAS!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: