- Materiales necesarios
- Diagrama de circuito
- Unidad de medida
- Unidad de computación y visualización
- Programando el Arduino
- ¿Cómo medir con más precisión?
- Trabajo y prueba
Como ingenieros electrónicos, siempre dependemos de medidores / instrumentos para medir y analizar el funcionamiento de un circuito. Desde un simple multímetro hasta un analizador de calidad de energía complejo o DSO, todo tiene sus propias aplicaciones únicas. La mayoría de estos medidores están disponibles y se pueden comprar en función de los parámetros que se van a medir y su precisión. Pero a veces podríamos terminar en una situación en la que necesitamos construir nuestros propios medidores. Digamos, por ejemplo, que está trabajando en un proyecto de energía solar fotovoltaica y le gustaría calcular el consumo de energía de su carga, en tales escenarios podemos construir nuestro propio Wattímetro usando una plataforma de microcontrolador simple como Arduino.
Construir sus propios medidores no solo reduce el costo de las pruebas, sino que también nos da espacio para facilitar el proceso de pruebas. Por ejemplo, un vatímetro construido con Arduino se puede modificar fácilmente para monitorear los resultados en el monitor serial y trazar un gráfico en el plotter serial o agregar una tarjeta SD para registrar automáticamente los valores de voltaje, corriente y potencia a intervalos predefinidos. Suena interesante, ¿verdad? Entonces empecemos…
Materiales necesarios
- Arduino Nano
- Amplificador operacional LM358
- 7805 Regulador de voltaje
- Pantalla LCD 16 * 2
- Resistencia de derivación de 0,22 ohmios 2 vatios
- Olla recortadora de 10k
- Resistencias de 10k, 20k, 2.2k, 1k
- Condensadores 0.1uF
- Carga de prueba
- Tablero de perforación o tablero
- Kit de soldadura (opcional)
Diagrama de circuito
El diagrama de circuito completo del proyecto de vatímetro arduino se muestra a continuación.
Para facilitar la comprensión, el circuito del vatímetro arduino se divide en dos unidades. La parte superior del circuito es la unidad de medida y la parte inferior del circuito es la unidad de cálculo y visualización. Para las personas que son nuevas en este tipo de circuitos se siguen las etiquetas. Ejemplo + 5V es etiqueta, lo que significa que todos los pines a los que está conectada la etiqueta deben considerarse como si estuvieran conectados entre sí. Las etiquetas se utilizan normalmente para que el diagrama de circuito se vea ordenado.
El circuito está diseñado para adaptarse a sistemas que operan entre 0-24 V con un rango de corriente de 0-1 A, teniendo en cuenta la especificación de una energía solar fotovoltaica. Pero puede ampliar fácilmente el rango una vez que comprenda el funcionamiento del circuito. El principio subyacente detrás del circuito es medir el voltaje en la carga y la corriente a través de él para calcular la energía que consume. Todos los valores medidos se mostrarán en una pantalla LCD alfanumérica de 16 * 2.
Más abajo, dividamos el circuito en pequeños segmentos para que podamos tener una imagen clara de cómo funciona el circuito.
Unidad de medida
La unidad de medición consiste en un divisor de potencial para ayudarnos a medir el voltaje y una resistencia de cierre con un amplificador operacional no inversor se utiliza para ayudarnos a medir la corriente a través del circuito. La parte del divisor de potencial del circuito anterior se muestra a continuación
Aquí el voltaje de entrada se representa por Vcc, como se dijo anteriormente, estamos diseñando el circuito para un rango de voltaje de 0 V a 24 V. Pero un microcontrolador como Arduino no puede medir valores de voltaje tan altos; solo puede medir voltaje de 0 a 5 V. Entonces tenemos que mapear (convertir) el rango de voltaje de 0-24 V a 0-5 V. Esto se puede hacer fácilmente utilizando un circuito divisor de potencial como se muestra a continuación. La resistencia 10k y 2.2k juntas forman el circuito divisor de potencial. El voltaje de salida de un divisor de potencial se puede calcular usando las fórmulas siguientes. Lo mismo se puede usar para decidir el valor de sus resistencias, puede usar nuestra calculadora en línea para calcular el valor de la resistencia si está rediseñando el circuito.
Vout = (Vin × R2) / (R1 + R2)
El 0-5 V mapeado se puede obtener de la parte central que está etiquetada como Voltaje. Este voltaje mapeado se puede alimentar posteriormente al pin Arduino Analog.
Luego tenemos que medir la corriente a través de la CARGA. Como sabemos, los microcontroladores solo pueden leer voltaje analógico, por lo que necesitamos convertir de alguna manera el valor de la corriente en voltaje. Se puede hacer simplemente agregando una resistencia (resistencia de derivación) en la ruta que, de acuerdo con la ley de Ohm, dejará caer un valor de voltaje a través de ella que es proporcional a la corriente que fluye a través de ella. El valor de esta caída de voltaje será muy inferior, por lo que usamos un amplificador operacional para amplificarlo. El circuito para el mismo se muestra a continuación.
Aquí el valor de la resistencia en derivación (SR1) es de 0,22 ohmios. Como se dijo anteriormente, estamos diseñando el circuito para 0-1A, por lo que, según la ley de Ohmios, podemos calcular la caída de voltaje a través de esta resistencia, que será de alrededor de 0.2V cuando un máximo de 1A de corriente pasa a través de la carga. Este voltaje es muy pequeño para que lo lea un microcontrolador, usamos un amplificador operacional en modo de amplificador no inversor para aumentar el voltaje de 0.2V a un nivel más alto para que lo lea el Arduino.
El amplificador operacional en modo no inversor se muestra arriba. El amplificador está diseñado para tener una ganancia de 21, de modo que 0.2 * 21 = 4.2V. Las fórmulas para calcular la ganancia del amplificador operacional se dan a continuación, también puede usar esta calculadora de ganancia en línea para obtener el valor de su resistencia si está rediseñando el circuito.
Ganancia = Vout / Vin = 1 + (Rf / Rin)
Aquí, en nuestro caso, el valor de Rf es 20k y el valor de Rin es 1k, lo que nos da un valor gian de 21. El voltaje amplificado del amplificador operacional se le da a un filtro RC con resistencia 1k y un capacitor 0.1uF a filtrar cualquier ruido que esté acoplado. Finalmente, el voltaje se alimenta al pin analógico Arduino.
La última parte que queda en la unidad de medida es la parte del regulador de voltaje. Dado que daremos un voltaje de entrada variable, necesitamos un voltio regulado de + 5V para que funcionen el Arduino y el amplificador operacional. Este voltaje regulado será proporcionado por el regulador de voltaje 7805. Se agrega un capacitor a la salida para filtrar el ruido.
Unidad de computación y visualización
En la unidad de medición, hemos diseñado el circuito para convertir los parámetros de voltaje y corriente en 0-5 V que se pueden alimentar a los pines analógicos Arduino. Ahora, en esta parte del circuito, conectaremos estas señales de voltaje a Arduino y también conectaremos una pantalla alfanumérica de 16 × 2 al Arduino para que podamos ver los resultados. El circuito para el mismo se muestra a continuación.
Como puede ver, el pin de voltaje está conectado al pin analógico A3 y el pin actual está conectado al pin analógico A4. La pantalla LCD se alimenta de + 5V del 7805 y está conectada a los pines digitales de Arduino para funcionar en modo de 4 bits. También hemos utilizado un potenciómetro (10k) conectado al pin Con para variar el contraste de la pantalla LCD.
Programando el Arduino
Ahora que tenemos una buena comprensión del hardware, abramos el Arduino y comencemos a programar. El propósito del código es leer el voltaje analógico en los pines A3 y A4 y calcular el valor de voltaje, corriente y potencia y finalmente mostrarlo en la pantalla LCD. El programa completo para hacer lo mismo se proporciona al final de la página y puede usarse como tal para el hardware mencionado anteriormente. Además, el código se divide en pequeños fragmentos y se explica.
Como todos los programas empezamos definiendo los pines que hemos utilizado. En nuestro proyecto, el pin A3 y A4 se usa para medir voltaje y corriente respectivamente y los pines digitales 3, 4, 8, 9, 10 y 11 se usan para conectar la pantalla LCD con Arduino.
int Read_Voltage = A3; int Read_Current = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Mencione el número de pin para la conexión LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
También hemos incluido un archivo de encabezado llamado cristal líquido para conectar la pantalla LCD con Arduino. Luego, dentro de la función de configuración, inicializamos la pantalla LCD y mostramos un texto de introducción como "Vatímetro Arduino" y esperamos dos segundos antes de borrarlo. El código para el mismo se muestra a continuación.
configuración vacía () { lcd.begin (16, 2); // Inicializar 16 * 2 LCD lcd.print ("Wattímetro Arduino"); // Línea de mensaje de introducción 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Retraso de la línea 2 del mensaje de introducción (2000); lcd.clear (); }
Dentro de la función de bucle principal, usamos la función de lectura analógica para leer el valor de voltaje del pin A3 y A4. Como sabemos, el valor de salida de Arduino ADC de 0-1203 ya que tiene un ADC de 10 bits. Este valor debe convertirse luego a 0-5 V, lo que se puede hacer multiplicando por (5/1023). Luego, nuevamente, anteriormente en el hardware, hemos mapeado el valor real de voltaje de 0-24 V a 0-5 V y el valor real de la forma actual 0-1A a 0-5V. Entonces ahora tenemos que usar un multiplicador para revertir estos valores al valor real. Esto se puede hacer multiplicándolo por un valor multiplicador. El valor del multiplicador puede calcularse teóricamente usando las fórmulas proporcionadas en la sección de hardware o si tiene un conjunto conocido de valores de voltaje y corriente, puede calcularlo prácticamente.He seguido la última opción porque tiende a ser más precisa en tiempo real. Entonces, aquí el valor de los multiplicadores es 6.46 y 0.239. Por lo tanto, el código se ve a continuación
Float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5.0 / 1023.0) * 6.46; Current_Value = Current_Value * (5.0 / 1023.0) * 0.239;
¿Cómo medir con más precisión?
La forma anterior de calcular el valor del voltaje y la corriente reales funcionará bien. Pero tiene un inconveniente, que es la relación entre el voltaje ADC medido y el voltaje real no será lineal, por lo tanto, un solo multiplicador no dará resultados muy precisos, lo mismo se aplica a la corriente también.
Entonces, para mejorar la precisión, podemos trazar un conjunto de valores de ADC medidos con valores reales usando un conjunto conocido de valores y luego usar esos datos para trazar un gráfico y derivar la ecuación del multiplicador usando el método de regresión lineal. Puede consultar el medidor de dB Arduino en el que he usado un método similar.
Finalmente, una vez que hemos calculado el valor del voltaje real y la corriente real a través de la carga, podemos calcular la Potencia usando las fórmulas (P = V * I). Luego mostramos los tres valores en la pantalla LCD usando el siguiente código.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Voltage_Value); lcd.print (""); lcd.print ("I ="); lcd.print (Valor_actual); float Power_Value = Voltage_Value * Current_Value; lcd.setCursor (0, 1); lcd.print ("Energía ="); lcd.print (Power_Value);
Trabajo y prueba
Por el bien del tutorial, he usado una placa perf para soldar todos los componentes como se muestra en el circuito. He utilizado un terminal de tornillo Phoenix para conectar la carga y un conector de barril de CC normal para conectar mi fuente de alimentación. La placa Arduino Nano y la pantalla LCD están montadas en un Bergstik hembra para que puedan reutilizarse si es necesario más adelante.
Después de preparar el hardware, cargue el código Arduino en su placa Nano. Ajuste el potenciómetro de ajuste para controlar el nivel de contraste de la pantalla LCD hasta que vea un texto de introducción claro. Para probar la placa, conecte la carga al conector de terminal de tornillo y la fuente al conector de barril. El voltaje de la fuente debe ser superior a 6 V para que este proyecto funcione, ya que Arduino requería + 5 V para funcionar. SI todo está funcionando bien, debería ver el valor del voltaje en la carga y la corriente a través de ella en la primera línea de la pantalla LCD y la potencia calculada en la segunda línea de la pantalla LCD como se muestra a continuación.
La parte divertida de construir algo radica en probarlo para comprobar hasta qué punto funcionará correctamente. Para hacer eso, he usado los indicadores de automóvil de 12V como carga y el RPS como fuente. Dado que el propio RPS puede medir y mostrar el valor de la corriente y el voltaje, será fácil para nosotros verificar la precisión y el rendimiento de nuestro circuito. Y sí, también utilicé mi RPS para calibrar mi valor multiplicador para acercarme al valor exacto.
El trabajo completo se puede encontrar en el video que se encuentra al final de esta página. Espero que hayas entendido el circuito y el programa y hayas aprendido algo útil. Si tiene algún problema para que esto funcione, publíquelo en la sección de comentarios a continuación o escriba en nuestros foros para obtener más ayuda técnica.
Este proyecto de vatímetro basado en Arduino tiene muchas más actualizaciones que se pueden agregar para aumentar el rendimiento del registro automático de datos, trazar gráficos, notificar situaciones de sobrevoltaje o sobrecorriente, etc. Así que tenga curiosidad y déjeme saber para qué usaría esto.