Tutorial de resistencias para Arduino, ESP8266 y ESP32

En este tutorial aprenderás cómo funcionan las fotorresistencias, los potenciómetros o los termistores, cómo conectarlos a diferentes microcontroladores y leer sus valores analógicos

En este artículo cubrimos diferentes tipos de resistencias como:

  • Fotoresistencias (miden la intensidad de la luz)
  • Potenciómetro (divisor de tensión)
  • Termistores (miden la temperatura)

También profundizaremos en la funcionalidad del divisor de tensión que nos da una comprensión básica de cómo funcionan estos diferentes tipos de resistencias.

Publicidad

¿Qué es un divisor de voltaje?

El propósito de un divisor de voltaje es cambiar el voltaje de salida con la combinación de 2 resistencias.

Un ejemplo del uso de un divisor de voltaje es un resistor dependiente de la luz, consulte el segundo capítulo de este artículo. Otro ejemplo es un potenciómetro para controlar la velocidad de un motor, por ejemplo. El siguiente ejemplo reduce el voltaje de entrada de 5 V a un voltaje de salida de 3.3 V y usa un divisor de voltaje para esta tarea.

Divisor de voltaje
Explicación del divisor de voltaje

La ecuación para calcular el voltaje de salida de un divisor de voltaje viene dada por: U2 = U * (R2 / (R1 + R2)). Si el objetivo es reducir el voltaje de U = 5V a U2 = 3.3V, son posibles varias soluciones:

  • R1 = 1kΩ y R2 = 2kΩ
  • R1 = 5kΩ y R2 = 10kΩ.

Entonces, ¿cómo eliges la combinación correcta? La solución es que la potencia para reducir el voltaje y por lo tanto el calor correspondiente no sea el mismo. La potencia se define como P = U ^ 2 / (R1 + R2). Por lo tanto, la combinación de resistencias de 5 kΩ y 10 kΩ produce menos calor y es la opción preferible.

Tenga en cuenta que no debe usar un divisor de voltaje para reducir el voltaje de suministro de un dispositivo o carga, ya que debe recordar que un dispositivo externo conducirá un circuito paralelo con R2. El siguiente ejemplo muestra las diferencias en la decisión de elegir resistencias para el divisor de voltaje.

Resistencia

R1 5000Ω50Ω
R2 10000Ω100Ω
Dispositivo de resistencia externo 66Ω66Ω
U 5V5V
    
R2 || Dispositivo de resistencia externoR2 * Dispositivo externo / (R2 + Dispositivo externo)65,57 Ω39,76 Ω
U2U2 = U * (R2 || Dispositivo externo / (R1 + R2 || Dispositivo externo))0,07 V2,22 V
PAGU ^ 2 / (R1 + R2 || Dispositivo externo)4,94 mW278,52 mW

En el ejemplo, puede reducir el voltaje de 5V a 2.22V con la combinación de R1 = 50Ω y R2 = 100Ω, pero su potencia de salida con 278.52mW probablemente quemará las resistencias.

La siguiente tabla le brinda una descripción general de todos los componentes y partes que utilicé para este tutorial. Recibo comisiones por compras realizadas a través de los enlaces de esta tabla.

Arduino NanoAmazonAliExpress
Arduino Pro MiniAmazonAliExpress
Arduino UnoAmazonAliExpress
Arduino MegaAmazonAliExpress
ESP32 ESP-WROOM-32AmazonAliExpress
ESP8266 NodeMCUAmazonAliExpress
ESP8266 WeMos D1 MiniAmazonAliExpress
Fotoresistencia, potenciómetro y termistor en el paquete de sensoresAmazonAliExpress

Cómo usar un fotoresistor con Arduino, ESP8266 y ESP32

El fotorresistor, a menudo denominado resistor dependiente de la luz (LDR) o sensor de luz, es un resistor que
cambia su resistencia en función de la luz incidente.

Explicación de fotorresistencia
Explicación de fotorresistencia

El fotorresistor contiene electrones que están unidos a átomos en la banda de valencia. Si la luz incide sobre el fotorresistor, los electrones en la banda de valencia, llamados electrones de valencia, absorben la energía de la luz y rompen el enlace con los electrones. Los electrones que rompen el enlace se denominan electrones libres y saltarán en la banda de conducción. En la banda de conducción, los electrones, que no están unidos a ningún átomo, pueden moverse libremente de un lugar a otro.
Por otro lado, los átomos que antes tenían más electrones ahora se llaman agujeros. Por lo tanto, los electrones libres y los huecos se crean en pares y transportan corriente eléctrica. Esta corriente eléctrica disminuye la resistencia del fotorresistor.
A medida que aumenta la energía de la luz, se crean más electrones libres y huecos y, como resultado, la resistencia disminuye aún más. En resumen: la resistencia LDR disminuye al aumentar la luz incidente.

Para medir la luz incidente se utiliza un divisor de voltaje con una resistencia de 4,7 kΩ.
Con el convertidor de analógico a digital (ADC), el Arduino convierte el voltaje de referencia del divisor de voltaje en un valor digital. En el siguiente ejemplo, queremos leer la luz incidente de un sensor de luz e imprimir los valores analógicos y digitales.

