Arduino: mida el voltaje externo

10

Tengo un "problema" al intentar medir el voltaje externo de una celda de moneda. He simplificado mi circuito, pero básicamente tengo un reloj DS1307 en tiempo real alimentado por la salida Arduino 5v, y una celda de moneda conectada a vBat para mantener el reloj activo mientras Arduino está apagado. Mi idea fue medir el nivel de la batería con Arduino conectando su positivo a una entrada analógica y leer el nivel de voltaje. Entonces, pensé que, como el voltaje máximo es 3v, puedo usar el 3v3 como AREF y establecer una referencia analógica a externa y luego leer los resultados precisos. El resultado es bastante bueno y las lecturas de Arduino son las mismas que para leer el voltaje de la batería de mi multímetro. El problema surge cuando desconecto la fuente de alimentación de Arduino (una conexión USB). Para mi sorpresa, el Arduino no se apaga (algunos leds se mantienen encendidos), y parece estar alimentado por la entrada de 3V (en este momento no es una pila de monedas, sino dos pilas AA) conectadas al pin analógico.

¿Por qué sucede esto? ¿Cómo está tomando Arduino la corriente del Pin analógico? ¿Es este pequeño circuito una aberración electrónica?

    
pregunta alvarolb

1 respuesta

10

La mayoría, si no todas, las patillas de entrada en los controladores AVR están protegidas internamente por diodos de sujeción. Estos diodos evitan que una tensión de entrada pueda ser más alta que la tensión de alimentación.

Por qué hay estos diodos internos:

Es importante darse cuenta de que cuando un pin de entrada aumenta por encima del voltaje de suministro y estos diodos no estaban allí, el chip podría actuar como un SCR, un pestillo , cortocircuite la batería y el chip en sí probablemente se dañaría por sobrecorriente / sobrecalentamiento.

Por qué tu Arduino se ejecuta desde la batería Eche un vistazo al siguiente diagrama del circuito. Cuando se desconecta Vcc de la fuente de alimentación normal, hay una ruta desde la batería, a través de D1, a Vcc. El voltaje de la batería es lo suficientemente alto para que el controlador funcione.

simular este circuito : esquema creado usando CircuitLab

Cómo resolverlo

La solución es simple, agregue una resistencia de alto valor en serie entre la batería y la entrada del controlador. La mayoría de los AVR tienen una corriente de fuga de entrada máxima especificada (I IL ) de 1μA, por lo que debe asegurarse de que la caída de voltaje sea aceptable con esa corriente, digamos 100kΩ.

¡Pero cuidado!

Tiene que darse cuenta de que la entrada puede extraer esta corriente de la celda de su botón y acortar su tiempo de vida.

    
respondido por el jippie

Lea otras preguntas en las etiquetas