03/09/2022
En el vasto universo de la electrónica y la programación, Arduino se ha consolidado como una herramienta indispensable para aficionados, estudiantes e ingenieros. Su versatilidad permite desde controlar luces LED hasta proyectos complejos de automatización. Una de las capacidades más fundamentales y útiles de Arduino es su habilidad para interactuar con el mundo analógico, y en particular, para medir voltaje. Comprender cómo realizar esta medición es clave para innumerables aplicaciones, desde monitorear el estado de una batería hasta crear sensores personalizados. Este artículo profundiza en los mecanismos, cálculos y consideraciones prácticas para medir voltaje de manera efectiva utilizando tu placa Arduino, transformándola en una potente herramienta de adquisición de datos.

- Fundamentos de la Medición de Voltaje con Arduino: El Conversor Analógico-Digital
- Entendiendo el Voltaje de Salida y Entrada de Arduino
- El Cálculo del Voltaje: De Bits a Voltios
- Midiendo Voltajes Mayores con un Divisor de Tensión
- Arduino como Voltímetro Digital Casero
- Consejos para una Medición Precisa
- Preguntas Frecuentes (FAQ)
- Conclusión
Fundamentos de la Medición de Voltaje con Arduino: El Conversor Analógico-Digital
La mayoría de los microcontroladores, incluido el que se encuentra en las placas Arduino, son dispositivos digitales. Esto significa que operan con dos estados: 'alto' (generalmente 5V o 3.3V) y 'bajo' (0V). Sin embargo, el mundo real es predominantemente analógico, donde las señales varían continuamente en un rango de valores. Para que un Arduino pueda "entender" una señal analógica, como el voltaje de una pila o un sensor, necesita un componente especial: el Conversor Analógico-Digital o ADC (Analog-to-Digital Converter).
El ADC de Arduino toma un voltaje analógico de entrada y lo convierte en un número digital. La placa Arduino Uno, por ejemplo, utiliza un ADC de 10 bits. Esto significa que puede representar 2^10, es decir, 1024 valores discretos diferentes. Si el rango de voltaje de entrada es de 0 a 5V (que es el rango predeterminado para la mayoría de los pines analógicos de Arduino Uno), el ADC mapeará este rango continuo a 1024 pasos. Un valor de 0 corresponderá a 0V, y un valor de 1023 corresponderá a 5V. Cualquier voltaje intermedio se mapeará proporcionalmente a un valor entre 0 y 1023.
La Función `analogRead()`
Para acceder a la funcionalidad del ADC en Arduino, se utiliza la función `analogRead()`. Esta función es muy sencilla de usar: `valorLectura = analogRead(pinAnalogico);`. El `pinAnalogico` es uno de los pines marcados como A0, A1, A2, etc., en tu placa Arduino. Cuando llamas a esta función, el Arduino lee el voltaje presente en ese pin y devuelve un valor entero entre 0 y 1023. Es crucial recordar que `analogRead()` solo puede leer voltajes positivos y dentro de su rango de operación (típicamente 0-5V). Si aplicas un voltaje negativo o uno superior a 5V directamente a un pin analógico sin las precauciones adecuadas, podrías dañar tu placa.
Resolución y Referencia de Voltaje (AREF)
La precisión del ADC (10 bits en el Uno) determina cuán finamente puede distinguir entre diferentes niveles de voltaje. Cada "paso" del ADC representa un incremento de voltaje. Para un rango de 0-5V, cada paso es de aproximadamente 5V / 1024 = 0.00488V o 4.88mV. Esto significa que el Arduino puede detectar cambios de voltaje de al menos 4.88mV.
La referencia de voltaje (Vref) es el voltaje máximo que el ADC considera como 1023. Por defecto, en la mayoría de las placas Arduino de 5V (como el Uno), Vref es de 5V. Sin embargo, puedes cambiar esta referencia utilizando la función `analogReference()`. Por ejemplo, `analogReference(EXTERNAL)` permite conectar una fuente de voltaje externa al pin AREF para establecer una referencia más precisa o de un valor diferente (por ejemplo, 3.3V para mayor precisión en ese rango). Es importante no aplicar más de 5V al pin AREF cuando se usa `EXTERNAL`.

