ESP8266 - Potenciómetro

Este tutorial te enseña cómo usar el ESP8266 con un potenciómetro, que también se conoce como pot, trim, resistencia variable, reóstato o sensor de ángulo giratorio. En detalle, aprenderemos:

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Potentiometer
1×Alternatively, 10k Ohm Trimmer Potentiometer
1×(Alternativo) Potentiometer Kit
1×(Alternativo) Potentiometer Module with Knob
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del potenciómetro

Un potenciómetro giratorio también se conoce como pot, trimmer, resistencia variable, reóstato o sensor de ángulo giratorio. Se utiliza para ajustar manualmente el valor de algo. Ejemplos incluyen el volumen de un estéreo, el brillo de una lámpara y el nivel de zoom de un osciloscopio.

Pinout del potenciómetro

Pinout del potenciómetro

Un potenciómetro suele tener tres pines:

  • El pin GND debe estar conectado a la tierra (0V).
  • El pin VCC debe estar conectado a la fuente de voltaje (5V o 3.3V).
  • El pin de salida envía la tensión al pin de entrada del Arduino.
Pinout del potenciómetro

※ Nota:

Los pines GND y VCC se pueden intercambiar.

Cómo funciona

La rotación del eje del potenciómetro puede ir desde 0°, que es lo más cercano a GND, hasta un ángulo máximo, que es lo más cercano al pin VCC, al que se denomina ANGLE_MAX.

※ Nota:

El valor de ANGLE_MAX está determinado por el fabricante. En general, no necesitamos considerar este valor a menos que estemos calculando un ángulo rotado (ver la sección de casos de uso).

Cómo funciona un potenciómetro

El principio de funcionamiento:

  • Un usuario gira el eje del potenciómetro
  • ⇒ El ángulo del potenciómetro cambia
  • ⇒ La resistencia del potenciómetro cambia
  • ⇒ La tensión en la salida del potenciómetro cambia
  • ⇒ El valor analógico leído por el ESP8266 cambia

ESP8266 - Potenciómetro giratorio

Algunos pines del ESP8266 pueden funcionar como entrada analógica. Estos pines de entrada analógica convierten la tensión (que varía desde 0 V hasta VCC) en valores enteros (desde 0 hasta 1023), a los que se les llama valor ADC o valor analógico.

Podemos conectar una terminal de salida del potenciómetro a un pin de entrada analógica. Esto nos permite leer el valor analógico del pin y convertirlo en un valor significativo.

El valor que recibe el ESP8266 no es un ángulo ni una tensión; más bien, es un valor entero que va de 0 a 1023.

Una vez que hayamos obtenido el valor entero del pin de entrada analógica, podemos volver a escalar este valor a otro distinto. Consideremos las aplicaciones.

Casos de uso

  • Mapear al ángulo del potenciómetro.
  • Mapear al voltaje del potenciómetro.
  • Mapear a un valor controlable, como el volumen de un estéreo, el brillo o la velocidad de un motor de corriente continua - este es el caso de uso más común.

Rango de reescalado

FROM TO
Anglerotated by userANGLE_MAX
Voltagefrom potentiometer's pin 0VVCC
ADC valueread by Arduino 01023
Other valueconverted by Arduino VALUE_MINVALUE_MAX

Diagrama de Cableado

Diagrama de cableado del potenciómetro ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

Cómo programar para un potenciómetro

  • Accede al pin de salida del potenciómetro con analogRead() y lee el valor del pin de entrada.
analog_value = analogRead(A0);
  • Usa la función map() para ajustar el ángulo del potenciómetro.
angle = map(analog_value, 0, 1023, 0, ANGLE_MAX);
  • Ajusta el voltaje al nivel del potenciómetro.
voltage = map(analog_value, 0, 1023, 0, VCC);
  • Reescala el valor a algo que se pueda controlar, como el volumen de un estéreo, el brillo o la velocidad de un motor de corriente continua.
value = map(analog_value, 0, 1023, VALUE_MIN, VALUE_MAX);
  • Por ejemplo, podemos ajustar el brillo de un LED mediante el reescalado. Como se indica en el , el brillo del LED puede regularse con un valor PWM que va desde 0 (apagado por completo) hasta 255 (totalmente encendido). Por lo tanto, podemos mapear el valor analógico al brillo del LED (desde apagado hasta el más brillante) de la siguiente manera:
brightness = map(analog_value, 0, 1023, 0, 255);

Si desea ajustar el LED desde una luz nocturna tenue hasta la más brillante,

nightlight = 100; // depending on your desired brightness brightness = map(analog_value, 0, 1023, nightlight , 255);

※ Nota:

La función map() está limitada a reescalar un valor analógico al tipo int o long. Si el valor controlable es de tipo float, la función floatMap() debe usarse en lugar de map().

float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

Código ESP8266

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-potentiometer */ #define POTENTIOMETER_PIN A0 float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } // The setup function runs once on reset or power-up void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); } // The loop function repeats indefinitely. void loop() { // read the input on analog pin: int analog_value = analogRead(POTENTIOMETER_PIN); // Rescale to potentiometer's voltage (from 0V to 5V): float voltage = floatMap(analog_value, 0, 1023, 0, 5); // print out the value you read: Serial.print("Analog: "); Serial.print(analog_value); Serial.print(", Voltage: "); Serial.println(voltage); delay(1000); }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, por ejemplo (NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
  • Copia el código y ábrelo en el Arduino IDE.
  • Una vez abierto, pulsa el botón Subir para transferir el código al ESP8266.
Subir código al IDE de Arduino
  • Abre el Monitor Serial.
  • Gira el potenciómetro.
  • Consulta el resultado en el Monitor Serial.
COM6
Send
Analog: 0, Voltage: 0.00 Analog: 0, Voltage: 0.00 Analog: 126, Voltage: 0.62 Analog: 281, Voltage: 1.37 Analog: 517, Voltage: 2.53 Analog: 754, Voltage: 3.69 Analog: 906, Voltage: 4.43 Analog: 1023, Voltage: 5.00 Analog: 1023, Voltage: 5.00
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

Este tutorial utiliza la función analogRead() para obtener datos de un ADC (Convertidor Analógico-Digital) que está conectado a un sensor u otra parte. El ADC del ESP8266 funciona bien para proyectos en los que no se necesitan lecturas muy precisas. Pero recuerda, el ADC del ESP8266 no es muy preciso para mediciones detalladas. Si tu proyecto necesita ser muy preciso, tal vez quieras usar un ADC independiente como el ADS1115 con el ESP8266, o usar Arduino como el Arduino Uno R4 WiFi, que tiene un ADC más confiable.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Desafíate a ti mismo

Utilice el potenciómetro para realizar una de las siguientes tareas:

Conocimientos Adicionales

  • Los pines GND y VCC pueden intercambiarse sin una convención específica. Todo lo que debes tener en cuenta es que el valor de voltaje en el pin de salida se invertirá cuando estos pines se intercambien.

Referencias de funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!