Cableado entre fotoresistor y microcontrolador

Las siguientes imágenes muestran el cableado entre la fotorresistencia, la resistencia y diferentes placas de microcontroladores Arduino, ESP8266 y ESP32.

Ves que el sensor de luz no es más que una resistencia. Por lo tanto, no tiene que preocuparse por los sitios de inicio de sesión. No existe una forma incorrecta de conectar el sensor de luz.

Arduino Nano

Cableado del fotorresistor Arduino Nano

Para obtener más información sobre Arduino Nano, visite el tutorial de Arduino Nano.

Arduino Pro Mini

Cableado del mini fotorresistor Arduino Pro

Arduino Uno

Cableado de la fotorresistencia Arduino Uno

Para obtener más información sobre Arduino Uno, visite el tutorial de Arduino Uno.

Arduino Mega

Cableado Arduino Mega Fotorresistor

Para obtener más información sobre Arduino Mega, visite el tutorial de Arduino Mega.

ESP32 ESP-WROOM-32

Cableado del fotorresistor ESP32 NodeMCU

ESP8266 NodeMCU

Cableado del fotorresistor NodeMCU ESP8266

ESP8266 WeMos D1 Mini

Cableado del mini fotorresistor de ESP8266 WeMos D1

Código para leer la intensidad de la luz analógica

#define Photoresistor A0 // for Arduino microcontroller
//#define Photoresistor A0 // for ESP8266 microcontroller
//#define Photoresistor 4 // for ESP32 microcontroller

void setup() {
  Serial.begin(9600);  // set baud rate to 9600
}

void loop() {
  int analog_value = analogRead(Photoresistor);
  int brightness = map(analog_value, 0, 1000, 0, 100);
  Serial.println(brightness);
  delay(10);
}

El script de Arduino para leer la intensidad de la luz analógica con una fotorresistencia comienza con la definición del pin analógico conectado. Dado que el script está escrito para microcontroladores Arduino, ESP8266 y ESP32, solo necesita una de las tres primeras líneas, dependiendo del microcontrolador que esté utilizando.

En la función de configuración, establecemos la velocidad en baudios en 9600, que debe coincidir con la velocidad en baudios del plotter en serie en el IDE de Arduino, donde queremos visualizar el valor analógico que representa la intensidad de la luz.

Las funciones de lazo comienzan leyendo el voltaje de la salida del divisor de voltaje con la función analogRead y guardan este valor en la variable analog_value. En el siguiente paso, mapeo el valor analógico que puede estar entre 0 y 1023 a un rango de valores entre 0 y 100. Estoy usando el rango de valor máximo como 1000 porque quiero que los valores analógicos superiores a 1000 mapeado a 100.

Después del mapeo de la entrada analógica, imprimimos el valor mapeado en el trazador en serie y después de un breve retraso de 10 ms, la función de bucle comienza de nuevo.

El siguiente video muestra cómo cambia el valor analógico en el trazador serial Arduino IDE, dependiendo de la intensidad de la luz simulada con una linterna.

Cómo usar un potenciómetro con Arduino, ESP8266 y ESP32

Un potenciómetro es un divisor de voltaje ajustable y por lo tanto tiene 3 pines de conexión. Un potenciómetro consta de un soporte eléctricamente no conductor al que se aplica un material de resistencia, dos terminales en el dos extremos del elemento resistivo y un contacto deslizante móvil (también llamado triturador), que puede dividir la resistencia total fija eléctricamente. mecánicamente en dos resistencias parciales correspondientes a esta resistencia total.

Potenciómetro

Cableado entre potenciómetro y microcontrolador

La siguiente imagen muestra el cableado entre el potenciómetro y varias placas de microcontroladores Arduino, ESP8266 o ESP32. La salida del divisor de voltaje está conectada a la salida analógica del microcontrolador.

Arduino Nano

Cableado del potenciómetro Arduino Nano

Para obtener más información sobre Arduino Nano, visite el tutorial de Arduino Nano.

Arduino Pro Mini

Mini potenciómetro de cableado Arduino Pro

Arduino Uno

Cableado del potenciómetro Arduino Uno

Para obtener más información sobre Arduino Uno, visite el Tutorial de Arduino Uno.

Arduino Mega

Cableado del megapotenciómetro Arduino

Para obtener más información sobre Arduino Mega, visite el tutorial de Arduino Mega.

ESP32 ESP-WROOM-32

Potenciómetro de cableado ESP32 ESP-WROOM-32

ESP8266 NodeMCU

Potenciómetro de cableado ESP8266 NodeMCU

ESP8266 WeMos D1 Mini

Potenciómetro cableado ESP8266 WeMos D1 Mini

Ver el voltaje de salida del potenciómetro

La siguiente imagen muestra cómo se calcula el voltaje de salida del divisor de voltaje. Dependiendo de la posición del contacto deslizante, la tensión de salida U2 cambia. Medí el voltaje de salida en un ejemplo con mi osciloscopio usando R1 = 5kΩ y R2 = 10kΩ. La imagen del osciloscopio muestra claramente cómo cambié la posición del molinillo.

Osciloscopio potenciómetro

Dado que solo unos pocos lectores tendrán un osciloscopio, también puede usar el código de programa de la resistencia del potenciómetro para medir el voltaje de salida del potenciómetro y ver el voltaje en el trazador de serie Arduino IDE.

Mide la resistencia de un potenciómetro con un multímetro.

Si en lugar de tres pines, solo se utilizan dos pines, el potenciómetro actúa como una resistencia variable. En la siguiente imagen ves la conexión entre el potenciómetro y el multímetro. El siguiente video muestra las resistencias medidas por el multímetro en diferentes posiciones del contacto deslizante.

Potenciómetro Steckplatine

Cómo usar un termistor con Arduino, ESP8266 y ESP32

Un termistor es una resistencia que cambia la resistencia con la temperatura. Los termistores se clasifican en dos grupos según el comportamiento debido a los cambios de temperatura:

  • Termistores de coeficiente de temperatura negativo (NTC): la resistencia disminuye al aumentar la temperatura.
  • Termistores de coeficiente de temperatura positivo (PTC): la resistencia aumenta con el aumento de temperatura.

Los termistores NTC son los más comunes y utilizados en este artículo.

Cableado entre el termistor NTC y el microcontrolador

La siguiente imagen muestra el cableado entre el termistor NTC y diferentes microcontroladores Arduino, ESP8266 y ESP32. El cableado de un termistor PTC sería el mismo.

Arduino Nano

Cableado del termistor Arduino Nano

Para obtener más información sobre Arduino Nano, visite el tutorial de Arduino Nano.

Arduino Pro Mini

Cableado del termistor Arduino Pro Mini

Arduino Uno

Cableado del termistor Arduino Uno

Para obtener más información sobre Arduino Uno, visite el tutorial de Arduino Uno.

Arduino Mega

Cableado del mega termistor Arduino

Para obtener más información sobre Arduino Mega, visite el tutorial de Arduino Mega.

ESP32 ESP-WROOM-32

Cableado del termistor ESP32 ESP-WROOM-32

ESP8266 NodeMCU

Cableado del termistor NodeMCU ESP8266

ESP8266 WeMos D1 Mini

Cableado Termistor ESP8266 WeMos D1 Mini

El circuito es nuevamente un divisor de voltaje, lo que nos permite medir la caída de voltaje a través del termistor. Debido a que la resistencia está conectada directamente a tierra, tenemos una resistencia pull-up. Esto es importante para calcular la resistencia del termistor. Si no conoce la diferencia entre una resistencia pull-down y una pull-up, aquí encontrará un artículo que explica las diferencias en detalle.

Si no tiene un solo termistor sino un módulo de termistor, donde la resistencia está incorporada, necesita medir la resistencia de la resistencia con un multímetro, ya que necesitamos la resistencia para el cálculo de temperatura en el guión del programa. . En mi caso, el módulo de termistor tiene una integración de 10 kΩ.

Código para mostrar la temperatura con un termistor NTC

También es posible calcular la temperatura basándose en las medidas del divisor de voltaje del termistor. Para esto usamos el Ecuación de Steinhart. El siguiente esquema muestra cómo medir voltaje y temperatura con un termistor.

#define ThermistorPin = A0; // for Arduino microcontroller
//#define ThermistorPin = A0; // for ESP8266 microcontroller
//#define ThermistorPin = 4;  // for ESP32 microcontroller

int Vo;
float R1 = 10000; // value of R1 on board
float logR2, R2, T;

//steinhart-hart coeficients for thermistor
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741; 

void setup() {
  Serial.begin(9600);
}

void loop() {
  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0); //calculate resistance on thermistor
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // temperature in Kelvin
  
  T = T - 273.15; //convert Kelvin to Celcius
 // T = (T * 9.0)/ 5.0 + 32.0; //convert Celcius to Fahrenheit

  Serial.print("Temperature: "); 
  Serial.print(T);
  Serial.println(" C"); 

  delay(500);
}

Las primeras tres líneas del código del programa definen el pin analógico conectado que conecta el microcontrolador y el termistor. Dependiendo de su microcontrolador, usa una de las tres líneas y comenta las otras o las borra.

Después de definir el pin analógico, necesitamos definir varias variables para la ecuación de Steinhart. También definimos la resistencia, en mi caso 10kΩ. Los coeficientes de Steinhart se definen para cada termistor en la hoja de datos.

En la función de configuración, solo establecemos la velocidad en baudios de 9600 que debe coincidir con la velocidad en baudios del monitor en serie o trazador en serie del Arduino IDE.

La función de lazo comienza leyendo el valor analógico que es la salida del divisor de voltaje. Después de calcular la resistencia del termistor, obtenemos la temperatura en Kelvin con la ecuación de Steinhart.

Dependiendo de su preferencia, puede convertir la temperatura de Kelvin a Celsius o Fahrenheit e imprimir la temperatura en la salida en serie.

Conclusión

¿Tiene más preguntas sobre resistencias, divisor de voltaje, fotorresistores, codificador rotatorio o termistores? Utilice la sección de comentarios a continuación para hacer sus preguntas.


Deja un comentario