Usando un circuito de retardo para mantener un registro de los botones presionando

0

Me estoy quedando sin baterías, así que no quiero dejar la esp8266 encendida a menos que haya un cambio de estado. Tengo el botón enganchado a + 3.3v que activa el pin de reinicio en el esp8266 que luego envía los datos. Esto funciona bien, pero me gustaría usar más de 3 botones y necesito saber qué botón se presionó. Dado que el esp8266 solo se está reiniciando, no hay manera de saber qué botón lo reinició, así que estaba pensando en conectar cada botón a un circuito de retardo RC para mantener su estado por más tiempo para que el MC pueda iniciarlo y leerlo. Usando esta fórmula

$$ t = - \ log \ left (\ frac {V-Vc} {V} \ right) \ times RC $$

Debería poder mantener los botones en el estado correcto el tiempo suficiente para que el MC arranque y lea los valores sin utilizar mucha energía.

¿Hay un mejor enfoque, más fácil?

    
pregunta Ryan Detzel

1 respuesta

5
  

¿Hay un mejor enfoque, más fácil?

Normalmente, uno usaría un uC que admite el modo de bajo consumo (reposo) y luego se despertará de una interrupción. Muchos uC permiten que se generen interrupciones desde los pines de entrada.

Esto es más limpio, más elegante y la forma esperada de hacer las cosas.

Si la señal proviene de un interruptor mecánico, entonces la señal del interruptor debe desinvertirse adecuadamente, fuera del controlador, para que se use como una entrada de interrupción (o, de lo contrario, su unidad de control de temperatura puede estar muy confundida ...) . El (los) método (s) adecuado (s) para el desalojo del interruptor (hardware) es otro tema.

Las interrupciones se registran en registros, que una vez configurados no se anulan hasta que se manejan. Esto significa que si el usuario suelta el botón, su estado de activación se mantendrá hasta que lo maneje en el código.

Ya que no especifica qué controlador está utilizando, no podemos decir si estas características comunes son compatibles con su hardware.

    
respondido por el Chris Knudsen

Lea otras preguntas en las etiquetas