Código de búsqueda

Lección 98-9: Medidor de nivel de voltaje LED usando Arduino o luz caminante con potenciómetro

Lección 98-9: Medidor de nivel de voltaje LED usando Arduino o luz caminante con potenciómetro

Este proyecto te muestra cómo construir un medidor de nivel de voltaje que utiliza cinco LED como pantalla de gráfico de barras, controlado enteramente por un Arduino y un solo potenciómetro. A medida que giras la perilla, el Arduino lee el voltaje cambiante en un pin analógico y enciende un LED por cada voltio, de modo que la fila de luces literalmente "camina" hacia arriba y hacia abajo con la perilla. Es una de las formas más claras de entender la entrada analógica, porque puedes ver la conversión de analógico a digital ocurriendo en tiempo real como una barra de luz física.

5 LED en la protoboard con resistencia variable deslizante mostrada conectada al Arduino UNO
5 LED en la protoboard con resistencia variable deslizante mostrada conectada al Arduino UNO

El valor práctico aquí va mucho más allá de un espectáculo de luces. Una vez que entiendes cómo asignar un voltaje medido a un conjunto de salidas, puedes reutilizar exactamente el mismo patrón para instrumentación real. Por ejemplo, podrías construir:

  • Un indicador de carga de batería que muestre la capacidad restante de una batería de 12 V o de un banco de energía USB como una fila de LED.
  • Un medidor de nivel de tanque de agua, donde un sensor de flotador emite un voltaje proporcional a la profundidad.
  • Una pantalla de barra de temperatura usando un sensor de temperatura analógico como el LM35.
  • Un medidor de intensidad de señal o nivel de audio para un receptor de radio o amplificador.
  • Una lectura de sensor simple para cualquier transductor analógico de 0–5 V (presión, luz, posición).
  • Una sonda de voltaje de banco de pruebas para verificar rieles de alimentación sin la pantalla de un multímetro.

Debido a que los umbrales se calculan como porcentajes del voltaje de la placa, el mismo código funciona en placas de 5 V como el Uno y el Mega y en placas de 3.3 V con solo un cambio de una línea.

Hardware y componentes

La lista de piezas es deliberadamente mínima, y todo se explica en la primera parte del video (en el video en 01:54). Necesitarás:

  • Una placa Arduino (Uno, Nano o Mega).
  • Cinco LED, idealmente de un solo color para que la barra se lea claramente, aunque los colores mixtos funcionan bien.
  • Cinco resistencias limitadoras de corriente. El tutorial usa resistencias de 1 kΩ, pero cualquier valor desde aproximadamente 300 Ω hasta 1 kΩ funcionará; los valores más altos simplemente hacen que los LED sean más tenues (en el video en 05:33).
  • Un potenciómetro. Se demuestran tanto un tipo de perilla giratoria como un tipo deslizante (en el video en 02:19).
  • Una protoboard y cables de conexión.

Una nota rápida sobre el LED en sí, ya que importa para el cableado: un LED es un diodo, por lo que solo conduce en una dirección. El lado plano del cuerpo de plástico, y la pata más corta, es el cátodo (negativo). La pata más larga es el ánodo (positivo). El tutorial explica este símbolo y la forma física en detalle (en el video en 02:39).

El valor de la resistencia no es arbitrario. Un LED cae aproximadamente 2 V, y los tipos pequeños de 3 mm y 5 mm consumen alrededor de 10 mA. Con una fuente de 5 V, los 3 V restantes deben caer a través de la resistencia, por lo que la ley de Ohm da R = 3 V / 0.01 A = 300 Ω. Ese es el valor para el brillo máximo; usar 1 kΩ es una opción segura y ligeramente más tenue (en el video en 04:41).

Guía de cableado

Esquema para LED de luz caminante de Arduino
Esquema para LED de luz caminante de Arduino
cableado para LED de luz caminante de Arduino
cableado para LED de luz caminante de Arduino

La sección de LED del cableado es idéntica al proyecto anterior de luz caminante: el ánodo de cada LED se conecta a su propio pin digital, y cada cátodo pasa a través de una resistencia a un riel de tierra común. En el tutorial, los LED están conectados a los pines 7, 6, 5, 4 y 3 (en el video en 43:04).

El potenciómetro es la única pieza nueva. Sus dos pines exteriores van a los dos rieles de alimentación — un pin exterior a tierra y el otro a 5 V (o 3.3 V si estás midiendo un sistema de 3.3 V). El pin central, llamado cursor, es la salida y debe conectarse al pin analógico A0 (en el video en 43:30). El cursor es lo que produce el voltaje variable: a medida que giras la perilla, el cursor se desliza a lo largo de una pista resistiva y el voltaje que presenta cambia suavemente entre los dos rieles.

Un detalle importante: si retiras el potenciómetro mientras el circuito está funcionando, el pin analógico queda flotando y los LED parpadearán aleatoriamente. Ese comportamiento se demuestra en el video (en el video en 48:52) y es un buen recordatorio de que una entrada analógica siempre necesita una fuente de voltaje definida.

Explicación del código

