Puede usar el ADC en el ESP8266 para medir voltajes. Esto es útil, por ejemplo, para registrar el voltaje de una batería y, por lo tanto, el nivel de carga de la batería o un brillo usando un LDR y una resistencia en serie.
Sin embargo, el ADC del ESP8266 es un poco especial. Desafortunadamente, sin cableado externo adicional, esto solo puede determinar voltajes hasta un máximo de 1V. Por lo tanto, no es posible determinar directamente el voltaje de una batería LiPo porque el rango de voltaje de un LiPo saludable es de 3,2 a 4,2 V.
Se utiliza un truco para que el ADC también pueda medir voltajes más altos. Se utiliza un divisor de voltaje para escalar el voltaje que se va a medir hasta el posible rango de voltaje del ADC.
Luego, el ADC mide los voltajes en el rango de 0 V a 1 V, que representan un valor más alto en el divisor de voltaje real. Por ejemplo, se instala un divisor de voltaje en la placa de circuito del Wemos D1 Mini para medir voltajes de hasta 3.3V. Esto es práctico, pero desafortunadamente no es suficiente para poder medir el voltaje de un LiPo, por ejemplo.
En el siguiente artículo se describe cómo puede expandir este rango de voltaje máximo del ADC.
Requisitos
Artículos útiles:
Antes de comenzar con este artículo, debería haber tratado los conceptos básicos de la soldadura. Puedes encontrar información al respecto en el siguiente artículo.
Electrónica - Mi amigo el soldador
Herramienta requerida:
En la siguiente lista encontrarás todas las herramientas que necesitas para implementar este artículo.
Material requerido:
En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.
Instrucciones de seguridad
Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/
Enlaces afiliados / enlaces publicitarios
Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂
¿Cómo funciona un divisor de voltaje?
Un divisor de voltaje simple en realidad siempre consta de al menos dos resistencias. En el diagrama de circuito del Wemos D1 Mini a continuación, puede ver un divisor de voltaje en el área marcada en rojo.
Si no está interesado en la función de un divisor de voltaje, simplemente puede omitir este párrafo. 🙂
Hay dos resistencias instaladas en serie. La conexión superior "A0" proviene del pin de conexión "A0" en la placa de circuito Wemos D1 Mini. El voltaje a medir (por ejemplo, su LiPo) está conectado a "A0".
La conexión "ADC" luego conduce al ADC real del ESP8266.
¿Por qué estás haciendo todo esto?
Aquí se utiliza una propiedad de una conexión en serie de dos resistencias.
Para un circuito en serie formado por dos resistencias, se aplica, entre otras cosas, que la relación entre la tensión total y la tensión individual en una de las resistencias es igual a la relación entre la resistencia total y una de las resistencias individuales. Esto suena complicado al principio, pero se explica a continuación. 🙂
De antemano: como fórmula, todo se vería así:
Fórmula 1:
o
Fórmula 1.2:
"U1" y "U2" son los voltajes que caen a través de la resistencia "R1" y "R2". "U" es lo mismo que U1 + U2 porque en una conexión en serie de resistencias (óhmicas simples), los voltajes individuales se suman al voltaje total.
En resumen, se aplica lo siguiente:
Lo mismo se aplica a las resistencias, porque la resistencia total de un circuito en serie consiste en la suma de las resistencias individuales.
Estas fórmulas ahora se pueden usar bastante bien en la fórmula 1 y obtenemos lo siguiente:
"U1" y "U2" son los voltajes que caen en las resistencias "R1" y "R2". "U" es lo mismo que U1+U2 porque en una conexión en serie de resistencias (óhmicas simples), los voltajes individuales se suman para llegar al voltaje total.
Para hacer esto, la fórmula debe cambiarse de tal manera que el voltaje total "U" pueda calcularse a partir de los valores dados. La fórmula reordenada da:
Fórmula 2:
Si ahora inserta los valores correspondientes aquí, los siguientes resultados:
Con los valores de resistencia utilizados en el divisor de voltaje, se pueden medir voltajes de hasta 3.2V en el ADC.
Lo práctico: si cambias estos valores de resistencia, también puedes medir voltajes más altos con el ADC. En el siguiente ejemplo el voltaje de una LiPo.
Divisor de voltaje en el Wemos D1 Mini
Así que ahora sabe aproximadamente cómo funciona un divisor de voltaje y para qué se puede usar, entre otras cosas. Con este conocimiento ahora queremos encontrar valores de resistencia para el divisor de voltaje para poder medir el voltaje de una batería LiPo. Su tensión de final de carga es de un máximo de 4,2V. Para que también podamos medir este voltaje superior con certeza, es recomendable elegir un voltaje ligeramente superior. Digamos que 4.3V.
Para los valores de tensión habituales de 4,3 V, 5 V, 9 V y 12 V, en el siguiente párrafo se dan ejemplos de las resistencias R1. Así puedes ahorrarte el cálculo. 🙂
El objetivo ahora es determinar los valores de resistencia para R1 y R2.
Al mismo tiempo, ya sabemos que U = 4,3 V y U2=1V tiene que ser. Esto deja solo un valor para calcular un valor con la fórmula 2, que tenemos que determinar para poder calcular el último valor abierto. Pero aquí nos lo ponemos fácil y simplemente establecemos este valor. 🙂
Primero configuramos R2 a 100 kOhm y vemos qué valor obtenemos para R1.
Cambiado, la Fórmula 1, incluido el conocimiento recopilado, ahora da como resultado
Fórmula 3:
En esta fórmula conocemos todos los valores (verde) excepto R1 (rojo). Así que tratamos de reorganizar la fórmula de acuerdo con R1 y obtenemos lo siguiente:
simplificado y reorganizado, el resultado es:
y del mismo color en consecuencia:
En esta fórmula ahora conocemos todos los valores verdes y el valor (rojo) que estamos buscando está en el lado derecho del signo igual. 🙂
El valor requerido para R1 ahora se puede calcular insertando:
Esto da como resultado un valor de 330kOhm para R1. Entonces, si reemplazamos la resistencia de 220 kOhm integrada en la placa de circuito del Wemos D1 Mini con una resistencia de 330 kOhm, amplía el rango de voltaje máximo medible de 3,3 V a 4,3 V y, por lo tanto, también puede medir todo el rango de voltaje de una batería LiPo. 🙂
Fórmula para el cálculo:
- U2 es siempre 1V
- U es el voltaje medible máximo deseado, por ejemplo, 4,3 V
- Simplemente debe configurar R2. Mejor en un rango de 10kOhm a 100kOhm para mantener baja la corriente a través del divisor de voltaje.
Valores de ejemplo para voltajes máximos y los valores de resistencia asociados
Puede usar los siguientes valores de resistencia para extender el voltaje máximo medible del ADC al voltaje especificado.
Voltaje máximo medible: 4.3V
R1=330kOhm, R2=100kOhm
Tensión máxima medible: 5V:
R1=400kOhm, R2=100kOhm
Tensión máxima medible: 9V:
R1=200kOhm, R2=25kOhm
Tensión máxima medible: 12V:
R1=275kOhm, R2=25kOhm
Ahora puede simplemente cambiar las resistencias marcadas 0805 R1 y R2 por las resistencias que desee. 🙂
Configuración en ESPEasy
En ESPEasy, la conversión del ADC en un voltaje se puede hacer de manera muy conveniente.
Simplemente configure el dispositivo como "Entrada analógica - interna" como se muestra.
Si utiliza un voltaje máximo distinto de 4300 V, por supuesto, debe ajustar este valor en consecuencia. 🙂
Diviértete con el proyecto.
Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂
PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂
Hola, acabo de encontrar su sitio, eso es exactamente lo que estoy buscando. ¿Cómo construyo todo si quiero hacer que las resistencias sean externas? No creo que pueda hacer eso en el Wemos con la soldadura.
Hola Mathias,
¿Para qué rango de voltaje desea ajustar el divisor de voltaje? Teóricamente, también puede cambiar el divisor de voltaje soldando resistencias externas adecuadas. Habría que calcular. tal vez incluso es suficiente simplemente usar otra resistencia en serie (para la parte superior del divisor de voltaje). 🙂
Hola y gracias por tu respuesta. Me gustaría medir una celda normal de 18650 en el Wemos que debería servir como batería. No me gustaría soldar el Wemos, ya que es muy pequeño. ¿Le gustaría simplemente construir dos resistencias frente a él si eso es posible?
Hola Mathias,
deberías poder hacer eso con solo una resistencia de 100k. Entonces tienes que cambiarlo así:
A0–>100k_resistencia–>LiPo_plus | LiPo_menos-> GND
Luego, 3.2V tendrían que caer en las dos resistencias en serie y, por lo tanto, exactamente 1V en "R2". Para resumir: 4.2V en el LiPo corresponderían al valor ADC de 1023. Con las altas resistencias y las tolerancias correspondientes, la medición probablemente no sea muy precisa. Pero definitivamente es suficiente para registrar el nivel de llenado de la LiPo. 🙂
Recuerde que la relación entre el voltaje de LiPo y el "nivel" no es completamente lineal. Y también "suavizaría" un poco las lecturas usando un promedio móvil. De lo contrario, podría obtener una "falsa alarma" con cargas más altas (y, por lo tanto, caídas de voltaje en el voltaje de la batería). 🙂
Espero que se haya explicado claramente.
Atentamente
Fab
¡Hola! Realmente construiste un gran sitio. Muy informativo y explicado en pequeños pasos. Estoy trabajando con un Wemos por primera vez y encontré tu tutorial mientras investigaba el ADC.
Me gustaría leer un sensor de nivel para mi cisterna. Este mide la columna de agua y deja pasar 4-20mA dependiendo del nivel de llenado. Se alimenta con 24V. ¿Tiene algún consejo sobre cómo podría remodelar la entrada de Wemos para esto?
Todo lo mejor, Martín
hola martin,
Gracias. 🙂
En principio, necesita una resistencia adecuada. El ADC de la placa Wemos Breakout puede medir voltajes de cero a 3.3V. Puede usar una resistencia para convertir la "señal actual" de su sensor en un voltaje. Me salté eso. Debería caber una resistencia de 175 ohmios.
Entonces tendrías que conectarlo así: (Se supone que la línea en zig-zag representa la resistencia). También recomendaría cambiar una resistencia de alta impedancia (por ejemplo, 10k) frente al ADC. 🙂
Sensor_señal 4-20mA
|
+————–ESP_ADC
|
\
/ 175 ohmios
\
/
|
|
|
|
|
TIERRA
Si quieres, avísame si funcionó. 🙂
Ah, y en el ADC debería poder medir un voltaje proporcional al flujo de corriente. Se aplica la fórmula U=R*I (esta es la ley de Ohm). R es la resistencia (es decir, 175 ohmios), I la corriente del sensor (es decir, un valor entre 4 y 20 mA) y U es el voltaje que luego se mide en el ADC o cae en la resistencia. También puedes probar el circuito sin tener conectado el Wemos. Simplemente mida el voltaje con un multímetro. 🙂
Atentamente
Fabian
Hola Fabián,
Muchas gracias por la ayuda!
Usó un recortador de precisión como resistencia para calibrar el voltaje.
Funciona muy bien hasta ahora, pero los valores del ADC saltan más/menos 5 puntos. Ya configuré un 100n contra el suelo para estabilizarlo, pero eso solo ayuda hasta cierto punto.
Si mido los mA del sensor así, este valor es estable. Depende del ADC del Wemo.
¿Tiene algún consejo sobre cómo puedo suavizar esto aún mejor?
Saludos cordiales Martín
hola martin,
Me alegro de que haya funcionado. Buena idea con la recortadora de precisión. 🙂
Una idea de cómo podría suavizar eso aún mejor (en software) sería un promedio móvil.
En realidad, este es un procedimiento común si tiene una señal que puede leer rápidamente.
Para hacer esto, simplemente lee el ADC varias veces (por ejemplo, 100 veces) y luego calcula el promedio. Las pequeñas desviaciones deberían compensarse y dejar de ser perceptibles. 🙂
Atentamente
Fabian
Hola,
Gracias por tu gran página de información 🙂
Debe haber sido mucho trabajo.
¿Puedes hacer eso directamente en Wemos en espeasy?
convertir a porcentaje?
Saludos Heiko
Hola Heiko,
Muchas gracias. Sí, ya he invertido una hora o dos aquí. 😀
Sí, eso debería funcionar. Aquí tienes un artículo que te puede ayudar: https://www.letscontrolit.com/wiki/index.php/EasyFormula
Atentamente
Fabian
Hola Fabián, ¡Gran artículo aquí! bien hecho 🙂
Tengo una wemos d1 mini con sus resistencias smd originales R1 220kOhm y R2 100kOhm
Quiero medir voltajes hasta 29.4V (batería de 7s)
Entonces, ¿qué resistencias crees que es mejor elegir?
solution1= R1 300kOhm + R2 10kOhm (hasta 32v) menos eficiente pero más precisa
solution2= R1 680kOhm + R2 20kOhm (hasta 36V) baja eficiencia precisión media
solution3= R1 470kOhm + R2 10kOhm (hasta 49v) = más eficiente pero menos precisa
Por favor, haz los cálculos y ayúdame a elegir la mejor solución.
Gracias 🙂
Hola, Nick,
gracias 🙂
Para ser honesto, iría con solution1. Por supuesto, los amplificadores ~ 9micro podrían ser cualquier cosa (dependiendo de su caso de uso), pero en la mayoría de los casos no deberían molestar tanto.
¿O planea construir algo donde estos 9 µA podrían ser problemáticos? 🙂
atentamente
Fab
Solo usaré Wemos D1 Mini con tasmota para monitorear mi 24V (batería de 7s) que se carga con un panel solar. HUUUGE gracias por los comentarios 🙂
Suena genial, creo que en este caso no tienes que preocuparte tanto por los 9µA 🙂
Buena suerte con el proyecto. 🙂
atentamente
Fab
RE editar
o puedes recomendar otra combinación. Tengo esas resistencias metálicas: 10Ω, 22Ω, 47Ω, 100Ω, 150Ω, 200Ω, 220Ω, 270Ω, 330Ω, 470Ω, 510Ω, 680Ω, 1KΩ, 2KΩ, 2.2K Ω, 3.3KΩ, Ω, 6.KΩ, 5.7KΩ, 5.7KΩK, 5.7KΩ. 10KΩ, 20KΩ, 47KΩ, 51KΩ, 68KΩ, 100KΩ, 220KΩ, 300KΩ, 470KΩ, 680KΩ, 1M
Hola Fab,
Acabo de revisar este artículo y, lamentablemente, aparecieron algunos errores...
1.
¡La fórmula 2 está mal!
En lugar de Rsum / R2 + U2 = U, debería decir Rsum/R2 * U2 = U
Independientemente del hecho de que la línea debajo es matemáticamente incorrecta.
330/100+1 sería 4,3... y las unidades tampoco son correctas (kOhm/kOhm se anula)
Además: ¿De dónde vienen los 330 kOhm? R1=220 kOhm y R2 = 100 kOhm -> por lo tanto Rsum = 320 kOhm y no 330 kOhm
Con estos valores de ohmios (220 y 100 kOhm) obtienes más de 1 voltio en el ADC... es decir, 1,03 voltios
Pero no puedo juzgar si esto ya es perjudicial para la entrada analógica.
2.
La fórmula 3 está bien hasta ahora, pero no se derivó de la fórmula 1.2 sino de la fórmula 1
(Por supuesto, esto no tiene más influencia en los métodos de cálculo posteriores.... mencionado solo para mayor claridad)
3.
No puedo entender el valor calculado para los 175 ohmios (consulta de Martin sobre el sensor de nivel). Según mis cálculos, el valor de la resistencia rondaría los 52 ohmios...
No malinterpreten mi comentario...
ralph lg
Hola Ralph,
gracias por tus consejos Corregí los errores que pude entender. 🙂
a 1. ¿Qué quieres decir con que las unidades están mal? Como los kOhms se acortan, V queda arriba: [kOhm/kOhm*V=V] Eso es lo que dice ahí, ¿no?
a 3 Su cálculo se refiere a un valor de voltaje máximo medible de 1V. La Wemos D1 Mini (a la que Martin se refiere en el comentario) es una placa base para el ESP8266. Un divisor de voltaje está conectado aguas arriba del ADC (que explícitamente no quería cambiar). Por eso los 175 ohmios van muy bien con el rango de medida ampliado (hasta 3,3V) del Wemos D1 Mini. 🙂
Oh no hay problema. Me alegro si alguien encuentra un error y me lo hace saber. 🙂
Gracias y saludos
Fabian
Hola, sé que esto ya está escrito aquí un poco, pero para mí, el control de la batería sería importante para una autocaravana. Ahora habría tomado 1MOhm y 470k como resistencias. ¿Estoy en el camino correcto? También quiero trabajar con el sueño profundo. En realidad sólo se trata de evitar que la batería se descargue profundamente y mantenerme informado. Una desconexión de carga no está prevista hasta ahora. Sería bueno si hubiera una manera de cargar la batería si es necesario.
Hola Sascha,
Echa un vistazo a la sección con los valores de ejemplo. Allí también he dado una combinación de resistencias para 12 V. 🙂 .
Atentamente
Fabian
Hola, por fin he encontrado un buen sitio web.
Comparto muchos temas contigo.
Tengo la intención de construir un control de excedentes solares controlado por tensión.
Actualmente estoy midiendo la potencia de los módulos solares y conectar una carga a un cierto valor. Lo hago a través de un ESP 8266 y un Mosfet (IXFK44N50P). He diseñado los módulos de manera que puedo operar calefacción o fuentes de alimentación de conmutación (230V) con ellos. Todo ello sin inversor.
Mi pregunta: con un divisor de tensión de 1,1Mo + 47Ko también obtengo aprox. 1V con una tensión de entrada de 230V CC. No entiendo la afirmación de que sólo se puede medir un máximo de 42V en el ESP.
Hola Uwe,
Lo que estás haciendo ahí es una amenaza para la vida. Los voltajes de CC especialmente altos (sin fusibles) ponen en peligro la vida. Usted DEBE (!) resolver este exceso de regulación de manera diferente.
Aunque esto sea técnicamente posible en teoría, es peligroso para la vida y muy negligente hacerlo. Tenga en cuenta que ya ha muerto gente en construcciones de este tipo. Incluso personas que pensaban que sabían hacerlo mejor.
No sé cómo has llegado a los 42V, pero lo más probable es que el valor se refiera a la tensión de contacto máxima admisible. Puedes encontrar información al respecto aquí: https://de.wikipedia.org/wiki/Ber%C3%BChrungsspannung
Si quieres construir un sistema de control de excedentes como este, te recomiendo un enfoque diferente: mide la potencia de generación actual del panel con un enchufe inteligente con WLAN y, a continuación, conmuta las cargas en función del valor de potencia actual.
Una vez más: cualquier manipulación con altas tensiones continuas pone en peligro la vida. No debe correr este riesgo bajo ninguna circunstancia.
Atentamente
Fabian
Hola,
Gracias por su respuesta.
Me dedico a este hobby desde que se inventó el transistor, es decir, desde hace unos 50 años.
Gracias por tus consejos de seguridad, pero por muy cuidadoso que seas, siempre pasa y si es de un ELKO.
Ahora al tema:
Hay poca electrónica preparada para esta alta tensión continua, así que tengo que construir la mayor parte yo mismo.
Utilizo Fhem para controlar y supervisar todo.
Lo único que es nuevo para mí es la medición de voltaje en el ESP 8266.
Es una pena que responda tan poco a mi pregunta.
Hola Uwe,
He respondido a tu pregunta: A saber, que lo que está haciendo allí es una amenaza para la vida. Esa es también la razón por la que hay tan poco sobre este tema.
Además, medir la tensión de salida de una célula solar tampoco sirve para sacar conclusiones sobre su potencia actual. La tensión de salida no es lineal a la potencia. Especialmente si se utiliza un seguidor de MPP, el punto de funcionamiento puede desplazarse de tal forma que la tensión de salida disminuya al aumentar la potencia.
Ich möchte dir nicht zu nahe treten, aber die Dauer wie lange man etwas macht sagt nichts darüber aus wie gut/sicher man ein Thema beherrscht. Stichwort „Betriebsblindheit“.
Por lo tanto, le pido expresamente que resuelva su problema de otro modo y le insisto una vez más en que lo que está planeando pone en peligro su vida.
Estaré encantado de ayudarle a resolver el problema de forma diferente y segura. Sin embargo, tendrás que describirme con más detalle lo que realmente quieres hacer.
Atentamente
Fabian