Estoy trabajando en un pequeño proyecto favorito con mi Raspberry Pi y estoy buscando conectarlo a algunos sensores.
La salida de los sensores normalmente es de 0 V, pero cuando se activa el sensor sube a 20 V. Dado que el GPIO de Raspberry Pi funciona en niveles lógicos de 3,3 V, he estado investigando cuál es la mejor manera de bajar el voltaje de entrada de 20 V a 3,3 V, para que no freír los puertos GPIO de mi Pi.
El Pi no necesita devolver nada, es estrictamente unidireccional hacia el Pi, y la línea solo irá a 20 V cuando se active el sensor.
En mi investigación, leí acerca de un circuito que consta de un regulador variable LM317 y 2 resistencias, lo que debería darme los 20 V a 3,3 V que necesito, sin embargo, me preocupa el tipo de calor que podría producir dicho circuito dada la Caída de voltaje de 20V-3.3V.
Aquí hay un esquema de lo que estoy tratando de lograr:
simular este circuito : esquema creado con CircuitLab
Para agregar a las cosas, es probable que agregue más conexiones de 20 V a otros puertos IO en el Pi (probablemente hasta 15), por lo que también estoy considerando cuál podría ser el calor combinado.
¿Estoy en el camino correcto y el calor es algo con lo que tendré que trabajar? ¿O hay una mejor solución por ahí?
Si son señales para el Pi, entonces use un divisor de potencial de resistencia . Una resistencia de 1 kΩ a través de la entrada y 0 V del Pi y una resistencia de 9 kΩ desde la entrada 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 resolver esto tú mismo? Ver el enlace.
Las dos soluciones publicadas hasta ahora ignoran un factor: el aislamiento. Puede o no importar, pero usaría un optoaislador (por ejemplo, un 4n25) solo por tranquilidad (y son muy baratos).
El lado del LED se puede controlar desde la señal de 20v con una resistencia adecuada.
El lado del sensor solo necesita un pullup o down (dependiendo de cómo lo conectes) al pin del Pi. De hecho, podría salirse con la suya sin una resistencia pullup si la CPU de 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 500v, o -5v, su Pi no hace "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:
Si bien el optoacoplador puede ser la mejor opción si necesita aislamiento, hay otras opciones disponibles.
Un simple diodo Zener de 3.3v y una resistencia limitadora de corriente es otro. A diferencia de un divisor de voltaje, la salida de quién depende de la relación entre las resistencias y el voltaje de entrada (a 20 V, un divisor 10: 1 tiene una salida de 2 V, pero si 20 V se convierte en 30 V, es 3 V. Esto puede ser un problema con picos de voltaje), un zener El diodo siempre debe sujetar un voltaje más alto hacia abajo.
R1 debe ser de aproximadamente 10k o superior. Esto debería limitar la corriente a 2 mA o menos.
Hago esto con bastante regularidad en los productos que diseño.
simular este circuito : esquema creado con CircuitLab
Para su aplicación, querrá usar un diodo Schottky para garantizar que obtenga la lógica baja. Si quiere estar realmente seguro, agregue un par de diodos de sujeción.
Para convertir niveles de señal de 20 V a 3,3 V, no necesita LM317. El esquema más simple (y muy bueno) para tales cosas es el siguiente:
simular este circuito : esquema creado con CircuitLab
Este esquema tiene una ventaja adicional que protege la entrada de 3,3 V de influencias externas, por ejemplo, picos de tensión negativos o positivos altos, descargas estáticas, etc.
Dependiendo de la clasificación de potencia R1, el esquema puede soportar señales de entrada de hasta varios cientos de voltios por poco tiempo y varios miles de voltios de descarga estática sin dañar la lógica de bajo voltaje.
Funciona de la siguiente manera:
Si el voltaje de entrada es superior a 3,3 V+0,6 V = aproximadamente 4 V, el diodo D1 se abrirá y fijará el voltaje en el punto 1 a aproximadamente 4 V.
Si el voltaje de entrada es inferior a -0,6 V, el diodo D2 se abrirá y el voltaje en el punto 1 se fijará en aproximadamente -0,6 V. Si la señal nunca cae por debajo de cero, D2 siempre está cerrado y se puede quitar de forma segura. (Pero entonces no habrá protección para las señales de entrada negativas)
De esta forma, el voltaje de entrada de 0 a 20 V se reducirá a -0,6 a +3,9 V, lo que es seguro para todos los dispositivos CMOS de 3,3 V. Siempre que este voltaje sea un poco más alto que el voltaje de alimentación lógica CMOS, fluirá una pequeña corriente a través de los diodos de protección de entrada de los circuitos integrados CMOS; está determinada por la diferencia entre el voltaje directo 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 hacer que la corriente de entrada sea cercana a cero.
Puede leer más sobre los esquemas de protección CMOS en la siguiente nota de aplicación de Fairchild .
Información adicional: Mientras algunas personas piensen que el esquema anterior puede causar la falla de Raspberry Pi GPIO IO, hice un esfuerzo y encontré las especificaciones eléctricas de GPIO . Según 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 precio de la velocidad máxima).
De todos modos, esta es la última edición por mí mismo de esta respuesta.
Transeúnte
nageeb
Transeúnte
nageeb