Entendiendo el Voltaje de Salida y Entrada de Arduino
Antes de medir, es fundamental comprender los voltajes con los que opera tu Arduino. Esto te ayudará a evitar daños y a diseñar circuitos adecuados.
Voltajes de Alimentación y Salida Digital
Las placas Arduino están diseñadas para operar a voltajes específicos. Los modelos más comunes, como el Arduino Uno, Mega y Nano, funcionan con lógica de 5V, lo que significa que sus pines digitales de salida pueden proporcionar 0V (LOW) o aproximadamente 5V (HIGH). También suelen tener un pin de salida de 3.3V, que es útil para alimentar sensores de bajo voltaje.
El voltaje de alimentación principal (VIN) puede variar, permitiendo que la placa sea alimentada por una fuente externa (7-12V para el Uno) que luego es regulada internamente a 5V y 3.3V.
Voltaje Máximo de Entrada en Pines Analógicos
Los pines analógicos de Arduino están diseñados para leer voltajes dentro de un rango específico, generalmente de 0V a 5V. Exceder este rango puede dañar permanentemente el microcontrolador. Si necesitas medir voltajes mayores a 5V (o el voltaje de referencia de tu placa), es absolutamente necesario utilizar un circuito externo que reduzca el voltaje a un nivel seguro. Aquí es donde el divisor de tensión se vuelve indispensable.
Comparativa de Voltajes en Modelos Populares de Arduino
La adaptabilidad de Arduino significa que existen diversas placas, cada una con características ligeramente diferentes en cuanto a voltajes de operación. A continuación, se presenta una tabla comparativa de algunos modelos populares:
| Modelo de Arduino | Voltaje de Operación (Lógica) | Voltaje de Entrada Recomendado (VIN) | Pines Analógicos (ADC) | Pines Digitales |
|---|---|---|---|---|
| Arduino Uno R3 | 5V | 7V - 12V | 6 (A0-A5) | 14 |
| Arduino Mega 2560 | 5V | 7V - 12V | 16 (A0-A15) | 54 |
| Arduino Nano | 5V | 7V - 12V | 8 (A0-A7) | 14 |
| Arduino Leonardo | 5V | 7V - 12V | 12 (A0-A5, A6-A11 en pines digitales) | 20 |
| Arduino Due | 3.3V | 7V - 12V | 12 (A0-A11) | 54 |
| ESP32 (Módulo genérico) | 3.3V | 5V (USB) / 3.3V (Pin) | Hasta 18 (ADC1) / 8 (ADC2) | ~30 |
Es vital consultar la hoja de datos de tu placa específica para conocer sus límites exactos y características de voltaje.
El Cálculo del Voltaje: De Bits a Voltios
Una vez que obtienes el valor digital (0-1023) de `analogRead()`, necesitas convertirlo de nuevo a un valor de voltaje real. La fórmula para esto es bastante sencilla:
Voltaje = (valor_leído_ADC / 1023.0) * Vref
valor_leído_ADC: El valor entero devuelto por `analogRead()`.1023.0: El valor máximo que el ADC puede leer (0-1023, por lo que 1024 pasos, siendo 1023 el valor máximo). Es importante usar 1023.0 (con el punto decimal) para forzar la división de punto flotante y obtener un resultado preciso.Vref: El voltaje de referencia del ADC. Por defecto, es 5.0V para la mayoría de los Arduinos de 5V. Si cambiaste la referencia con `analogReference()`, usa ese valor.
Ejemplo Práctico de Cálculo en Código Arduino
Aquí tienes un fragmento de código simple para leer y calcular el voltaje en un pin analógico:
const int pinSensor = A0; // Pin analógico donde está conectado el sensor/voltaje const float Vref = 5.0; // Voltaje de referencia de Arduino (por defecto 5V) void setup() { Serial.begin(9600); // Inicializa la comunicación serial para ver los resultados } void loop() { int valorADC = analogRead(pinSensor); // Lee el valor del ADC (0-1023) float voltaje = (float)valorADC / 1023.0 * Vref; // Calcula el voltaje real Serial.print("Valor ADC: "); Serial.print(valorADC); Serial.print(" -> Voltaje: "); Serial.print(voltaje, 2); // Muestra el voltaje con 2 decimales Serial.println(" V"); delay(1000); // Espera 1 segundo antes de la siguiente lectura } Este código te permitirá ver cómo el valor digital se traduce directamente en un voltaje medible.

