¿Cómo detectar si hay voltaje entre dos puntos a través de GPIO?

9

Me gustaría detectar si un dispositivo externo está encendido o apagado. Encontré dos pines donde debería haber 5V en el primer caso, pero el voltaje puede variar un poco y no voy a romper el Pi. ¿Cómo debo conectar los puntos a los pines GPIO para detectar si hay voltaje? O para preguntar más general:

¿Cómo puedo usar la Raspberry Pi para probar si una batería está vacía (sin tensión o con poca tensión) o no (tensión nominal)?

Si la medición analógica no es posible, ¿se puede medir al menos si el voltaje está por encima de algún umbral? Esto daría como resultado una señal digital, pero ¿cómo generarla y qué pines GPIO usar?

Jakob
fuente

Respuestas:

5

Con Raspberry Pi solo, no puede, porque no tiene un convertidor analógico a digital (ADC). Puede comprar esta tarjeta adicional http://www.abelectronics.co.uk/ y hacer un divisor de voltaje con dos resistencias sobre su suministro de batería.

cristiano
fuente
1
Gracias por la aclaración y enlace a la tarjeta de complemento ADC.
Jakob
3

Desea buscar o crear un comparador con las características apropiadas. En su caso, desea verificar que un voltaje es superior a 3V3 y salida 3V3. Asegúrese de que su comparador sea tolerante a 5V.

Alex Chamberlain
fuente
Comparador :-) buena solución. Nunca usé uno de esos. Lo tendré en cuenta. +1
Piotr Kula
1

La tarjeta adicional es genial, pero podría usar un regulador de voltaje que sea barato y simple.

Un regulador de voltaje, dependiendo del modelo, espera una entrada de voltaje de lo que fue diseñado para manejar y emitirá el voltaje deseado en el pin de salida. En su caso, desea detectar 5 voltios pero leer 3 voltios, lo cual es seguro para el Pi.

Puede encontrar abundantes suministros en eBay, pero aquí hay un enlace de Sparkfun a un ejemplo.

Si el dispositivo externo proporciona una corriente de hasta 10vDC, entonces el pin de salida da 3V (PIN DIGITAL ALTO) y puede leerlo con seguridad usando GPIO en python o lo que quiera.

Puedes encontrarlos muy baratos si miras a tu alrededor. Solo DEBE ASEGURARSE de que la salida no sea superior a 3,3 voltios que está conectada a su Raspberry. Podría colocar una resistencia en la salida para bajar un poco el voltaje ... pero los reguladores están diseñados para tener una precisión del 99.9% en la salida.

El Raspberry Pi utiliza un NCP1117 3.3Volt para controlar el bus de alimentación 3V3 que recibe energía del bus 5V0 que proviene de su fuente de alimentación USB.

Los reguladores de voltaje se utilizan para suministrar energía a otros dispositivos. En este caso, solo usé la imaginación para usar una solución barata y la usé al revés.

Porque al final del día solo necesitamos sentir un voltaje como una señal digital. Realmente no importa lo que uses para generarlo. Podría ser una batería de 3.3v, una fuente de alimentación de 3.3v dc, una salida digital amortiguada de un Arduino, otra Raspberry, un generador de señal, un temporizador 555 o un simple regulador de voltaje. Es la implementación y el objetivo lo que es importante.

  • Fin del día ...
  • 3.3v = 1
  • 0v = 0

Referencias

Tensión máxima en GPIO

Corriente máxima en GPIO

Piotr Kula
fuente
Una razón para el voto negativo sería muy constructiva. Tal vez esta respuesta no sea convencional, pero si es muy defectuosa, házmelo saber.
Piotr Kula
2
Idea interesante, podría usarlo en un proyecto mío (probar si el riel de 12V está activo o no)
mglauche
Solo asegúrate de colocar una resistencia pull up o pull up en el pin digital. Esta es una respuesta muy antigua ... una de las primeras. Pero la ideología es la misma.
Piotr Kula