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. 🙂

Dort sind zwei Widerstände in Reihenschaltung verbaut. Der obere Anschluss “A0” kommt dabei von dem Anschluss Pin “A0” auf der Wemos D1 Mini Platine. An “A0” wird also die zu messende Spannung (zum Beispiel Euer LiPo) angeschlossen.
Der Anschluss “ADC” führt dann zu dem eigentlichen ADC des 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” and “U2” are the voltages that drop across the resistor “R1” and “R2”. “U” is the same as U1 + U2 because in a series connection of (simple ohmic) resistors, the individual voltages add up to the total voltage.
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” und “U2” sind hierbei die Spannungen die an dem Widerstand “R1” bzw. “R2” abfallen. “U” ist dabei das gleiche wie U1+U2 weil sich in einer Reihenschaltung aus (einfachen ohmschen) Widerständen die Einzelspannungen addieren um auf die Gesamtspannung zu kommen.
Dazu muss die Formel so umgestellt werden, dass sich aus den gegeben Werten die Gesamtspannung “U” berechnen lässt. Die umgestellte Formel ergibt:
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.

Stellt dazu einfach das Device “Analog input – internal” wie abgebildet ein.
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
Dann müssten 3,2V an den beiden Vorwiderständen abfallen und somit genau 1V an dem “R2”. Lange rede kurzer Sinn: 4,2V am LiPo würden dann dem ADC-Wert von 1023 entsprechen. Bei den hohen Widerständen und den entsprechenden Toleranzen ist die Messung wahrscheinlich nicht super genau. Aber es reicht auf jeden Fall aus um den Füllstand des LiPos zu erfassen. 🙂
Denk dran, dass der Zusammenhang zwischen LiPo Spannung und “Füllstand” nicht komplett linear ist. Und ich würde die Messwerte auch über einen gleitenden Mittelwert etwas “glätten”. Sonst könntest du bei höherer Belastung (und dadurch Spannungseinbrüchen der Akkuspannung) einen “falschen Alarm” bekommen. 🙂
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. 🙂
Im Prinzip brauchst du einen passenden Widerstand. Der ADC des Wemos Breakout boards kann Spannungen von null bis 3,3V messen. Mithilfe eines Widerstands kannst du das “Stromsignal” deines Sensors in eine Spannung umwandeln. Ich habe das mal überschlagen. Ein 175Ohm Widerstand sollte passen.
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
Hallo, endlich habe eine guten Internetauftritt gefunden.
Ich teile viele Themen mit Dir.
Ich beabsichtige eine spannungsgesteuerte Solar-Überschuß Reglung zu bauen.
z.Z. messe ich die Leistung der Solarmodule und schalte bei einem bestimmten Wert einen Verbraucher dazu und an. Das mache ich über eine ESP 8266 und ein Mosfet ( IXFK44N50P ). Ich habe die Module so ausgelegt, dass ich Heizung oder Schaltnetzteile (230V) damit betreibe. Das Ganze ohne Wechselrichter.
Meine Frage: mit einem Spannungsteiler von 1,1Mo + 47Ko komme ich auch auf ca. 1V. bei einer Eingangsspannung von DC 230V. Ich verstehe nicht die Ausage, man darf nur max 42V am ESP messen.
Hi Uwe,
das was du dort vor hast ist Lebensgefährlich. Besonders hohe Gleichspannungen (dazu noch nicht abgesichert) sind Lebensgefährlich! Diese Überschussregelung MUSST (!) du anders lösen.
Auch wenn das technisch theoretisch möglich wäre ist es Lebensgefährlich und im höchsten Maße Fahrlässig das so umzusetzen. Bitte bedenke, dass schon Menschen gestorben sind bei solchen Aufbauten. Auch die Menschen die dachten, dass sie es besser wüssten.
Ich weiß nicht wie du auf die 42V kommst, aber sehr wahrscheinlich bezieht sich der Wert auf die maximal zulässige Berührungsspannung. Infos dazu findest du hier: https://de.wikipedia.org/wiki/Ber%C3%BChrungsspannung
Wenn du so eine Überschuss-Regelung bauen willst empfehle ich dir einen anderen Ansatz: Messe die aktuelle Erzeugungsleistung des Panels mit einer Wlan fähigen smarten Steckdose und schalte die Verbraucher dann in Abhängigkeit zum aktuellen Leistungswert.
Nochmal: Jegliches hantieren mit hohen Gleichspannungen ist Lebensgefährlich. Du solltest dieses Risiko auf keinen Fall eingehen!
Atentamente
Fabian
Hola,
Danke für Deine Antwort.
Ich betreibe dieses Hobby seit der Enstehung des Transistors, also ca. 50 Jahre.
Danke für Deine sicherheitsrelevanten Tipps, aber man kann noch so Vorsichtig sein, es passiert immer mal und wenn von einem ELKO.
Nun zum Thema:
Es gibt wenig fertige Elektronik für diese hohe Gleichspannung, deshalb muss ich das meiste selber bauen.
Ich verwende Fhem und steuere und überwache Alles damit.
Das einzigste was für mich Neuland ist, ist Spannungsmessen am ESP 8266.
Schade das Du so wenig auf meine Frage eingehst.
Hi Uwe,
ich bin auf deine Frage eingegangen: Nämlich insofern, dass das lebensgefährlich ist was du dort vor hast. Das ist auch der Grund weshalb es so wenig zu diesem Thema gibt.
Außerdem ist die Messung der Ausgangsspannung einer Solarzelle auch nicht geeignet um auf deren aktuelle Leistung zu schließen. Die Ausgangsspannung ist nicht linear zur Leistung. Besonders wenn ein MPP Tracker verwendet wird kann sich der Arbeitspunkt so verschieben, dass die Ausgangsspannung mit steigender Leistung sogar kleiner wird.
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”.
Ich bitte dich also nochmal ausdrücklich dein Problem anders zu lösen und betone nochmal, dass es Lebensgefährlich ist was du vor hast.
Ich helfe dir gerne das Problem anders und sicher zu lösen. Dazu musst du aber genauer beschreiben was du eigentlich vor hast.
Atentamente
Fabian