Autor Tema: Antirrebote por hardware  (Leído 4273 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado martino84

  • PIC10
  • *
  • Mensajes: 32
Antirrebote por hardware
« en: 14 de Febrero de 2012, 15:27:57 »
Hola a todos, estoy haciendo un dataloguer (si es que asi se llama) para controlar el tiempo que un tractor esta funcionando, cada ves que arranca y para guardo el tiempo que estuvo funcionando. Como necesitaba una senal electrica para saber cunado esta en marcha (minutos y horas los segundos son despreciables) encontre una sanal que viene del bulbo de presion de aceite, que cuando esta apagado tengo 12v y cuando arranca se pone a tierra, hasta ahi todo bien. el problema surgio cuando en la primera prueba de arranque del tractor y vi los datos guardados tenia 1 o 2 tiempos de cero minutos, despues lo que estuvo funcionando el tractor y despues 1 o 2 tiempos de cero minutos, por lo que llegue a la conclusion de que tengo rebotes antes y despues del arranque. Por soft tengo delays de 200ms que por lo general utilizo para pulsadores pero al parecer este es muy largo y no quiero poner mas retardos de tiempo por que quiero ir ampliando el equipo para que realice otras tareas y no valla a ser que despues eso me signifique mucho tiempo. Por eso me decidi a hacer el antirrebote por hard.
Lo que no se es como hacer el antirrebote para que aguante mas o menos unos 500ms mas o menos y tampoco donde colocarlo, pense en poner directamente un capacitor con una resistencia en serie todo eso en paralelo a la entrada del transistor. Eso esta bien? la verdad que estoy medio verde con el tema.
El circuito que tengo por ahora para tomar le senal del bulbo asi no me afecte el microcontrolador es el siguiente (PIC16F877a es el que utilizo por lo tanto necesito senales de 5V). Ademas si tienen algo para aportar al circuito es bienvenido.


Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Antirrebote por hardware
« Respuesta #1 en: 14 de Febrero de 2012, 15:55:33 »
No puedes meterle 12V al diodo del opto directamente, una R de 1K debe valer y te puedes ahorrar el transistor. Mira aqui un ejemplo:

http://picmania.garcia-cuervo.net/proyectos_aux_opto.php


Desconectado martino84

  • PIC10
  • *
  • Mensajes: 32
Re: Antirrebote por hardware
« Respuesta #2 en: 14 de Febrero de 2012, 16:00:34 »
perdon  :oops: , si le puse una resistencia solo que me olvide en el dibujo, es una buena idea la verdad es que estoy verde en esto de disenar.
Y a ese circuito como le podria hacer un antirrebote por hardware?

PD: tambien me olvide de poner la resistencia de pullup que va en el pic
« Última modificación: 14 de Febrero de 2012, 16:16:53 por martino84 »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5420

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Antirrebote por hardware
« Respuesta #4 en: 14 de Febrero de 2012, 16:36:50 »
.


Podrías probar con la resistencia de 1k, y un capacitor de 100uF y ver que resulta. La constante de tiempo del filtro sería R*C=100ms. Si seguís con problemas, probá con un valor de C mayor. También te sugiero que conectes el optoacoplador a una entrada del pic que sea Schmitt-trigger (por ej, en el 16F628A, todo el puerto A), o en su defecto a un integrado con entradas tipo Schmitt-trigger, como el 74HC14 (séxtuple inversor).

Saludos.

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Antirrebote por hardware
« Respuesta #5 en: 14 de Febrero de 2012, 17:36:02 »
Y no es mas sencillo aumentar el tiempo siempre que dicha señal del sensor sea +12? Es decir, cuando esta el tractor parado en la señal hay 0V (entre el presostato y la bombilla). Y una vez lo arrancas este marcaria +12. No te haria falta poner nada antirebote ya que lo que puedes hacer es que cada X tiempo (tu decides) se comprueba que dicha señal sea +12, si es asi incrementas el contador, en caso contrario no lo incrementas.

Para pasar los 12V a 5V con unas resistencias y transistor te vale, aunque se convertiria el +12V en 0V y el 0V en +5V (lo contrario), aunque puedes montar 2 transistores pero creo que con 1 tendrias de sobra sabiendo que la señal es invertida.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1255
Re: Antirrebote por hardware
« Respuesta #6 en: 14 de Febrero de 2012, 23:10:15 »
Hola, lo que yo hago es hacer antirebotes por soft usando timer del pic.

Coloco timer a 10ms, habilito interrupcion de timer y cuento 2 para asegurarme de por lo menos 10 ms, pasadas las 2 int habilito un flag para leer las teclas que son pullup (normalmente uso portb) si estan en alto pongo un flag a 1.
En el codigo hago un test del pin a leer and flag de tecla algo asi

if(!input(tecla) && flag_tecla)
{
flag_tecla = 0;
hago codigo
}


en una funcion que solo se puede entrar si el flag del timer esta en 1, verifico si la tecla se soltó

if(input(tecla))flag_tecla = 1;

Espero capten la idea.

saludos

A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado martino84

  • PIC10
  • *
  • Mensajes: 32
Re: Antirrebote por hardware
« Respuesta #7 en: 14 de Febrero de 2012, 23:36:19 »
muchas gracias a todos por las respuestas  ((:-))
 voy a ir probando lo que me dijeron y les comento como me fue, por el momento voy a cambiar el circuito por el que me propuso tapi8 y despues voy a probar lo del capacitor de mtristan.

Desconectado cicloide2

  • PIC18
  • ****
  • Mensajes: 346
Re: Antirrebote por hardware
« Respuesta #8 en: 08 de Junio de 2013, 21:52:11 »
Hola te dejo informacion que me brindo el Ing. Erik, este es por hardware.