Arduino Nano ESP32 - Potenciómetro
Este tutorial proporciona instrucciones sobre cómo usar Arduino Nano ESP32 con el potenciómetro. En detalle, aprenderemos:
- Cómo funciona el potenciómetro
- Cómo conectar Arduino Nano ESP32 con un potenciómetro
- Cómo programar Arduino Nano ESP32 para leer el valor de un potenciómetro
- Cómo convertir el valor leído de un potenciómetro al valor útil
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del potenciómetro
El potenciómetro (también conocido como sensor de ángulo giratorio) se usa para cambiar la configuración (p. ej., el volumen del altavoz, la temperatura de la habitación, el brillo de la lámpara...)

Disposición de pines del potenciómetro
Un potenciómetro suele tener 3 pines:
- Pin VCC: conecta este pin a VCC (5V o 3.3V)
- Pin GND: conecta este pin a GND (0V)
- Pin de salida: entrega la tensión al pin de entrada del ESP32

※ Nota:
Los pines GND y VCC son intercambiables.
Cómo funciona un potenciómetro
El eje del potenciómetro se puede girar desde 0° (más cercano al pin GND) hasta un ángulo (más cercano al pin VCC), llamado ANGLE_MAX.
El voltaje en el pin de salida es directamente proporcional a la posición angular del eje, variando de 0 a VCC. La tabla siguiente muestra la relación entre el ángulo y el voltaje en el pin de salida:
| Angle | Voltage |
|---|---|
| 0° | 0v |
| ANGLE_MAX° | VCC |
| angle° | angle° × VCC / ANGLE_MAX° |
※ Nota:
El valor ANGLE_MAX depende de los fabricantes.

Arduino Nano ESP32 - Potenciómetro giratorio
El pin de entrada analógica del ESP32 convierte la tensión (entre 0 V y 3,3 V) en valores enteros (entre 0 y 4095), llamados valor ADC o valor analógico.
Podemos conectar la salida del potenciómetro al pin de entrada analógica de un ESP32 y luego leer el valor analógico desde ese pin.
El valor analógico del pin de entrada puede reescalarse a otro valor. Veamos los casos de uso:
- Reescalar el valor analógico al ángulo del potenciómetro.
- Reescalar el valor analógico al voltaje del potenciómetro.
- Reescalar el valor analógico al valor de ajuste (p. ej., el volumen del altavoz, la temperatura de la habitación, el brillo de la lámpara...)
Rango de reescalado
| FROM | TO | |||
|---|---|---|---|---|
| Angle | rotated by user | 0° | → | ANGLE_MAX° |
| Voltage | from potentiometer's pin | 0V | → | 3.3V |
| ADC value | read by ESP32 | 0 | → | 4095 |
| Setting value | converted by ESP32 | VALUE_MIN | → | VALUE_MAX |
Diagrama de cableado entre potenciómetro y Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image
Cómo programar un potenciómetro
- Leer el valor de un pin de entrada, que está conectado al pin de salida del potenciómetro, utilizando la función analogRead().
- Reescala al ángulo del potenciómetro usando la función map().
- Reescalar al voltaje del potenciómetro:
- Reescale al valor controlable (p. ej. volumen del estéreo, brillo, velocidad de un motor de corriente continua... )
- Por ejemplo, ajustar la intensidad del LED. Como se menciona en este tutorial, la intensidad del LED se puede controlar utilizando un valor PWM desde 0 (siempre apagado) hasta 255 (siempre encendido). Por lo tanto, podemos mapear el valor analógico a la intensidad del LED (desde apagado hasta el más brillante) de la siguiente manera:
Si quieres atenuar el LED desde la luz nocturna hasta el brillo máximo,
※ Nota:
La función map() solo puede usarse para reescalar el valor analógico al tipo de valor int o long. Si el valor controlable es de tipo float, necesitas usar la función floatMap() en lugar de la función map().
Función floatMap():
Código de Arduino Nano ESP32
Pasos R\u00e1pidos
- Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en Arduino IDE.
- Copia el código anterior y pégalo en Arduino IDE.
- Compila y carga el código en la placa Arduino Nano ESP32 haciendo clic en el botón Upload en Arduino IDE

- Abrir Monitor Serial en el IDE de Arduino

- Gira el potenciómetro
- Consulta el resultado en el Monitor Serial. Se muestra a continuación:
※ Nota:
Este tutorial utiliza la función analogRead() para leer valores de un ADC (Convertidor Analógico-Digital) conectado a un sensor o componente. El ADC del Arduino Nano ESP32 es adecuado para proyectos que no requieren alta precisión. Sin embargo, para proyectos que requieren mediciones precisas, tenga en cuenta lo siguiente:
- El ADC del Arduino Nano ESP32 no es perfectamente preciso y podría requerir calibración para obtener resultados correctos. Cada placa Arduino Nano ESP32 puede variar ligeramente, por lo que la calibración es necesaria para cada placa individual.
- La calibración puede ser un desafío, especialmente para principiantes, y podría no siempre dar los resultados exactos que deseas.
Para proyectos que requieren alta precisión, considere usar un ADC externo (p. ej. ADS1115) con el Arduino Nano ESP32 o usar otro Arduino, como el Arduino Uno R4 WiFi, que tiene un ADC más fiable. Si aún desea calibrar el ADC del Arduino Nano ESP32, consulte el ESP32 ADC Calibration Driver.
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.