Tabla de contenido:

Voltímetro digital con CloudX: 6 pasos
Voltímetro digital con CloudX: 6 pasos

Video: Voltímetro digital con CloudX: 6 pasos

Video: Voltímetro digital con CloudX: 6 pasos
Video: CÓMO CONECTAR UN VOLTÍMETRO-AMPERÍMETRO DIGITAL. DOS TIPOS DE CONEXIÓN. 2024, Noviembre
Anonim
Voltímetro digital con CloudX
Voltímetro digital con CloudX

Las baterías proporcionan una forma más pura de alimentación de CC (corriente continua) cuando se emplean en circuitos. Su bajo nivel de ruido siempre los hace perfectos para algunos circuitos muy sensibles. Sin embargo, en momentos en que su nivel de voltaje desciende por debajo de un cierto punto de umbral, los circuitos (que deben alimentar), pueden entrar en un comportamiento errático; especialmente cuando no están bien diseñados para manejar eso.

Por lo tanto, surge la necesidad de monitorear regularmente el nivel de energía de la batería para orientarnos adecuadamente en cuanto a cuándo debe realizarse un reemplazo total o carga, en el caso de una batería recargable. Por lo tanto, en este bricolaje (hágalo usted mismo), vamos a diseñar un medidor de voltaje de batería simple usando el CloudX, usando el 7Segment como nuestra pantalla.

Paso 1: requisito de hardware

Módulo de microcontrolador CloudX

CloudX USB

SoftCard

Pantalla de 7 segmentos

Resistencias

Unidad de fuente de alimentación

Tablero de circuitos

Cables de puente (conexión)

Paso 2: Microcontrolador CloudX M633

Microcontrolador CloudX M633
Microcontrolador CloudX M633

Módulo de microcontrolador CloudX

El módulo CloudX es una herramienta de hardware de diseño de electrónica que le permite una forma muy conveniente y fácil de interactuar con el mundo físico a través de una placa de microcontrolador simple. Toda la plataforma se basa en una informática física de código abierto. Su simplicidad de un IDE (entorno de desarrollo integrado) realmente lo hace perfecto para principiantes, pero conservando una funcionalidad suficiente para permitir que los usuarios finales avanzados naveguen por su camino. En pocas palabras, CloudX proporciona un proceso mucho más simplificado de manejo del microcontrolador, abstrayendo los detalles complejos normales asociados con él; al mismo tiempo que ofrece una plataforma de experiencia de usuario muy rica. Encuentra amplias aplicaciones que abarcan todos los ámbitos: escuelas, como una gran herramienta educativa; productos industriales y comerciales; y como una gran herramienta de utilidad en manos de un aficionado.

Paso 3: conexiones de pines

Conexiones de pines
Conexiones de pines

Los pines de 7 segmentos: A, B, C, D, E, F, G, 1, 2 y 3 están conectados al pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9 del CloudX-MCU, pin10 y pin11 respectivamente.

Paso 4: diagrama de circuito

Diagrama de circuito
Diagrama de circuito

El módulo del microcontrolador, que está en el centro del escenario aquí, se puede encender:

ya sea a través de los puntos Vin y Gnd (es decir, conectándolos a los terminales + ve y –ve de la unidad de fuente de alimentación externa respectivamente) en la placa;

oa través de su módulo de tarjeta de software USB CloudX

. Además, como se puede ver fácilmente en el diagrama de circuito anterior, el voltaje de la batería de entrada se interconecta con el módulo MCU (microcontrolador) de manera que el punto de la red divisor de voltaje (formado por y) está conectado a A0 del pin MCU.

y se eligen de tal manera que:

limitar la cantidad de corriente que fluye a través de la red;

límite dentro de un rango seguro de (0 - 5) V para la MCU.

Usando la fórmula: VOUT = (R2 / (R1 + R2)) * VIN; y se puede evaluar fácilmente.

Voutmax = 5V

y para este proyecto, elegimos: Vinmax = 50V;

5 = (R2 / (R1 + R2)) * 50 R1 = 45/5 * R2 Tomando R2 = 10kΩ por ejemplo; R1 = 45/5 * 10 = 90 kΩ

Paso 5: Principio de funcionamiento

