Arduino UNO R4 - Potenciómetro

Este tutorial le enseña cómo usar Arduino Uno R4 con un potenciómetro. En detalle, aprenderemos:

Potenciómetro Arduino UNO R4

Acerca del potenciómetro

Un potenciómetro giratorio, también conocido como sensor de ángulo giratorio, se utiliza para cambiar manualmente ajustes como el volumen del estéreo, el brillo de la lámpara o el nivel de zoom del osciloscopio.

Pinout del potenciómetro

Esquema de pines

Un potenciómetro suele tener tres patillas.

  • Pin GND: conéctalo a GND (0V)
  • Pin VCC: conéctalo a VCC (5V o 3.3V)
  • Pin de salida: envía voltaje al pin de entrada del Arduino UNO R4.
Disposición de pines del potenciómetro

※ Nota:

El pin GND y el pin VCC se pueden intercambiar.

Cómo funciona

El eje del potenciómetro puede girar desde 0° (más cercano al GND) hasta un ángulo máximo (más cercano al pin VCC), llamado ANGLE_MAX.

El voltaje en el pin de salida varía desde el voltaje en GND hasta el voltaje en VCC. El voltaje de salida cambia directamente con el ángulo al que se gira el eje.

  • Cuando el ángulo es de 0 grados, el voltaje en el pin de salida es de 0 voltios.
  • Cuando el ángulo es igual a ANGLE_MAX, el voltaje en el pin de salida coincide con el voltaje de VCC.
  • Si el ángulo está entre 0 y ANGLE_MAX, output_voltage = angle × VCC / ANGLE_MAX

※ Nota:

El valor de ANGLE_MAX varía según el fabricante. Por lo general, no prestamos mucha atención al valor de ANGLE_MAX a menos que necesitemos calcular el ángulo de rotación (consulte la sección de casos de uso).

Cómo funciona un potenciómetro

Arduino UNO R4 - Potenciómetro giratorio

Los pines A0 a A5 del Arduino UNO R4 pueden configurarse como entradas analógicas. Estos pines convierten la tensión, que va de 0 voltios a VCC, en números enteros entre 0 y 1023. Estos números se llaman valores ADC o valores analógicos.

Al conectar la salida de un potenciómetro a una entrada analógica del Arduino UNO R4, podemos programar el Arduino para leer el valor ADC y convertirlo en un número útil.

El valor recibido por el Arduino UNO R4 no es ni un ángulo ni una tensión; es un entero que va de 0 a 1023.

Tomamos el valor del pin de entrada analógica y lo convertimos en otro número. Ahora, veamos cómo se utiliza.

Casos de uso

  • Convertir el valor del ADC al ángulo.
  • Convertir el valor del ADC en voltaje.
  • Convertir el valor del ADC en un valor controlable (como el volumen de un estéreo, el brillo o la velocidad del motor). Este es el escenario más utilizado.

Rango de reescalado

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

Diagrama de Cableado

Diagrama de cableado del potenciómetro para Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Cómo programar para un potenciómetro

  • Utiliza la función analogRead() para leer el valor de un pin conectado al pin de salida del potenciómetro.
adc_value = analogRead(A0);
  • Convierte el valor del ADC en el ángulo del potenciómetro utilizando la función map().
angle = map(adc_value, 0, 1023, 0, ANGLE_MAX);
  • Convertir el valor del ADC a la tensión:
voltage = map(adc_value, 0, 1023, 0, VCC);
  • Convertir el valor ADC a un nivel manejable (por ejemplo, el volumen del estéreo, el brillo o la velocidad del motor de corriente continua).
value = map(adc_value, 0, 1023, VALUE_MIN, VALUE_MAX);
  • Por ejemplo, ajustar el brillo de un LED. El brillo de un LED se puede controlar mediante un valor PWM de 0 (siempre apagado) a 255 (siempre encendido). Por lo tanto, podemos mapear el valor ADC al brillo del LED (de apagado al brillo máximo) como se muestra a continuación:
brightness = map(adc_value, 0, 1023, 0, 255);

※ Nota:

La función map() se utiliza para convertir un valor analógico a un valor de tipo int o long. Si necesitas trabajar con un valor de tipo float, deberías usar la función floatMap() en su lugar.

La función floatMap():

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 de Arduino UNO R4

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-potentiometer */ float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { // Map a float value from one range to another. return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } void setup() { // Begin serial communication with a baud rate of 9600: Serial.begin(9600); } void loop() { // Retrieve analog value from pin A0: int adc_value = analogRead(A0); // Convert the analog value to a voltage (0-5V range): float voltage = floatMap(adc_value, 0, 1023, 0, 5); // Output the analog value and corresponding voltage to the serial monitor: Serial.print("Analog: "); Serial.print(adc_value); Serial.print(", Voltage: "); Serial.println(voltage); // Wait for a second before repeating the loop: delay(1000); }

Pasos R\u00e1pidos

Siga estas instrucciones paso a paso:

  • Si es la primera vez que usas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configuración del entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta el potenciómetro al Arduino Uno R4 según el diagrama proporcionado.
  • Conecta la placa Arduino Uno R4 a tu computadora usando un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Selecciona la placa adecuada Arduino Uno R4 (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Copia el código anterior y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para cargar el código al Arduino UNO R4
Subir código al IDE de Arduino
  • Abre el Monitor de serie
  • Gira el potenciómetro
  • Comprueba el Monitor de serie para obtener el resultado
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  

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.

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!