Tabla de contenido
resumen
En este tutorial, aprenderá la interfaz del sensor de voltaje de 0-25VDC con Arduino para medir el voltaje de CC. Anteriormente, hicimos Voltímetro de 0-50V DC Para medir el voltaje de salida, Convertidor de CC a CC.
El módulo sensor de voltaje es un dispositivo de detección de voltaje de 0-25DC basado en un circuito divisor de resistencia. Reduce la señal de voltaje de entrada en un factor de 5 y genera un voltaje de salida analógico correspondiente. Esta es la razón por la que los voltajes de hasta 25V se pueden medir utilizando el pin analógico de 5V del microcontrolador.
En este proyecto, primero interconectaremos el módulo sensor de voltaje con el Arduino para medir varios voltajes de la batería. La pequeña pantalla OLED I2C de 0,96 pulgadas se utiliza para observar el voltaje de salida. Este circuito de medición de voltaje es pequeño y portátil, y se puede utilizar para detectar fallas de subtensión o sobretensión en circuitos eléctricos.
Lista de materiales
Los materiales necesarios para este proyecto son los siguientes. Todos los componentes se pueden comprar en Amazon.
Módulo sensor de voltaje 0-25V
El módulo sensor de voltaje es un módulo simple pero muy útil que utiliza un divisor de voltaje para reducir el voltaje de entrada en un factor de cinco. El módulo sensor de voltaje de 0-25V le permite usar la entrada analógica del microcontrolador para monitorear voltajes mucho más altos de lo detectable.
Características y especificaciones
1. Tipo de salida: Analógico
2. Voltaje de entrada (V): 0-25
3. Rango de detección de voltaje (V): 0.02445-25
4. Resolución de voltaje analógico (V): 0.00489
5. Dimensiones: 4 × 3 × 2 cm
Pinout del módulo del sensor de voltaje
El módulo sensor de voltaje tiene cinco pines: dos en la parte frontal y tres en la parte posterior.
- VCC: Terminal positivo de fuente de voltaje externa (0-25V)
- Teletipo: Terminal negativo de la fuente de voltaje externa
- S: Terminal analógico conectado al terminal analógico del microcontrolador
- +: Desconectado
- -: Pin de tierra conectado al GND del microcontrolador
Diseño y construcción de módulos sensores de tensión
Un sensor de voltaje es básicamente un divisor de voltaje que consta de dos resistencias con resistencias de 30 KΩ y 7.5 KΩ, o divisores de voltaje de 5 a 1. Por lo tanto, el voltaje de salida se reduce en un factor de 5 para cualquier voltaje de entrada. El esquema interno del módulo sensor de voltaje se muestra a continuación.
El pin de entrada analógica de Arduino acepta voltajes de hasta 5V. Por lo tanto, este módulo es fácil de usar en Arduino. Si el controlador es un sistema de 3.3V, el voltaje de entrada no debe exceder 3.3V x 5 = 16.5V.
Dado que el chip Arduino AVR tiene AD de 10 bits, este módulo simula una resolución de 0.00489V (5V / 1023), por lo que el voltaje mínimo del módulo de detección de voltaje de entrada es 0.00489Vx5 = 0.02445V.
Módulo sensor de voltaje de 0-25V DC e interfaz Arduino
Aprende el módulo sensor de voltaje y la interfaz Arduino. El esquema se muestra a continuación.
La conexión es muy sencilla. Conecte los pines señal (S) y negativo (-) del sensor de voltaje a los pines Arduino A0 y GND, respectivamente.
Código fuente/Programa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | Definición de entrada analógica #define ANALOG_IN_PIN A0 Flotadores para ADC y voltajes de entrada flotar adc_voltage = 0.0; flotar in_voltage = 0.0; Número de punto flotante en ohmios con respecto a la resistencia del divisor de tensión flotar R1 = 30000.0; flotar R2 = 7500.0; Flotador de tensión de referencia flotar ref_voltage = 5.0; Entero del valor ADC entero adc_value = 0; No válido arreglo() { Configuración de un monitor serie serial.empezar(9600); serial.Printrung(“Prueba de voltaje de CC”); } No válido bucle(){ Lectura de entradas analógicas adc_value = Lectura analógica(ANALOG_IN_PIN);
Determinar el voltaje en la entrada del ADC adc_voltage = (adc_value * ref_voltage) / 1024.0;
Calcular voltaje en la entrada del divisor de voltaje in_voltage = adc_voltage / (R2/(R1+R2)) ;
Envíe el resultado a dos decimales al monitor serie serial.Impresión(“Voltaje de entrada = “); serial.Printrung(in_voltage, 2);
Retrasos cortos demorar(500); } |
Para probar el funcionamiento del sensor, se utilizaron tres tipos de baterías y se observó el voltaje en el monitor serie.
Inicialmente, el sensor se probó con una batería común de iones de litio de 3.7V.
El monitor serie mostró la lectura correcta de acuerdo con el voltaje de la batería.
Del mismo modo, probar el sensor con una batería de 9V también fue multado.
El sensor de voltaje detectó una lectura de aproximadamente 5V cuando se probó con una batería de iones de litio 3S descargada.
Creación de un detector de voltaje portátil con pantalla OLED
Ahora vamos a crear un voltímetro de CC portátil que pueda medir voltajes de 0V a 25V. Anteriormente hicimos Voltímetro de 0-50V DC Con pantalla LED de 7 segmentos. Pero ahora usaremos una pantalla OLED de 0.96 pulgadas.
El siguiente es el diagrama de conexión del módulo sensor de voltaje y la interfaz de la pantalla OLED y la placa Arduino.
La conexión es bastante simple. El módulo sensor de voltaje tiene una conexión con el Arduino como antes. Sin embargo, las pantallas OLED requieren cuatro conexiones. Conecte los pines VCC y GND del OLED a los pines 3.3V y GND del Arduino. Del mismo modo, conecte los pines SDA y SCL del OLED a los pines Arduino SDA y SCL, es decir, A4 y A5.
Código fuente/Programa
Este código requiere dos bibliotecas para pantallas OLED. Cargue la biblioteca desde el siguiente enlace y agréguela a la carpeta de la biblioteca Arduino.
1. Biblioteca Adafruit GFX: https://github.com/adafruit/Adafruit-GFX-Library
2. Biblioteca Addafruit SSD1306: https://github.com/adafruit/Adafruit_SSD1306
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #include <SPI.h> #include <wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // Ancho de pantalla OLED en píxeles #define SCREEN_HEIGHT 64 // Altura de pantalla OLED en píxeles #define OLED_RESET 4 // Restablecer pin # (o -1 si comparte el pin de restablecimiento de Arduino) Consulte la hoja de datos para obtener #define SCREEN_ADDRESS 0x3C ///< direcciones. 0x3D para 128×64, 0x3C para 128×32 Adafruit_SSD1306 Monitor(SCREEN_WIDTH, SCREEN_HEIGHT, &wire, OLED_RESET); Definición de entrada analógica #define ANALOG_IN_PIN A0 Flotadores para ADC y voltajes de entrada flotar adc_voltage = 0.0; flotar in_voltage = 0.0; Número de punto flotante en ohmios con respecto a la resistencia del divisor de tensión flotar R1 = 30000.0; flotar R2 = 7500.0; Flotador de tensión de referencia flotar ref_voltage = 5.0; Entero del valor ADC entero adc_value = 0; No válido arreglo() { Configuración de un monitor serie serial.empezar(9600); serial.Printrung(“Prueba de voltaje de CC”); Si (!Monitor.empezar(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { serial.Printrung(F(“Error al asignar SSD1306”)); para (;;); No continúes, bucle para siempre } Monitor.Borrar pantalla(); } No válido bucle() { Lectura de entradas analógicas adc_value = Lectura analógica(ANALOG_IN_PIN); Determinar el voltaje en la entrada del ADC adc_voltage = (adc_value * ref_voltage) / 1024.0; Calcular voltaje en la entrada del divisor de voltaje in_voltage = adc_voltage / (R2 / (R1 + R2)) ; Envíe el resultado a dos decimales al monitor serie serial.Impresión(“Voltaje de entrada = “); serial.Printrung(in_voltage, 2); Monitor.Establecer cursor(20, 10); Pantalla OLED Monitor.Establecer tamaño de texto(1); Monitor.Establecer color de texto(Blanco); Monitor.Printrung(“Voltaje de la batería”); Monitor.Establecer cursor(25, 30); Pantalla OLED Monitor.Establecer tamaño de texto(2); Monitor.Establecer color de texto(Blanco); Monitor.Impresión(in_voltage, 2); Monitor.Printrung(” V “); Monitor.Monitor(); demorar(500); Monitor.Borrar pantalla(); } |
Si no hay ninguna fuente de voltaje conectada al terminal de entrada del voltaje, el OLED mostrará una salida de 0V.
Del mismo modo, conectar un sensor de voltaje a tres fuentes de voltaje diferentes dará tres resultados diferentes como se muestra en la imagen a continuación.
Entonces, así es como puede usar un sensor de voltaje de 0-25V DC en su Arduino y crear su propio voltímetro de CC.
conclusión
En conclusión, el proyecto ha demostrado con éxito cómo un módulo sensor de voltaje de 0-25V DC se puede interconectar con Arduino para medir varios voltajes de la batería. Se enfatizó la utilidad de los circuitos de resistencia-divisor que reducen las señales de voltaje de entrada en un factor de cinco. Este mecanismo permite mediciones precisas de hasta 25V utilizando un pin analógico de 5V.
La facilidad de uso se mejora al presentar una pantalla OLED I2C compacta de 0.96 “para la visualización del voltaje de salida. La miniaturización y portabilidad del circuito, combinadas con su capacidad para detectar fallas de voltaje, subraya su valor para mantener la eficiencia y la seguridad de los circuitos eléctricos.