Buscando construir un convertidor de nivel de señal para reducir la entrada de 20V a 3.3v. ¿Estoy en el camino correcto?

5

Estoy trabajando en un proyecto para mascotas pequeñas con mi RaspberryPi y estoy buscando conectarlo a algunos sensores. La salida de los sensores es normalmente de 0v, pero cuando el sensor se activa, sube a 20v. Los puertos gpio de RaspberryPi solo aceptarán un voltaje máximo de 3.3v, por lo que he estado investigando la mejor manera de reducir el voltaje de entrada de 20v a 3.3v, para no freír los puertos gpio de mi Pi. El Pi no necesita devolver nada, es estrictamente unidireccional al Pi, y la línea solo irá a 20v cuando se active el sensor.

En mi investigación, leí acerca de un circuito que consta de un Regulador Variable LM317 y 2 resistencias, que me podrían dar los 20 a 3.3 V que necesito. Sin embargo, me preocupa el tipo de calor que se puede emitir con una diferencia tan grande en el voltaje.

He intentado ser lo más claro posible, y también he incluido un útil esquema de lo que quiero decir.

simular este circuito : esquema creado usando CircuitLab

Para agregar cosas, es probable que esté agregando más conexiones de 20v a otros puertos io en el Pi, probablemente hasta 15, así que también estoy considerando cómo podría ser el calor combinado ...

¿Estoy en el camino correcto y el calor es algo con lo que voy a tener que trabajar? ¿O hay una solución mejor por ahí?

    
pregunta nageeb

5 respuestas

5

Si son señales al pi, use una resistencia divisor de potencial . Un 1k ohm a través de la entrada y 0v de pi y una resistencia de 9k desde la entrada de pi a una señal lógica de alto voltaje reducirá ese voltaje de diez a uno. Debería estar buscando un poco menos de una reducción de 10: 1. ¿Puedes trabajar este bit tu mismo? Vea el enlace.

    
respondido por el Andy aka
4

Las dos soluciones publicadas hasta ahora ignoran un factor: el aislamiento. Puede que le importe o no, pero usaría un optoaislador (por ejemplo, un 4n25) solo para su tranquilidad (y son muy baratos).

El lado del LED puede manejarse desde la señal de 20v con una resistencia apropiada.

El lado del sensor solo necesita un tirón hacia arriba o hacia abajo (dependiendo de cómo lo conectes) al pin del Pi. De hecho, podría escaparse sin una resistencia de pullup si la CPU del Pi tiene pullups internos, pero sospecho que serían muy débiles y no es bueno confiar en estas cosas.

De esta manera, si su señal de entrada se convierte accidentalmente en 25v, o 50v, o en 500v, o en -5v, su Pi no va "bang".

Para agregar un circuito de ejemplo, sustituya 5v por su suministro de 3v3. D1 es opcional, pero es bueno dejarlo para protegerlo contra voltajes inversos:

    
respondido por el John U
2

Si bien el optoacoplador puede ser la mejor opción si necesita aislamiento, hay otras opciones disponibles.

Un simple 3.3v diodo Zener y una resistencia limitadora de corriente es otra. A diferencia de un divisor de voltaje, la salida de quién depende de la relación entre resistencias y voltaje de entrada (a 20v, un divisor 10: 1 es 2v hacia fuera, pero si 20v se convierte en 30v, es 3v. Esto puede ser un problema con picos de voltaje), un zener el diodo siempre debe reducir una tensión más alta hacia abajo.

R1 debe ser de unos 10k o más. Esto debería limitar la corriente a 2mA o menos.

    
respondido por el Passerby
1

Hago esto con bastante frecuencia en los productos que diseño.

simular este circuito : esquema creado usando CircuitLab

Para su aplicación, querrá usar un diodo Schottky para garantizar que obtiene la lógica baja. Si desea estar realmente seguro, agregue un par de diodos de sujeción.

    
respondido por el Matt Young
0

Para convertir niveles de señal de 20V a 3.3V no necesita LM317. El esquema más simple (y muy bueno) para tales cosas es el siguiente:

simular este circuito : esquema creado usando CircuitLab

Este esquema tiene una ventaja adicional que protege la entrada de 3.3 V de influencias externas, por ejemplo, picos de voltaje positivos o negativos altos, descargas estáticas, etc.

Dependiendo de la potencia nominal de R1, el esquema puede soportar señales de entrada de varios cientos de voltios por corto tiempo y varios miles de voltios de descarga estática sin dañar la lógica de baja tensión.

Funciona de la siguiente manera:

  1. Si el voltaje de entrada es superior a 3.3V + 0.6V = aproximadamente 4V, el diodo D1 se abrirá y sujetará el voltaje en el punto 1 a aproximadamente 4V

  2. Si el voltaje de entrada es inferior a -0.6V, el diodo D2 se abrirá y el La tensión en el punto 1 se sujetará a aproximadamente -0.6V. Si la señal nunca baja de cero, D2 siempre se cierra y puede eliminarse de manera segura. (Pero entonces no habrá protección para las señales de entrada negativas)

  3. De esta manera, el voltaje de entrada de 0..20V se reducirá a -0.6 .. + 3.9V que es seguro para todos los dispositivos de 3.3V CMOS. Siempre que esta tensión sea un poco más alta que la tensión de alimentación lógica de CMOS, una pequeña corriente fluirá a través de los diodos de protección de entrada de los circuitos integrados de CMOS; está determinada por la diferencia entre la tensión directa de los diodos de silicio (D1 y D2 ) y los diodos de protección schottky utilizados por la tecnología CMOS y la resistencia de R2. Esta corriente será de aproximadamente unos pocos mA. Si esto es demasiado grande, D1 y D2 se pueden cambiar a diodos schottky de baja corriente y, de esta manera, la corriente de entrada se aproxima a cero.

Puede leer más sobre los esquemas de protección de CMOS en la siguiente nota de la aplicación Fairchild .

Información adicional: Mientras algunas personas piensan que el esquema anterior puede provocar el fallo GPIO IO de la Raspberry Pi, hice un esfuerzo y encontré Especificaciones eléctricas de GPIO . De acuerdo con este documento, los diodos de protección de entrada no son schottky, sino de silicona. De esta manera, el esquema anterior funcionará incluso con una corriente de entrada más pequeña de lo esperado.

Además, aumenté el valor de R2 a 10k para aumentar la confiabilidad del esquema (en el precio de la velocidad máxima).

De todos modos, esta es la última edición realizada por mí mismo en esta respuesta.

    
respondido por el johnfound

Lea otras preguntas en las etiquetas