Arduino, dos botones de alimentación y entradas digitales al mismo tiempo

1

Estoy tratando de determinar si este circuito va a funcionar exactamente como creo:

Elcomportamientoesperadoes:

  1. CuandopresionamosS1,arduinoseenciendeydigitalRead(7)nosdaráunvalorALTO(seusaINPUT_PULLUP)+digitalRead(8)nosdaráunvalorBAJO.
  2. CuandopresionamosS2,arduinoseenciendeydigitalRead(8)nosdaráunvalorALTO(seusaINPUT_PULLUP)+digitalRead(7)nosdaráunvalorBAJO.

¿Estoescorrecto?

Bien,descubrimosqueesuncircuitomásomenosfuncional,ahoraotrapregunta:

¿CómocambiaríaestosiencendieraArduinoatravésdesupinRAW,usandounabateríade12v?¿Sigonecesitandoprotegerlospinesdeentradacondiodosyresistenciasonoesnecesarioyaqueelvoltajeinternosiempreseráelmismo5v?

UDATE:Creoqueencontréotraformaderesolverlosproblemasconlasobretensióndelpindigital:

enlace

La lógica es prácticamente la misma, la única diferencia es que ahora las entradas digitales se bajan usando optoacopladores, por lo que la diferencia en la corriente entre el pin digital y la tierra a la que está conectado, desaparece, ya que es la misma tierra que para Arduino.

    
pregunta Ruslan

2 respuestas

3

Veo algunos problemas con este circuito, aunque creo que básicamente funcionará de la manera que pretendes.

Pero primero una corrección, ya señalada: ya que estás usando flexiones internas y conectas los interruptores a tierra, al presionar S1 tirarás el pin 7 bajo (no alto) y S2 tirará el pin 8 bajo.

El primer problema es que su procesador verá una tierra que está a unos 0.7 voltios sobre la tierra real debido a que está conectada a tierra a través de un diodo. Entonces, si su batería se está suministrando, digamos, 3V (es un llavero así que probablemente no sea 5V, ¿verdad?) Entonces el procesador solo usa 2.3V. También su idea de "alto" y "bajo" se compensará de todos los demás componentes de su circuito.

El siguiente problema es que al presionar un botón, el pin correspondiente se conectará directamente a tierra, que estará a -0.7 V en relación con la tierra del procesador (también se ha señalado). Eso puede generar una corriente desde la tierra del procesador, a través del diodo de protección interno del pin, y luego salir del pin a la tierra real. Si eso sucede, podría haber mucha corriente, porque no hay resistencias en ningún lugar del circuito para controlarlo. Por otro lado, si los diodos internos tienen el mismo voltaje directo que los diodos externos, entonces quizás no haya corriente. Pero parece dudoso.

Otro problema es que el usuario está controlando directamente la fuente de alimentación con el interruptor. Los contactos defectuosos en el botón pueden hacer que el procesador se inicie con un voltaje muy bajo, o ganar y perder energía un par de veces antes de que el interruptor esté completamente enganchado. También existe la posibilidad de que el usuario suelte el botón antes de que su programa pueda completar su tarea. Creo que estás al tanto de estos problemas.

Realmente creo que lo mejor es mantener el procesador encendido pero en modo de suspensión. El modo de suspensión está diseñado específicamente para este caso de uso. Incluso en su modo de reposo más profundo, el procesador ATmega puede responder a interrupciones de pin.

    
respondido por el Willis Blackburn
1

Este circuito es de alguna manera peligroso. Dependiendo del tipo de diodos y del consumo de energía del controlador, el voltaje en sus pines de entrada puede caer por debajo de -0.5 V. Si esto sucede, deja el rango de voltaje permitido especificado por la mayoría de los fabricantes de microcontroladores. El controlador puede estar dañado.

¿Cómo lidiar con eso? Puede proporcionar los mismos diodos a las entradas, pero probablemente tenga que agregar resistencias adicionales para asegurarse de que la tensión en las entradas exceda la tensión en GND en un momento dado. Esto requiere algunas pruebas.

simular este circuito : esquema creado usando CircuitLab

Además: ¿Está seguro de que la duración del tiempo que se presiona el botón es suficiente para activar todas las acciones que debe realizar, incluido el arranque y la configuración del controlador?

Y no te olvides de rebotar las teclas, de lo contrario podrías encontrar efectos realmente extraños.

    
respondido por el Ariser

Lea otras preguntas en las etiquetas