0% encontró este documento útil (1 voto)
717 vistas

Lecturas Analógicas ESP32 - ESP8266 Con MicroPython - Tutoriales Aleatorios de Nerds

Cargado por

Johnny CG
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (1 voto)
717 vistas

Lecturas Analógicas ESP32 - ESP8266 Con MicroPython - Tutoriales Aleatorios de Nerds

Cargado por

Johnny CG
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Lecturas analógicas ESP32 / ESP8266 con MicroPython


Este tutorial muestra cómo leer valores analógicos con las placas ESP32 y ESP8266 usando el rmware MicroPython.
Como ejemplo, leeremos los valores de un potenciómetro.

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 1/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

Obtener lecturas analógicas con ESP32 y ESP8266 es un poco diferente, por lo que hay una sección para cada placa en
EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  
este tutorial.

Prerrequisitos
Para seguir este tutorial, necesita el rmware MicroPython instalado en sus placas ESP32 o ESP8266. También necesita
un IDE para escribir y cargar el código en su tablero. Sugerimos usar Thonny IDE o uPyCraft IDE:

Thonny IDE:
Instalación y primeros pasos con Thonny IDE
Actualización del rmware de MicroPython con esptool.py
IDE de uPyCraft:
Instale uPyCraft IDE ( Windows ,  Mac OS X ,  Linux )
Flash / Cargar rmware MicroPython a ESP32 y ESP8266

Lecturas analógicas - ESP8266


ESP8266 solo tiene un pin analógico llamado A0 . El pin analógico ESP8266 tiene una resolución de 10 bits. Lee el voltaje
de 0 a 3.3V y luego asigna un valor entre 0 y 1023.

Note: some versions of the ESP8266 only read a maximum of 1V on the ADC pin. Make sure you don’t exceed the
maximum recommended voltage for your board.

Analog Readings – ESP32


https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 2/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

There are several pins on the ESP32 that can act as analog pins – these are called ADC pins. All the following GPIOs can
act as ADC pins: 0, 2, 4, 12,EBooks
13, 14,gratuitos Sobre
15, 25, 26, 27, 32, 33,Contacto Cursos Iniciar sesión
34, 35, 36, and 39. Obtener cursos  

Learn more about the ESP32 GPIOs: ESP32 Pinout Reference: Which GPIO pins should you use?

ESP32 ADC pins have 12-bit resolution by default. These pins read voltage between 0 and 3.3V and then return a value
between 0 and 4095. The resolution can be changed on the code. For example, you may want to have just 10-bit
resolution to get a value between 0 and 1023.

La siguiente tabla muestra algunas diferencias entre la lectura analógica en el ESP8266 y el ESP32.

ESP8266 ESP32

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 3/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

Pines analógicos A0 (ADC 0) GPIO: 0, 2, 4, 12, 13, 14, 15,


EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  
25, 26, 27, 32, 33, 34, 35, 36
y 39.

Resolución 10 bits (0-1023) 12 bits (0-4095)

Cambiar resolución No sí

Esquemático
La lectura analógica funciona de manera diferente en ESP32 y ESP8266. Hay un esquema diferente y un script diferente
para cada tablero.

Para seguir este tutorial, debe conectar un potenciómetro a su placa ESP8266 o ESP32.

Piezas necesarias
Aquí hay una lista de las piezas que necesita para construir el circuito:

ESP32  o  ESP8266  (lea:  ESP32 vs ESP8266 )


Potenciómetro
Tablero de circuitos
Cables de puente

Puede utilizar los enlaces anteriores o ir directamente a MakerAdvisor.com/tools para encontrar todas las piezas para
sus proyectos al mejor precio.

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 4/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Esquema - ESP32
Siga el siguiente diagrama esquemático si está utilizando una placa ESP32:

En este ejemplo estamos usando GPIO 34 para leer valores analógicos del potenciómetro, pero puede elegir cualquier
otro GPIO que admita ADC. Lea nuestra Guía de con guración de pines ESP32 para obtener más información sobre los
GPIO ESP32.

Esquema: ESP8266
https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 5/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

Siga el siguiente diagrama esquemático si está utilizando una placa ESP8266:


EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

El ESP8266 admite lectura analógica solo en el A0 al ler.

Texto
Hay algunas diferencias cuando se trata de lectura analógica en ESP32 y ESP8266 con respecto al código. Debes escribir
un guión ligeramente diferente según el tablero que estés usando. Asegúrese de seguir el código de su placa especí ca.

Secuencia de comandos - ESP32


El siguiente script para el ESP32 lee valores analógicos de GPIO 34 .
https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 6/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks
# Complete project details gratuitos Sobre Contacto
at https://RandomNerdTutorials.com Cursos Iniciar sesión Obtener cursos  