Cuando el voltaje medido de entrada se lee a través del punto VOUT de la red del divisor de voltaje, los datos se procesan más en la MCU para evaluar el valor real final que se muestra en la unidad de segmento. Este (el diseño del sistema) es un colocador automático de punto decimal, ya que (punto decimal) realmente cambia de posición en la propia unidad de visualización de acuerdo con lo que dicta el valor flotante en cualquier momento dado. Luego, toda la unidad de visualización de 7 segmentos de hardware se conecta en el modo multiplex. Es una disposición especial mediante la cual el mismo bus de datos (pines de 8 datos) de la MCU alimenta los tres segmentos de 7 activos en la unidad de visualización. El envío de patrones de datos a cada una de las partes componentes se logra mediante un proceso denominado Escaneo. El escaneo es una técnica que implica el envío de datos a cada uno de los 7 segmentos componentes; y habilitarlos (es decir, encenderlos) en rápida sucesión a medida que llegan sus respectivos datos. El ritmo de abordar cada uno de ellos se realiza de tal manera que logra engañar a la visión humana haciéndole creer que todos ellos (los componentes) están habilitados (abordados) al mismo tiempo. (El escaneo) simplemente, en efecto, utiliza un fenómeno conocido como Persistencia de la visión.

Paso 6: el programa de software

#incluir

#incluir

#incluir

#definir segmento1 pin9

#definir segmento2 pin10

#definir segmento3 pin11

float batt_voltage;

int decimalPoint, batt;

/ * matrices que almacenan patrón de segmento para cada dígito dado * /

char CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

char CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

int disp0, disp1, disp2;

monitor() {

carácter sin firmar i;

si (decimalPoint <10) {

disp0 = (int) batt_voltage / 100; // obtiene el MSD (dígito más significativo)

// siendo el más ponderado

/ * obtiene el siguiente dígito ponderado; etcétera */

disp1 = ((int) batt_voltage% 100) / 10;

disp2 = ((int) batt_voltage% 10);

}

demás {

disp0 = (int) batt_voltage / 1000;

disp1 = ((int) batt_voltage% 1000) / 100;

disp2 = ((int) batt_voltage% 100) / 10;

}

/ * Los patrones se distribuyen para su visualización; y carácter 0x80 añadiendo un punto decimal

si la condición asociada es verdadera * /

para (i = 0; i <50; i ++) {

pin9 = pin10 = pin11 = ALTO;

si (decimalPoint <10)

portWrite (1, CCathodeDisp [disp0] | 0x80);

else portWrite (1, CCathodeDisp [disp0]);

segmento1 = BAJO;

segmento2 = ALTO;

segmento3 = ALTO;

delayMs (5);

pin9 = pin10 = pin11 = ALTO;

si ((decimalPoint> = 10) && (decimalPoint <100))

portWrite (1, CCathodeDisp [disp1] | 0x80);

else portWrite (1, CCathodeDisp [disp1]);

segmento1 = ALTO;

segmento2 = BAJO;

segmento3 = ALTO;

delayMs (5);

pin9 = pin10 = pin11 = ALTO;

si (decimalPoint> = 100)

portWrite (1, CCathodeDisp [disp2] | 0x80);

else portWrite (1, CCathodeDisp [disp2]);

segmento1 = ALTO;

segmento2 = ALTO;

segmento3 = BAJO;

delayMs (5);

}

}

setup () {// configurar aquí

analogSetting (); // puerto analógico inicializado

portMode (1, SALIDA); // Pines 1 a 8 configurados como pines de salida

/ * escanear pines configurados como pines de salida * /

pin9Mode = SALIDA;

pin10Mode = SALIDA;

pin11Mode = SALIDA;

portWrite (1, BAJO);

pin9 = pin10 = pin11 = ALTO; // escanear pines (que son activos bajos)

// están deshabilitados al principio

loop () {// Programar aquí

batt_voltage = analogRead (A0); // toma el valor medido

batt_voltage = ((batt_voltage * 5000) / 1024); // factor de conversión para 5Vin

batt_voltage = (batt_voltage * 50) / 5000; // factor de conversión para 50Vin

decimalPoint = batt_voltage; // marca donde aparece el punto decimal en

// el valor original antes de la manipulación de datos

monitor();

}

}

Recomendado: