Experimentos de John Errington con un Arduino
On noviembre 28, 2021 by adminMedición precisa de la tensión con la placa Arduino.
La gama de microcontroladores Arduino proporciona entradas analógicas que pueden utilizarse para medir la tensión. Podemos utilizar esto para construir un voltímetro.
La función analogRead() lee el voltaje y lo convierte en un número entre 0 y 1023.
El tutorial de Arduino (1) http://arduino.cc/en/Tutorial/ReadAnalogVoltagetiene este ejemplo:
¡Esto es INCORRECTO! Para un mejor resultado utilice (sensorValue + 0,5) * 5,0 / 1024,0 – vea la explicación aquí
Esto nos lleva a creer que una lectura de 0 corresponde a una entrada de 0,000V; y 1023 corresponde a una tensión de entrada de 5,000 voltios. Esto no es del todo cierto. Veamos la hoja de datos y lo que nos dice.
El chip ATMEGA utilizado en el Arduino tiene entradas analógicas que se pueden utilizar para medir con precisión la tensión
El microcontrolador Arduino está provisto de un convertidor analógico-digital (ADC) de tipo aproximación sucesiva que tiene la siguiente especificación. Las referencias que aparecen entre paréntesis así (2: 26.1) se refieren a secciones de la hoja de datos del AtMega 2560.
(2: 26.1): ATMega328 y 32U4 tienen valores similares.
Estas especificaciones nos dicen que el Arduino es capaz de medir voltajes con una precisión
de ± 2 LSB – por lo que el error máximo es de 2 bits (4 decimales) en 10 bits (1024 decimales)
Así que el peor caso de precisión del convertidor es 4 / 1024 o 1 parte en 256 es decir, el 0,25%.
Sin embargo, el límite de la precisión de la medición depende de la referencia de tensión utilizada.
El Arduino tiene sus propias referencias de voltaje – pero no son muy precisas
El chip – dependiendo del tipo – se proporciona con ALGUNAS de las siguientes tensiones de referencia (6)
DEFAULT: la referencia analógica por defecto de 5 voltios (en placas Arduino de 5V) o 3.3 voltios (en placas Arduino de 3,3V)
INTERNO: una referencia incorporada, igual a 1,1 voltios en el ATmega168 o ATmega328 y 2,56 voltios en las placas de chip ATmega8 y 32U4.
Se produce internamente amplificando la referencia de 1,1V. 2,56V es sólo un valor «típico».
EXTERNO: el voltaje aplicado al pin AREF (0 a 5V solamente). (El MicroPro 32U4, NodeMCU y ESP32 no tienen un pin para una referencia externa – ver más abajo para más información.)
La precisión de la referencia contra la que se mide el voltaje – usando cualquiera de las referencias anteriores – es en el mejor de los casos sólo 5,25 – 5,0/5,0 * 100 = 5% – mucho peor que el 0,25% que proporciona el ADC. Está claro que si queremos medir voltajes con la precisión que proporciona el Arduino las referencias en el chip no son lo suficientemente buenas. El diagrama siguiente muestra estos errores en comparación con una referencia de 4,096V descrita a continuación.
Deja una respuesta