Electronica, Microcontroladores y Psicología
  Conectar un pulsador al PIC
 


Muchas veces necesitamos ingresar estados lógicos al PIC para que haga una u otra cosa en el programa, para esto pueden utilizarse interruptores o pulsadores, los primeros darán un estado permanente, mientras que los segundos dan estados momentáneos. Sin embargo el circuito es el mismo para ambos.

 

Realmente esto no tiene mucho complique así que les voy a mostrar los esquemáticos:


Al ser pulsado
envía un 1 lógico al PIC
 



Al ser pulsado
envía un 0 lógico al PIC
 

 

Otro aspecto importante que hay que tener en cuenta son los rebotes, pero primero ¿Qué son los rebotes? Debido a que los pulsadores e interruptores son dispositivos mecánicos su activación no produce un pulso ideal, si no que en ves de esto generan unos rebotes que pueden afectar el correcto funcionamiento del programa en el PIC, sobre todo si el programa tiene que contar pulsos. Para evitar esto tenemos que corregir estos rebotes mediante el software; basado en mi experiencia conozco dos formas de hacer esto:

 

  • Esperar a que se suelte el pulsador mediante un ciclo while:

 

Supongamos que un pin X está configurado como entrada y está conectado a un pulsador entonces evitaríamos el rebote de la siguiente manera:

 

 

Este método espera a que el usuario suelte la tecla para seguir con el programa.

 

Nota: Si van a utilizar el código recuerden reemplazar pin X con el pin correspondiente.

 

  

  • Esperar cierto tiempo :

 Supongamos que un pin X está configurado como entrada y está conectado a un pulsador entonces evitaríamos el rebote de la siguiente manera:

 

 

If ( pin X = = 1)
{
delay_ms(185);
}

 

De esta forma no es necesario esperar a que el usuario suelte la tecla.

 

Para utilizar éste código recuerden poner la directiva del preprocesador

 

#use delay (clock=4000000) // El valor depende de la velocidad del oscilador.

 

En algunos casos no es necesario utilizar estos “antirrobote” pero los recomiendo si el programa tiene que contar pulsos o cosas por el estilo.

 

Espero que les haya quedado claro y que les sirva para sus proyectos futuros.

 

Saludos desde COLOMBIA

 

 

If ( pin X = = 1)
{
            While (pin X = = 1)
                        {}
}
 
   
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis