
¿Qué es el FZ0430?
El FZ0430 es un módulo comercial que nos permite medir tensiones de hasta 25V de forma sencilla con un procesador como Arduino.
Como muchos imaginaréis, en realidad el FZ0430 es un simple divisor de tensión con resistencias de 30kOhm y 7.5kOhm, lo que supone que la tensión percibida tras el módulo sea de divida por un factor de 5 (7.5/(30+7.5))
Por tanto, la tensión máxima que podemos medir será 25V para un procesador de tensión de alimentación Vcc 5V, y 16.5V para un procesador de Vcc 3.3V. Superar esta tensión en el input del FZ0430 dañará el pin analógico de Arduino.
Por supuesto, esta ampliación del rango de medición tiene una consecuencia negativa en la precisión de la medición. En los modelos de Arduino que incorporan un ADC de 10 bits alimentados a 5V, la resolución normal es de 4.88mV. Tras el FZ0430 la resolución de la medición es de 24.41mV.
Anuncio:
En caso de emplear una carga de 25V, la corriente que atraviesa el divisor es de 0.7mA, y las pérdidas del divisor 16.67mW.
Por supuesto, podemos construir nosotros mismos un divisor de tensión por un muy precio muy inferior, y donde ajustemos los valores de las resistencias empleadas a nuestro proyecto para minimizar la pérdida de precisión.
Sin embargo, este módulo incorpora clemas de conexión y terminales para conectar de forma sencilla y rápida a Arduino, por lo que podría ser interesante tener algún módulo para realizar una medición rápida y de baja precisión.
Por ejemplo, puede ser útil para medir el estado de una batería, o comprobar la alimentación de un dispositivo de 12V o 24V, como una tira LED, un electroimán, un ventilador, o una placa Peltier.
También puede ser interesante en combinación con un ADS 16 bits, que dispone de medición diferencial para realizar mediciones analógicas en corriente alterna. Con 15 bits dedicados + 1 para el signo, tenemos una precisión de 0.15mV, que tras el FZ0430 queda una precisión final de 0.76mV.
Podemos, por ejemplo, combinarlo con un transformador de 220V/12V para realizar mediciones de tensión alterna a 220V de forma sencilla, para hacer un monitor de energía.
Precio
El módulo de medición de 25V FZ0430 es un dispositivo barato. Podemos encontrarlo por 0.75€ en vendedores internacionales de eBay o AliExpress.
Como hemos dicho, resulta más barato montar un divisor de tensión. La principal ventaja que nos aporta es la comodidad de uso. Si tenemos en cuenta el coste de la clema de conexión, la placa, los terminales Dupont y el montaje, seguramente al final es más barato comprarlo que hacerlo.
No obstante, en un montaje definitivo normalmente sustituiremos este módulo por un divisor de tensión integrado en nuestro montaje, no sólo por el coste, si no por el espacio ocupado y la posibilidad de ajustar la precisión convenientemente.
Esquema de montaje
El esquema de conexión es muy sencillo. Por un lado, conectamos la tensión que queremos conectar a la clema de conexión, respetando la polaridad.
Por otro lado, conectamos la electrónica del módulo a Arduino mediante los terminales disponibles. Conectando Gnd y SIG del FZ0430, respectivamente, a Gnd y una entrada analógica cualquiera de Arduino.
La conexión, vista desde Arduino, sería la siguiente.
Si quisiéramos hacer lo mismo haciendo nosotros mismos el divisor de tensión, el esquema sería el siguiente.
Ejemplos de código
El código es igualmente sencillo, ya que es idéntico al que emplearíamos para leer una entrada analógica, simplemente modificando el valor de 5.0V por 25.0V.
const int sensorPin = A0; // seleccionar la entrada para el sensor int sensorValue; // variable que almacena el valor raw (0 a 1023) float value; // variable que almacena el voltaje (0.0 a 25.0) void setup() { Serial.begin(9600); } void loop() { sensorValue = analogRead(sensorPin); // realizar la lectura value = fmap(sensorValue, 0, 1023, 0.0, 25.0); // cambiar escala a 0.0 - 25.0 Serial.println(value); // mostrar el valor por serial delay(1000); } // cambio de escala entre floats float fmap(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; }
Descarga el código
Todo el código de esta entrada está disponible para su descarga en Github.
Anuncio:
Hola. Muy bueno el post me ha servido de mucho. Tengo que realizar un proyecto en en cual tengo que medir el consumo de una bateria de 36v – 12A con arduino y mostrar los mismos por un LCD. Medir la intensidad lo podría realizar con el ACS712, pero la tensión, con el FZ0430 no me alcanza ya que es hasta 25V. Quisiera saber si me puede recomendar algún modulo para manejar esa tensión, si es que viene. Muchas gracias
Hola Luis, un fan de tus posts
Hay un párrafo muy interesante donde hablas de acoplar un ADC de 16 bit+el FZ, cosa que vaya permite leer salidas analógicas muchísimo mejor, y pocas veces he visto el tema en mis grupos, igual hay información en la red pero estaría por demás excelente que pudieras dedicar un post a esto.
Saludos y muchas gracias.
Que mas Luis como te va.
Necesito saber que sensor me podría medir un voltaje mayor o igual a 50 v DC
Gracias.
Fabián debes disminuir el valor de la resistencia de 7K5. Realizando el cálculo según la formula matemática de divisor de tensión el valor de la resistencia sería de 3300 Ohms aproximando. Sería bueno conectar un buffer a la salida del divisor para así evitar lecturas inestables.
Hola…
Muy interesante, tengo una idea y pensaba hacer algo con esta propuesta. Tengo idea de hacer un circuito de recarga para baterias ion li y habia pensado colocar el medidor de tension para cuando llegara a un punto de aproximadamente el 20 % de su capacidad sonara una alarma o a traves de un DFP reprodujera un sonido mp3 advirtiendo del estado. Lo ves viable??
Sin entrar demasiado en profundidad sobre la solución (hay muchas posibles), sí, es algo habitual que el procesador mida la tensión de su alimentación para prevenir el deterioro de las baterías.
Es una pequeñez, pero al código le falta un Serial.begin(9600); en el Setup para que funcione bien un copia / pega. 😉
Gracias por todo Luis.
Arreglado, gracias por el aviso!
Hola Luis,
muchas gracias por todos tus tutoriales, increiblemente útiles.
Sería correcto usar este sensor para medir la carga para una batería de 12v para una caravana ?
muchas gracias.
En principio, no deberías tener problemas
hablando de exactitud, de cuanto es aproximadante la tolerancia de error que hay en las lecturas?