Midiendo Voltajes Mayores con un Divisor de Tensión
Como se mencionó, el Arduino solo puede leer voltajes hasta su Vref (generalmente 5V). Para medir voltajes más altos, como el de una batería de 9V o 12V, necesitamos un circuito atenuador de voltaje. La solución más común y sencilla es el Divisor de Tensión.
Un divisor de tensión es un circuito simple que consta de dos resistencias en serie. Cuando se aplica un voltaje a través de la combinación en serie, el voltaje se divide proporcionalmente entre las dos resistencias. Al conectar el pin analógico de Arduino entre las dos resistencias, podemos medir una fracción del voltaje de entrada total.
¿Cómo Funciona y Cómo se Calcula?
La fórmula para un divisor de tensión es:
Vout = Vin * (R2 / (R1 + R2))
Donde:
Vin: El voltaje que quieres medir (el voltaje de entrada al divisor).Vout: El voltaje de salida del divisor, que es el que conectarás al pin analógico de Arduino.R1yR2: Los valores de las dos resistencias.
Para usarlo con Arduino, debes elegir R1 y R2 de tal manera que cuando Vin sea el voltaje máximo que esperas medir, Vout no exceda los 5V (o tu Vref). Una configuración común para medir hasta 15V con Arduino Uno es usar R1 = 10kΩ y R2 = 3.3kΩ. Con estos valores, si Vin = 15V, entonces Vout = 15V * (3.3kΩ / (10kΩ + 3.3kΩ)) ≈ 15V * (3.3 / 13.3) ≈ 3.72V, lo cual está dentro del rango seguro de Arduino.
Conexión del Divisor de Tensión al Arduino
Para conectar el divisor al Arduino:
- Conecta un extremo de R1 a la fuente de voltaje que deseas medir (Vin).
- Conecta el otro extremo de R1 a un extremo de R2. Este punto de unión es donde obtendrás Vout.
- Conecta el otro extremo de R2 a la tierra (GND) de tu Arduino.
- Conecta Vout (el punto de unión entre R1 y R2) a uno de los pines analógicos de Arduino (ej. A0).
Una vez que obtienes el `valor_leído_ADC` de `analogRead()`, la fórmula para calcular el voltaje real (Vin) se invierte:
Vin = (voltaje_leído_Arduino / (R2 / (R1 + R2)))
O, combinando con la conversión ADC:
Vin = ((float)valor_leído_ADC / 1023.0 * Vref) / (R2 / (R1 + R2))
Asegúrate de usar valores de resistencia apropiados y de alta precisión si la exactitud es crítica para tu aplicación.
Arduino como Voltímetro Digital Casero
Dada su capacidad para leer voltajes, es natural preguntarse si un Arduino puede funcionar como un voltímetro digital. La respuesta es sí, y es un proyecto común para aprender más sobre electrónica y programación. Para construir un voltímetro básico con Arduino, necesitarías:
- Una placa Arduino (Uno, Nano, etc.).
- Resistencias para un divisor de tensión (si vas a medir más de 5V).
- Una pantalla para mostrar las lecturas (por ejemplo, una pantalla LCD 16x2 o una OLED I2C).
- Cables de conexión (jumpers).
- Una protoboard para armar el circuito.
El código sería una extensión de lo que ya hemos visto: leer el pin analógico, aplicar la fórmula de conversión (y la del divisor de tensión si aplica), y luego enviar el resultado a la pantalla para que sea visible. Si bien un Arduino puede funcionar como un voltímetro básico, es importante entender sus limitaciones. No tendrá la misma precisión, impedancia de entrada o características de seguridad que un multímetro profesional de alta calidad. Sin embargo, para fines educativos, monitoreo de proyectos o aplicaciones no críticas, es una solución excelente y económica.
Consejos para una Medición Precisa
- Calibración: La Vref real de tu Arduino puede no ser exactamente 5.0V. Puedes medirla con un multímetro preciso y usar ese valor en tu código para una mayor exactitud. También puedes calibrar el divisor de tensión si utilizas resistencias de tolerancia estándar.
- Ruido Eléctrico: Las señales analógicas son susceptibles al ruido. Intenta mantener los cables de señal cortos y alejados de fuentes de interferencia (motores, fuentes de alimentación conmutadas). Añadir un pequeño condensador (por ejemplo, 0.1µF) en paralelo con el pin analógico y GND puede ayudar a suavizar las lecturas.
- Impedancia de Fuente: Si la fuente de voltaje que estás midiendo tiene una alta impedancia, el ADC puede tener dificultades para cargar su capacitor interno, lo que lleva a lecturas inexactas. Un "buffer" (un amplificador operacional en configuración de seguidor de voltaje) puede ser necesario en casos extremos, aunque rara vez para mediciones de voltaje directo.
- Múltiples Lecturas: Para mejorar la estabilidad y la precisión, toma varias lecturas con `analogRead()` en un corto período de tiempo y calcula el promedio.
Preguntas Frecuentes (FAQ)
¿Qué es el AREF en Arduino y cuándo debo usarlo?
El pin AREF (Analog Reference) es donde puedes conectar una fuente de voltaje externa para establecer la referencia de voltaje del ADC. Por defecto, Arduino usa su propia alimentación de 5V (o 3.3V para placas de 3.3V) como referencia. Debes usar el pin AREF con `analogReference(EXTERNAL)` cuando necesitas una referencia de voltaje más precisa, más estable o diferente a la predeterminada para el rango de voltaje que estás midiendo. Por ejemplo, si solo te interesan los voltajes entre 0V y 2.5V, puedes usar una referencia externa de 2.5V para duplicar la resolución en ese rango.