from machine import Pin, ADC


from time import sleep

pot = ADC(Pin(34))
pot.atten(ADC.ATTN_11DB) #Full range: 3.3v

while True:
pot_value = pot.read()
print(pot_value)
sleep(0.1)

Ver código sin formato

Como funciona el codigo

Para leer entradas analógicas, importe el ADC clase además de la Alfiler clase de la máquina módulo. También
importamos dormir método.

from machine import Pin, ADC


from time import sleep

Luego, crea un ADC objeto llamado olla en GPIO 34 .

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 7/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

pot = ADC(Pin(34)) EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

La siguiente línea de ne que queremos poder leer el voltaje en el rango completo.

pot.atten(ADC.ATTN_11DB)

Esto signi ca que queremos leer el voltaje de 0 a 3.3V. Esto corresponde al ajuste de la relación de atenuación de 11db.
Para eso, usamos el aten () método y pasar como argumento: ADC.ATTN_11DB .

los aten () El método puede tomar los siguientes argumentos:

ADC.ATTN_0DB - el voltaje de rango completo: 1.2V


ADC.ATTN_2_5DB - el voltaje de rango completo: 1.5V
ADC.ATTN_6DB - el voltaje de rango completo: 2.0V
ADC.ATTN_11DB - el voltaje de rango completo: 3.3V

En el mientras bucle, lea el valor del bote y guárdelo en el pot_value variable. Para leer el valor del bote, simplemente
use el leer() método en el maceta objeto.

pot_value = pot.read()

Luego, imprima el valor del bote.

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 8/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

print(pot_value) EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Al nal, agregue un retraso de 100 ms.

sleep(0.1)

Cuando gira el potenciómetro, obtiene valores de 0 a 4095; eso se debe a que los pines ADC tienen una resolución de 12
bits por defecto. Es posible que desee obtener valores en otros rangos. Puede cambiar la resolución usando el ancho()
método de la siguiente manera:

ADC.width(bit)

los un poco El argumento puede ser uno de los siguientes parámetros:

ADC.WIDTH_9BIT : rango 0 a 511


ADC.WIDTH_10BIT : rango 0 a 1023
ADC.WIDTH_11BIT : rango 0 a 2047
ADC.WIDTH_12BIT : rango 0 a 4095

Por ejemplo:

ADC.width(ADC.WIDTH_12BIT)

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 9/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

En resumen:
EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Para leer un valor analógico, debe importar el ADC clase;


Para crear un ADC objeto simplemente usa ADC (Pin (GPIO)) , en el cual GPIO es el número del GPIO que desea
leer los valores analógicos;
Para leer el valor analógico, simplemente use el leer() método en el ADC objeto.

Secuencia de comandos - ESP8266


El siguiente script para el ESP8266 lee valores analógicos de A0 al ler.

# Complete project details at https://RandomNerdTutorials.com

from machine import Pin, ADC


from time import sleep

pot = ADC(0)

while True:
pot_value = pot.read()
print(pot_value)
sleep(0.1)

Ver código sin formato

Como funciona el codigo


https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 10/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

Para leer entradas analógicas, importe el ADC clase además de la Alfiler clase de la máquina módulo. También
EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  
importamos dormir método.

from machine import Pin, ADC


from time import sleep

Luego, crea un ADC objeto llamado maceta en A0 al ler.

pot = ADC(0)

Nota: ADC0 (A0) es el único pin del ESP8266 que admite lectura analógica.

En el bucle, lea el valor del bote y guárdelo en el pot_value variable. Para leer el valor del bote, use el leer() método
en el maceta objeto.

pot_value = pot.read()

Luego, imprima el pot_value .

print(pot_value)

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 11/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

Al nal, agregue un retraso de 100 ms.


EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

sleep(0.1)

En resumen:

Para leer un valor analógico, utilice el ADC clase;


Para crear un ADC el objeto simplemente llama ADC (0) . El ESP8266 solo admite lectura ADC en A0 al ler.
Para leer el valor analógico, utilice el leer() método en el ADC objeto.

Demostración
Después de guardar el código en su placa ESP usando Thonny IDE o uPyCraft IDE , gire el potenciómetro.

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 12/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Veri que la carcasa de su MicroPython IDE para leer los valores del potenciómetro. Si está utilizando un ESP32, debería
obtener lecturas entre 0 y 4095, o lecturas entre 0 y 1023 con un ESP8266.

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 13/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Terminando
En este tutorial, le mostramos cómo leer valores analógicos usando MicroPython con las placas ESP32 y ESP8266. Hay
varios GPIO en el ESP32 que pueden leer valores analógicos. Por otro lado, el ESP8266 solo admite lecturas analógicas en
el A0 (ADC0) pin.

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 14/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