El código es corto y la mayor parte es sencilla, por lo que esta sección se centra solo en las partes que querrás cambiar. Todas estas configuraciones se encuentran en la parte superior del sketch.

Definiciones de pines. Estas le indican al Arduino a qué pines están conectados los LED y el potenciómetro. Si cableaste tus LED de manera diferente, cambia estos números para que coincidan — el orden importa, porque LED1 es el umbral más bajo y LED5 el más alto.

const int potPin = A0;//define a pin to connect potentiometer
const int LED1 = 7;
const int LED2 = 6;
const int LED3 = 5;
const int LED4 = 4;
const int LED5 = 3;

Voltaje de la placa. Este es el valor más importante que hay que configurar correctamente. Es la referencia contra la cual se calcula cada umbral. Configúrelo en 5.0 para un Uno o Mega, y en 3.3 para un Nano de 3.3 V o una placa similar. Si lo deja mal, cada LED cambiará a un voltaje incorrecto (en el video en 44:19).

float boardVoltage= 5.0;//for UNO and MEGA 5.0V for Nano either 5V or 3.3V

Visualización del voltaje por puerto serie. Configure esto en true para imprimir el voltaje medido en el Monitor Serie a 9600 baudios, lo cual es extremadamente útil durante la calibración. Configúrelo en false para silenciar la salida una vez que todo funcione.

boolean showVoltage = true;//true or false to read voltage in serial monitor

Cómo funciona la conversión. El convertidor analógico-digital del Arduino devuelve un número de 0 a 1023, porque es un convertidor de 10 bits (210 = 1024 pasos). El código escala ese número bruto a un voltaje real usando el voltaje de la placa como referencia. Esta es la línea que hay que recordar si alguna vez se cambia a una placa de 12 bits como la Due, donde se dividiría entre 4095 en su lugar.

int sensorValue = analogRead(A0);
float voltage = sensorValue * (boardVoltage / 1023.0);

La lógica de umbrales. En lugar de codificar los voltajes de forma fija, cada paso se expresa como un porcentaje del voltaje de la placa. Al 95% o más, los cinco LEDs se encienden; por encima del 80% solo cuatro; y así sucesivamente hasta el 20%, donde se enciende un solo LED. Este enfoque porcentual es lo que hace que el sketch sea portátil entre placas de 5 V y 3.3 V sin reescribir las comparaciones.

if (voltage >= boardVoltage*0.95)
{
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, HIGH);
      digitalWrite(LED5, HIGH);
}

Como el código usa else if, se ejecuta exactamente una rama por cada pasada del bucle, por lo que solo se enciende la cantidad correcta de LEDs a la vez. El retardo de 50 ms al final de cada bucle evita que la pantalla parpadee.

Proyecto en vivo y demostración

Con el sketch cargado, abra el Monitor Serie a 9600 baudios y gire la perilla lentamente. El voltaje impreso y la barra de LEDs se siguen de cerca entre sí: a aproximadamente 1 V se enciende un LED, a 2 V se encienden dos, y así sucesivamente hasta aproximadamente 4.8 V donde los cinco están encendidos (en el video en 47:37). Las lecturas quedan dentro de unas pocas centésimas de voltio del valor esperado, lo cual es excelente para un convertidor de 10 bits.

Si los pasos parecen ligeramente desiguales, por lo general son las resistencias y no el código. El tutorial señala que las resistencias estándar de película de carbono tienen una tolerancia del 10%, mientras que los tipos de película metálica azules son típicamente del 1% y dan pasos notablemente más ajustados y precisos (en el video en 48:18).

También puede cambiar el potenciómetro rotativo por un potenciómetro deslizante y obtener el mismo comportamiento con una sensación lineal, lo cual es una buena opción si planea montar el medidor en un panel (en el video en 49:07).

Si desea mover la luz manualmente en lugar de con una perilla, eso se cubre en Lección 98-8: Luz caminante con pulsador y LEDs con Arduino. Y si simplemente desea que los LEDs caminen con su propio temporizador, consulte Lección 98-7: Luz caminante usando Arduino y 5 LEDs.

Proyectos relacionados de este video

Capítulos

  • [00:00] Descripción general de los 10 proyectos con LED
  • [02:29] Fundamentos de LEDs, símbolos y cálculo de resistencias
  • [42:25] Introducción al medidor de nivel de voltaje con LEDs
  • [43:04] Cableado de los LEDs y el potenciómetro
  • [43:54] Explicación del código de la barra de voltaje
  • [44:19] Configuración de la referencia de voltaje de la placa
  • [46:00] Lógica de umbrales y pasos porcentuales
  • [47:14] Demostración: lectura de voltaje con la barra de LEDs
  • [48:18] Tolerancia de resistencias y precisión
  • [49:07] Uso de un potenciómetro deslizante

Imágenes

wiring for Arduino walking light LEDs
wiring for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
5 leds en protoboard con resistencia variable deslizante mostrados conectados a Arduino UNO
5 leds en protoboard con resistencia variable deslizante mostrados conectados a Arduino UNO
941-Lessson 98-LED-9: Arduino code walking LED light controlled by potentiometer
Idioma: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Archivos📁

Bibliotecas de Arduino (zip)

Manual del Usuario