¿Puedo medir voltaje AC (corriente alterna) con Arduino?
Directamente no. El ADC de Arduino solo puede leer voltajes positivos (0V a Vref). Para medir voltaje AC, necesitas un circuito rectificador y un circuito de suavizado (con capacitores) para convertir la señal AC en una señal DC proporcional al voltaje AC máximo o RMS. Además, si el voltaje AC es alto (como el de la red eléctrica), necesitarías un transformador reductor para bajarlo a un nivel seguro antes de rectificarlo y aplicarlo a Arduino. Esto es un proyecto más complejo y potencialmente peligroso si no se toman las precauciones de seguridad adecuadas.
¿Cuál es la diferencia entre `analogRead()` y `digitalRead()`?
`digitalRead()` se usa para leer el estado de un pin digital, devolviendo solo dos posibles valores: HIGH (alto, típicamente 5V o 3.3V) o LOW (bajo, 0V). Se utiliza para sensores o interruptores que solo tienen dos estados (encendido/apagado). `analogRead()`, por otro lado, se usa para leer el voltaje de un pin analógico y lo convierte en un valor numérico proporcional a ese voltaje, en un rango de 0 a 1023. Esto permite medir valores continuos, como la intensidad de la luz, la temperatura, o el voltaje de una batería.
¿Qué precisión tiene el ADC de Arduino?
El ADC de la mayoría de los Arduinos (como el Uno) tiene una resolución de 10 bits. Esto significa que divide el rango de voltaje de referencia (por ejemplo, 5V) en 1024 pasos. La precisión teórica es de aproximadamente 4.88mV por paso (5V / 1024). Sin embargo, la precisión real puede verse afectada por el ruido eléctrico, la estabilidad de la fuente de voltaje de referencia, la calidad de los componentes del divisor de tensión y las interferencias electromagnéticas. Para aplicaciones que requieren alta precisión, se pueden usar ADCs externos con mayor resolución (por ejemplo, 12, 16 o 24 bits).
¿Puedo dañar mi Arduino midiendo voltaje?
Sí, es posible. Si aplicas un voltaje negativo o un voltaje superior al voltaje de operación de tu Arduino (generalmente 5V, o 3.3V para algunas placas) directamente a un pin de entrada analógica sin un circuito de protección o un divisor de tensión adecuado, podrías dañar permanentemente el microcontrolador. Siempre verifica el rango de voltaje seguro para los pines de tu placa y utiliza divisores de tensión o circuitos de protección cuando midas voltajes fuera de ese rango.
Conclusión
Medir voltaje con Arduino es una habilidad fundamental que abre la puerta a una infinidad de proyectos y aplicaciones. Desde la lectura básica con `analogRead()` hasta la implementación de divisores de tensión para rangos más amplios, tu Arduino es una herramienta sorprendentemente capaz. Comprender los fundamentos del ADC, la referencia de voltaje y cómo calcular los valores reales te permitirá integrar sensores analógicos y monitorear fuentes de energía con confianza. Con un poco de conocimiento y las precauciones adecuadas, puedes transformar tu Arduino en un versátil voltímetro digital y mucho más, expandiendo enormemente el potencial de tus creaciones electrónicas.
Si quieres conocer otros artículos parecidos a Mide Voltaje con Arduino: Guía Completa puedes visitar la categoría Cálculos.
