ESP32 - Potenciómetro que acciona un relé

Este tutorial te enseña a usar el ESP32 con el potenciómetro para controlar un relé. En detalle:

También aprendemos cómo convertir el valor analógico en voltaje y luego usar el umbral de voltaje para controlar un relé:

Podemos ampliar este tutorial para usar un botón para controlar una tira de LEDs, una sirena, una bombilla o un motor... conectándolos al relé.

Acerca de Relé y Potenciómetro

Tenemos tutoriales específicos sobre relé y potenciómetro. Cada tutorial contiene información detallada e instrucciones paso a paso sobre la distribución de pines de hardware, el principio de funcionamiento, la conexión de cableado al ESP32 y el código para ESP32... Obtén más información sobre ellos en los siguientes enlaces:

Diagrama de Cableado

Diagrama de cableado del ESP32, potenciómetro y relé

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

Código ESP32 - Umbral analógico

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-potentiometer-triggers-relay */ #define POTENTIOMETER_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to Potentiometer pin #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to Relay's pin #define ANALOG_THRESHOLD 1000 void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin if (analogValue > ANALOG_THRESHOLD) digitalWrite(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay }

Pasos R\u00e1pidos

  • Si esta es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Haz el cableado como en la imagen de arriba.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre Arduino IDE en tu PC.
  • Selecciona la placa ESP32 correcta (por ejemplo ESP32 Dev Module) y el puerto COM.
  • Copia el código anterior y pégalo en Arduino IDE.
  • Compila y sube el código a la placa ESP32 haciendo clic en el botón Upload en Arduino IDE.
Subir código al IDE de Arduino
  • Gira el potenciómetro
  • Observa el cambio en el estado del relé

Explicación del código línea por línea

El código ESP32 anterior contiene una explicación línea por línea. Por favor lea los comentarios del código.

Código ESP32 - Umbral de voltaje

El valor analógico leído del potenciómetro se convierte en voltaje, y luego ese voltaje se compara con un umbral de voltaje. Si excede el umbral, activa el relé.

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-potentiometer-triggers-relay */ #define POTENTIOMETER_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to Potentiometer pin #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to Relay's pin #define VOLTAGE_THRESHOLD 2.5 // Voltages void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin float voltage = floatMap(analogValue, 0, 1023, 0, 5); // Rescale to potentiometer's voltage if(voltage > VOLTAGE_THRESHOLD) digitalWrite(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay } 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; }

※ Nota:

Este tutorial utiliza la función analogRead() para leer valores de un ADC (Convertidor Analógico-Digital) conectado a un potenciómetro. El ADC del ESP32 es adecuado para proyectos que no requieren alta precisión. Sin embargo, para proyectos que necesiten mediciones precisas, tenga en cuenta:

  • El ADC del ESP32 no es perfectamente preciso y podría necesitar calibración para obtener resultados correctos. Cada placa ESP32 puede variar un poco, por lo que es necesario calibrar el ADC para cada placa individual.
  • La calibración puede ser difícil, especialmente para principiantes, y podría no proporcionar siempre los resultados exactos que desea.

Para proyectos que necesiten alta precisión, considere usar un ADC externo (p. ej., ADS1115) con el ESP32 o usar un Arduino, que tiene un ADC más confiable. Si todavía desea calibrar el ADC del ESP32, consulte 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.

※ 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!