Problema con el botón de encendido de Arduino

Estoy tratando de construir un circuito que permita que mi placa arduino se encienda con un botón (interruptor). Al igual que un botón de encendido en la PC. Aquí está mi esquema.

ingrese la descripción de la imagen aquí

En la vida real usé un cargador de teléfono en lugar de la batería.

Y aquí está el código arduino. void setup() { pinMode(11, OUTPUT); pinMode(11,HIGH); } void loop() { // put your main code here, to run repeatedly }

La configuración debería funcionar así.

  1. El usuario presiona el botón
  2. El pin Arduino GND está conectado al cargador de teléfono GND
  3. arduino comienza
  4. Arduino pin 11 va alto
  5. El pin activa el transistor 2n2222
  6. El transistor conecta otro pin GND de arduino a tierra
  7. El usuario suelta el botón
  8. Arduino permanece encendido

El problema es que cuando conecto el cargador, arduino se enciende sin que el usuario presione el botón. Descubrí que el transistor es culpable porque si desconecto el colector del transistor del pin gnd de arduino, arduino se apaga. Intenté cambiar el transistor y no tuve suerte. Lo mismo sucede si pongo el pin 11 en BAJO en el código. No tengo idea de lo que está pasando aquí y cómo es esto posible. Soy relativamente nuevo en la electrónica. ¿Hay alguna solución posible que no involucre circuitos complicados? También tengo claro que solo tengo transistores NPN 2N2222, por lo que las soluciones que involucran FET, MOSFET, PNP y otros transistores no me ayudarán. ¡¡Gracias de antemano!!

Respuestas (5)

  • Deje el Arduino alimentado permanentemente.
  • Haga que su código ponga el dispositivo a dormir en el momento apropiado.
  • Busque ejemplos de "despertar del sueño".
  • Simplemente conecte el botón de activación a la entrada de activación del modo de suspensión.

El micro se encenderá en el encendido inicial.

Parece que Pinus ya respondió con lo que yo sugeriría, pero pensé en agregar algunas ideas sobre por qué creo que podría funcionar. Antes de que la MCU se encienda, la base del transistor estará esencialmente flotando. Si flota hacia arriba, el transistor debería encenderse y si flota hacia abajo, se apagará. La razón por la que está flotando es por las resistencias internas dentro del Arduino. Siempre habrá algo de resistencia (típicamente muy alta) entre un pin GPIO y la tierra de un Arduino. Esto conduce esencialmente a una resistencia muy alta entre el colector y la base de ese transistor.

Lo primero que intentaría sería agregar una resistencia desplegable desde la base del transistor hasta la tierra de la fuente de alimentación.

PD Esta es la primera vez que publico, así que espero no estropear alguna convención. Además, nunca antes había probado este circuito, así que puedo estar totalmente equivocado.

Cuando se supone que el Arduino está APAGADO, pretende que su conexión GND sea alta (cerca del voltaje de suministro). Pero para mantener apagado el 2N2222, su unidad base debe estar apagada, y su conexión base está cerca del voltaje GND real, es decir, aproximadamente 4,3 V por debajo del GND de Arduino. El pin Arduino no puede permanecer no conductor en esta condición (y podría dañarse).

No puede hacer esto de manera robusta con solo 1 transistor. Además, generalmente es más conveniente para un uso posterior del Arduino cambiar su suministro, no GND.

Conecte un 2N3906 (o casi cualquier PNP): emisor = suministro de 5 V, colector = suministro de Arduino, base = 10k a 'X', y también agregue 100k R entre la base y el emisor. Ahora conecte un 2N2222 (o cualquier NPN): Emisor = suministro GND, Colector = nodo 'X' (es decir, el otro extremo de los 10k), base = 10k al pin 11 (o cualquier otro) del Arduino. Para mantener la salida encendida, conduzca el pin Arduino ALTO

Sí, lo siento, lo tengo un poco tarde. intente vender una resistencia adicional entre el menos de la batería y la base del transistor.

SOLUCIÓN UTILIZANDO SOLO TRANSISTORES NPN

ingrese la descripción de la imagen aquí

Todas las resistencias son de 1Kohm. Hay una caída de voltaje de 0,8 V cuando se usa esta solución (la fuente de alimentación de 5 V deja 4,2 V para arduino). La solución de jp314 probablemente sea mucho mejor, pero no había tenido ningún transistor PNP para probarla.