La lectura de valores analógicos con ESP32 y ESP8266 es ligeramente diferente, pero en resumen, debe crear un ADC
EBooks gratuitos Sobre
objeto, y luego use el leer() método para obtener losContacto
valores. Cursos Iniciar sesión Obtener cursos  

Esperamos que este tutorial le haya resultado útil. Si recién está comenzando con MicroPython, es posible que también
le gusten los siguientes recursos:

[eBook] Programación MicroPython con EPS32 / ESP8266


GPIO ESP32 / ESP8266 explicados con MicroPython
Entradas digitales y salidas digitales ESP32 / ESP8266 con MicroPython
ESP32 / ESP8266 PWM con MicroPython - Dim LED
Servidor web ESP32 / ESP8266 MicroPython - Salidas de control

Gracias por leer.

[eBook] Cree servidores web con ESP32 y ESP8266 (2.ª edición)


Cree proyectos de servidor web con las placas ESP32 y ESP8266 para controlar salidas y
monitorear sensores de forma remota. Aprenda HTML, CSS, JavaScript y protocolos de
comunicación cliente-servidor  DESCARGAR »

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 15/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Recommended Resources

Build a Home Automation System Home Automation using ESP8266 Arduino Step-by-Step Projects »
from Scratch » With Raspberry Pi, eBook and video course » Build IoT Build 25 Arduino projects with our
ESP8266, Arduino, and Node-RED. and home automation projects. course, even with no prior
experience!

What to Read Next…

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 16/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

ESP32 Async Web Server – Control Outputs with Power ESP32/ESP8266 with Solar Panels (includes
Arduino IDE (ESPAsyncWebServer library) battery level monitoring)

ESP8266 Client-Server Wi-Fi Communication ESP32 Bluetooth Classic with Arduino IDE – Getting
Between Two Boards (NodeMCU) Started

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 17/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

ESP8266 DS18B20 Temperature Sensor with ESP-NOW with ESP32: Receive Data from Multiple
Arduino IDE (Single, Multiple, Web Server) Boards (many-to-one)

Enjoyed this project? Stay updated by subscribing our weekly newsletter!


Tu correo electrónico  SUBSCRIBE

3 thoughts on “ESP32/ESP8266 Analog Readings with MicroPython”

Raimis Juodvalkis
March 15, 2020 at 3:23 am

Measurements was not consistent till we made 20K runs and average.
Code:

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 18/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

from machine import Pin, ADC


from time import sleepEBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

pot = ADC(Pin(34)) # use your pin number


pot.atten(ADC.ATTN_11DB) #Full range: 3.3v

my oat = 0.0

number_of_runs = 20000
for x in range(number_of_runs):
pot_value = pot.read()

my oat = my oat + pot_value

if x == 20000:
break

my oat = my oat / 20000


print()
print(my oat)

Reply

Sara Santos
15 de marzo de 2020 a las 4:35 pm

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 19/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

Hola.
EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  
Gracias por compartir eso.
Puede leer más sobre la inexactitud del ESP32 ADC aquí: https://rntlab.com/question/the-adc-seems-
terrible/
Saludos,
Sara

Respuesta

Raimis Juodvalkis
24 de marzo de 2020 a las 12:44 pm

Me di cuenta de que la placa mide el voltaje correcto, solo los cables deben estar blindados y
conectados a tierra. Incluso los cables del voltímetro introducen mucho ruido. El cable de clavija de
entrada debe estar blindado y conectado a tierra.

Respuesta

Deja un comentario

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 20/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Nombre *

Correo electrónico *

Sitio web

Notifíqueme de comentarios consecuentes por email.

Notifícame de nuevas entradas por e-mail.

publicar comentario

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 21/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Visite Maker Advisor: herramientas y


equipo para fabricantes, a cionados y
a cionados al bricolaje »

Domótica usando el eBook y curso de


video ESP8266 » Cree proyectos de IoT y
domótica.

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 22/23
28/2/2021 Lecturas analógicas ESP32 / ESP8266 con MicroPython | Tutoriales aleatorios de nerds

EBooks gratuitos Sobre Contacto Cursos Iniciar sesión Obtener cursos  

Cree un sistema de automatización del


hogar desde cero »  Con Raspberry Pi,
ESP8266, Arduino y Node-RED.

Sobre Apoyo Condiciones Política de privacidad Reembolsos MakerAdvisor.com Únase al laboratorio

Copyright © 2013-2021 · RandomNerdTutorials.com · Todos los derechos reservados

https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/ 23/23

También podría gustarte