ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

El ESP8266 es un módulo Wi-Fi muy popular entre los entusiastas de la electrónica y la programación. Una de sus características más interesantes es su conversor analógico a digital (ADC), que permite leer valores analógicos de sensores externos. En este artículo, exploraremos cómo utilizar el ESP8266 para leer valores analógicos utilizando las tres opciones de lenguaje de programación disponibles: Arduino IDE, MicroPython y Lua. ¡Sigue leyendo para descubrir cómo sacar el máximo provecho de tu ESP8266!

Tanto ESP8266-12E como ESP8266-07 tienen un pin ADC al que se puede acceder fácilmente. Esto significa que estas placas ESP8266 pueden leer señales analógicas. En este tutorial le mostraremos cómo usar la lectura analógica con el ESP8266 usando el firmware Arduino IDE, MicroPython o Lua.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Como ejemplo, le mostraremos cómo leer valores analógicos desde un potenciómetro. Esta publicación se divide en tres secciones:

  1. Lectura analógica ESP8266 con Arduino IDE
  2. Lectura analógica ESP8266 con MicroPython
  3. Lectura analógica ESP8266 con Lua/NodeMCU

Especificaciones del ADC ESP8266

Cuando te refieres al pin ADC del ESP8266, a menudo escucharás estos diferentes términos usados ​​indistintamente:

  • ADC (convertidor analógico-digital)
  • TRACTOR
  • Pin6
  • A0
  • pin analógico 0

Todos estos términos se refieren al mismo pin en el ESP8266, resaltado en la siguiente sección.

Resolución ESP8266 ADC

El pin ADC tiene una resolución de 10 bits, lo que significa que obtienes valores entre 0 y 1023.

Rango de voltaje de entrada del ESP8266

El rango de voltaje de entrada del pin ADC ESP8266 es de 0 a 1 V cuando se usa el chip desnudo. Sin embargo, la mayoría de las placas de desarrollo ESP8266 tienen un divisor de voltaje interno, por lo que el rango de voltaje de entrada es de 0 a 3,3 V. Entonces en resumen podemos decir:

Pin analógico ESP8266

Con el kit ESP8266 12-E NodeMCU y otras placas de desarrollo ESP8266, acceder a A0 es muy fácil, simplemente conecta un cable de puente al pin (ver imagen a continuación).

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Si está utilizando un chip ESP8266 como el ESP8266-07, necesitará soldar un cable a este pin.

Piezas requeridas

Para mostrarle cómo usar lecturas analógicas con el ESP8266, leeremos los valores de un potenciómetro. Para hacer esto necesitas conectar un potenciómetro a tu placa.

Aquí está el hardware que necesita para completar este tutorial:

Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Representación esquemática

Si está utilizando una placa de desarrollo ESP8266, siga el siguiente esquema.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Si utiliza un chip ESP8266 con un rango de voltaje de entrada de 0 V a 1 V, debe asegurarse de que el voltaje de entrada en el pin A0 no exceda 1 V. Entonces necesita un circuito divisor de voltaje como se muestra a continuación.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Usamos una resistencia de 100 ohmios y una de 220 ohmios, por lo que Vout es 1V.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Recomendación de lectura: Referencia de pines de ESP8266: ¿Qué pines GPIO debería utilizar?


1. Lectura analógica ESP8266 con Arduino IDE

Esta sección muestra cómo leer valores analógicos con el ESP8266 usando el IDE de Arduino.

Instale ESP8266 en Arduino IDE

Para cargar código en su ESP8266, primero debe instalar el complemento ESP8266 si aún no lo ha hecho. Sigue el siguiente tutorial:

  • Instale la placa ESP8266 en el IDE de Arduino

código

Copie el siguiente código en su IDE de Arduino.

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

int sensorValue = 0;  // value read from the pot

void setup() {
  // initialize serial communication at 115200
  Serial.begin(115200);
}

void loop() {
  // read the analog in value
  sensorValue = analogRead(analogInPin);
 
  // print the readings in the Serial Monitor
  Serial.print("sensor = ");
  Serial.print(sensorValue);
  
  delay(1000);
}

Ver código sin formato

El código comienza con la declaración del pin analógico ESP8266 en analógicoInPin Variable:

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

El valor del potenciómetro está en el Valor del sensor Variable:

int sensorValue = 0;  // value read from the pot

En el configuración()Inicialice el monitor serie para fines de depuración:

void setup() {
  // initialize serial communication at 115200
  Serial.begin(115200);
}

En el Cinta()leamos el valor analógico con eso lectura analógica() Función y traspaso de la analógicoInPin como argumento. El valor se guarda valor del sensor Variable:

sensorValue = analogRead(analogInPin);

Finalmente, las lecturas se muestran en el monitor serie para que puedas ver lo que está sucediendo.

Serial.print(sensorValue);

Sube el código

Sube el código anterior al ESP8266. Asegúrese de haber seleccionado la placa y el puerto COM correctos. Ir a Herramientas > Tablero y seleccione el modelo ESP8266 que está utilizando. En nuestro caso utilizamos el Kit ESP8266 12-E NodeMCU.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Ir a Herramientas > Puerto y seleccione el puerto COM al que está conectado el ESP8266.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Haga clic en el botón de carga de Arduino IDE.

Nota: Si está utilizando un chip ESP-07 o ESP-12E, necesitará uno programador FTDI para cargar el código.

demostración

Después de cargar el código, abra el monitor serie con una velocidad de baudios de 115200. Deben mostrarse las lecturas analógicas.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Gire el potenciómetro y observe cómo los valores suben o bajan.


2. Lectura analógica ESP8266 con MicroPython

Esta sección muestra cómo leer valores analógicos con el ESP8266 usando el firmware MicroPython.

Para seguir este tutorial, debe tener instalado el firmware MicroPython en su placa ESP8266. También necesitarás un IDE para escribir el código y subirlo a tu placa. Recomendamos utilizar Thonny IDE o uPyCraft IDE:

  • IDE de Thonny:
    • Instalación y primeros pasos con Thonny IDE
    • Actualización del firmware MicroPython con esptool.py
  • IDE de UpyCraft:
    • Instale uPyCraft IDE (Windows, Mac OS X, Linux)
    • Flashear/cargar firmware MicroPython a ESP32 y ESP8266

Script – Lectura Analógica ESP82266

El siguiente script para ESP8266 lee valores analógicos del pin A0.

# 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

Así es como funciona el código

Para leer entradas analógicas, importe el CAD clase además de la Bolígrafo clase de la máquina Módulo. También los importamos dormir Método.

from machine import Pin, ADC
from time import sleep

Luego crea uno CAD Objeto llamado Maceta en el pin A0.

pot = ADC(0)

En el bucle, lea el valor del bote y guárdelo en el valor_pot Variable. Para leer el valor del potenciómetro, utilice el leer() método en el Maceta Objeto.

pot_value = pot.read()

Luego imprímelo valor_pot.

print(pot_value)

Agregue un retraso de 100 ms al final.

sleep(0.1)

En total:

  • Para leer un valor analógico, utilice el CAD Clase;
  • Cómo crear uno CAD Simplemente llama al objeto CAD(0).
  • Utilice para leer el valor analógico. leer() método en el CAD Objeto.

demostración

Gire el potenciómetro después de cargar el código en la placa ESP8266 usando Thonny IDE o uPyCraft IDE.

Verifique el shell de su IDE MicroPython para leer los valores del potenciómetro.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

3. Lectura analógica ESP8266 con Lua/NodeMCU

Esta sección muestra cómo leer valores analógicos con el ESP8266 usando el firmware NodeMCU.

Actualización del ESP8266 con firmware Lua/NodeMCU

Primero necesitas actualizar tus ESP con el firmware NodeMCU.

recomiendo usar ESPlorador IDE Este es un programa creado por 4refr0nt para enviar comandos a su ESP8266.

Siga estas instrucciones para descargar e instalar ESPlorer IDE:

  1. haga clic aquí para descargar ESPlorer
  2. Descomprime esta carpeta
  3. Ir a la carpeta principal
  4. Ejecute ESPlorer.jar
  5. Abrir ESPlorer

Probando el pin ADC (A0)

Para enviar comandos usando el IDE de ESPlorer, necesita establecer comunicación en serie con su ESP. Siga estas instrucciones:

  1. Conecte su ESP-12E o programador FTDI a tu computador
  2. Establezca la ruta incorrecta a 9600
  3. Seleccione su puerto de programación ESP-12E o FTDI (por ejemplo, COM3)
  4. Presione Abrir/Cerrar
ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Luego ingrese el siguiente comando:

print(adc.read(0))

Presiona el botón «Enviar» Como se muestra abajo.

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

Debería devolver un valor entre 0 y 1024. Gire su potenciómetro y envíe el imprimir(adc.read(0)) Ingrese el comando unas cuantas veces más para obtener el valor del potenciómetro.

Cuando su potenciómetro esté cerca de 0V, imprimirá 0 y cuando alcance 3.3V debería imprimir 1024.

Envolver

En este tutorial, le mostramos cómo leer valores analógicos usando el pin analógico (A0) del ESP8266. Es importante tener en cuenta que el rango de entrada analógica del ESP8266 es 0-1 V si estás usando un chip simple o 0-3,3 V si estás usando una placa de desarrollo.

En cualquier caso, siempre debes tener cuidado de no exceder el voltaje máximo recomendado. Si necesita un rango de voltaje de entrada más alto, puede agregar un circuito divisor de voltaje.

Esperamos que este tutorial te haya resultado útil. Si recién está comenzando con ESP8266, le recomendamos los siguientes recursos:

  • Domótica con ESP8266 (libro electrónico)
  • Comenzando con el ESP8266
  • Guía de referencia de ESP8266 GPIO
  • Servidor web ESP8266

Gracias por leer.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua

El ESP8266-12E y el ESP8266-07 tienen un pin ADC que es fácilmente accesible. Esto significa que esas placas ESP8266 pueden leer señales analógicas. En este tutorial te mostraremos cómo utilizar la lectura analógica con el ESP8266 utilizando Arduino IDE, MicroPython o firmware de Lua.

Especificaciones del ADC ESP8266

Al referirnos al pin ADC ESP8266, a menudo escucharás estos diferentes términos de manera intercambiable:

  • ADC (Convertidor Analógico-Digital)
  • TOUT
  • Pin6
  • A0

Todos estos términos se refieren al mismo pin en el ESP8266 que se destaca en la próxima sección.

Resolución del ADC ESP8266

El pin ADC tiene una resolución de 10 bits, lo que significa que obtendrás valores entre 0 y 1023.

Rango de Voltaje de Entrada ESP8266

El rango de voltaje de entrada del pin ADC ESP8266 es de 0 a 1V si estás usando el chip desnudo. Sin embargo, la mayoría de las placas de desarrollo ESP8266 vienen con un divisor de voltaje interno, por lo que el rango de entrada es de 0 a 3.3V.

Con las placas de desarrollo ESP8266, es muy fácil acceder al pin A0, simplemente conecta un cable puente al pin. Si estás usando un chip ESP8266, como el ESP8266-07, necesitas soldar un cable a ese pin.

Partes Requeridas

Para mostrarte cómo usar la lectura analógica con el ESP8266, leeremos los valores de un potenciómetro. Para eso, necesitas cablear un potenciómetro a tu placa.

Esto es lo que necesitas para completar este tutorial:

  • Recomendado: Kit ESP8266-12E NodeMCU
  • Alternativo: 1x chip ESP8266-07 o 1x chip ESP8266-12E + Programador FTDI
  • Resistor de 100 Ohm (necesario si estás usando un chip desnudo)
  • Resistor de 220 Ohm (necesario si estás usando un chip desnudo)
  • Potenciómetro de 1k Ohm
  • Cables puente para protoboard

Puedes encontrar todas las partes para tus proyectos al mejor precio en MakerAdvisor.com.

Diagrama Esquemático

Si estás usando una placa de desarrollo ESP8266, sigue el siguiente diagrama esquemático. Si estás usando un chip ESP8266 con un rango de entrada de 0V a 1V, asegúrate de que el voltaje de entrada en el pin A0 no exceda 1V. Por lo tanto, necesitas un circuito divisor de voltaje.

Lectura Analógica ESP8266 con Arduino IDE

Esta sección muestra cómo leer valores analógicos con el ESP8266 utilizando Arduino IDE.

Para cargar el código en tu ESP8266, primero debes instalar el complemento ESP8266 si aún no lo has hecho. Sigue el siguiente tutorial para instalar el complemento ESP8266 en Arduino IDE.

Código:

Copia el siguiente código a tu Arduino IDE:

Lectura Analógica ESP8266 con MicroPython

Esta sección muestra cómo leer valores analógicos con el ESP8266 utilizando el firmware MicroPython.

Script – Lectura Analógica ESP8266:

Copia el siguiente script para el ESP8266 en MicroPython:

Lectura Analógica ESP8266 con Lua/NodeMCU

Esta sección muestra cómo usar el firmware NodeMCU para leer valores analógicos con el ESP8266.

Para enviar comandos con el firmware ESPlorer, primero debes establecer una comunicación serie con tu ESP. Sigue estas instrucciones para conectarte al ESP con ESPlorer.

Después de cargar el código en la placa ESP8266 con Thonny IDE o uPyCraft IDE, gira el potenciómetro y verifica los valores en tu IDE de MicroPython.

Conclusión

En este tutorial, te hemos mostrado cómo leer valores analógicos utilizando el pin analógico del ESP8266 (A0). Una cosa importante a tener en cuenta es que el rango de entrada analógico del ESP8266 es de 0-1V si estás usando un chip desnudo, o 0-3.3V si estás usando una placa de desarrollo. Siempre debes tener cuidado de no exceder el voltaje máximo recomendado. Considera agregar un circuito divisor de voltaje cuando necesites un rango de voltaje de entrada más alto. Esperamos que hayas encontrado útil este tutorial.

Si estás comenzando con el ESP8266, te recomendamos los siguientes recursos:

Gracias por leer.

5 comentarios en «ESP8266 ADC – Leer valores analógicos con Arduino IDE, MicroPython y Lua»

Deja un comentario