Índice:

Voltímetro digital com CloudX: 6 etapas
Voltímetro digital com CloudX: 6 etapas

Vídeo: Voltímetro digital com CloudX: 6 etapas

Vídeo: Voltímetro digital com CloudX: 6 etapas
Vídeo: Como ligar Voltimetro digital com amperimetro Passo-a-Passo completo 2024, Novembro
Anonim
Voltímetro digital com CloudX
Voltímetro digital com CloudX

As baterias fornecem uma forma mais pura de energia DC (corrente contínua) quando utilizadas em circuitos. Seu baixo nível de ruído sempre os torna um ajuste perfeito para alguns circuitos muito sensíveis. No entanto, às vezes quando seu nível de tensão cai abaixo de um certo ponto limite, os circuitos - (os quais eles são destinados a alimentar), podem entrar em um comportamento errático; especialmente quando eles não são bem projetados para lidar com isso.

Portanto, surge a necessidade de monitorar regularmente o nível de energia da bateria para nos orientar adequadamente sobre quando é necessário uma substituição total ou carregamento - no caso de uma bateria recarregável. Portanto, neste DIY (Do It Yourself), devemos projetar um medidor de tensão de bateria simples usando o CloudX - usando o 7Segment como nosso display.

Etapa 1: Requisito de Hardware

Módulo de Microcontrolador CloudX

CloudX USB

SoftCard

Display de 7 segmentos

Resistores

Carregador

Tábua de pão

Fios de jumper (conectando)

Etapa 2: Microcontrolador CloudX M633

Microcontrolador CloudX M633
Microcontrolador CloudX M633

Módulo de Microcontrolador CloudX

O módulo CloudX é uma ferramenta de hardware de design eletrônico que permite uma maneira muito conveniente e fácil de interagir com o mundo físico por meio de uma placa de microcontrolador simples. Toda a plataforma é baseada em uma computação física de código aberto. Sua simplicidade de um IDE (Ambiente de Desenvolvimento Integrado) realmente o torna um ajuste perfeito para iniciantes, ainda mantendo uma funcionalidade suficiente para permitir que os usuários finais avançados naveguem em seu caminho. Em poucas palavras, o CloudX fornece um processo muito simplificado de manipulação do microcontrolador - abstraindo os detalhes complexos normais associados a ele; ao mesmo tempo que oferece uma plataforma de experiência do usuário muito rica. Ele encontra aplicações abrangentes: escolas, como uma grande ferramenta educacional, produtos industriais e comerciais e como uma grande ferramenta de utilidade nas mãos de um aquarista.

Etapa 3: Conexões de pinos

Conexões de pinos
Conexões de pinos

Os pinos de 7 segmentos: A, B, C, D, E, F, G, 1, 2 e 3 são conectados ao pino 1, pino 2, pino 3, pino 4, pino 5, pino 6, pino 7, pino 8, pino 9, pin10 e pin11 respectivamente.

Etapa 4: Diagrama de Circuito

Diagrama de circuito
Diagrama de circuito

O módulo do microcontrolador, estando no palco central aqui, pode ser ligado:

ou através dos pontos Vin e Gnd (ou seja, conectando-os aos terminais + ve e –ve da sua unidade de fonte de alimentação externa, respectivamente) na placa;

ou através do seu módulo de softcard CloudX USB

. Além disso, como pode ser facilmente visto no diagrama de circuito acima, a tensão da bateria de entrada tem interface com o módulo MCU (microcontrolador) de modo que o ponto – da rede divisora de tensão (formado por e) seja conectado a A0 do pino MCU.

e são escolhidos de forma a:

limitar a quantidade de corrente que flui pela rede;

limite dentro de uma faixa segura de (0 - 5) V para o MCU.

Usando a fórmula: VOUT = (R2 / (R1 + R2)) * VIN; e pode ser facilmente avaliado.

Voutmax = 5V

e para este projeto, escolhemos: Vinmax = 50V;

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

Etapa 5: Princípio de Operação

Quando a tensão de entrada medida é lida através do ponto VOUT da rede divisora de tensão, os dados são posteriormente processados no MCU para avaliar o valor real final que é exibido na unidade de segmento. Ele (o projeto do sistema) é um marcador automático de ponto decimal, no sentido de que ele (ponto decimal) realmente muda de posição na própria unidade de exibição de acordo com o que o valor flutuante dita em qualquer ponto no tempo. Em seguida, toda a unidade de exibição de 7 segmentos do hardware é conectada ao modo multiplex. É um arranjo especial em que o mesmo barramento de dados (8 pinos de dados) do MCU alimenta os três 7 segmentos ativos na unidade de exibição. O padrão de envio de dados para cada uma das partes componentes é realizado por um processo conhecido como Varredura. A varredura é uma técnica que envolve o envio de dados para cada um dos 7 segmentos componentes; e habilitando-os (ou seja, ligando-os) em rápida sucessão conforme seus respectivos dados chegam. A taxa de endereçamento de cada um deles é feita de tal forma que consegue enganar a visão humana fazendo-os acreditar que todos eles (as partes componentes) estão habilitados (endereçados) ao mesmo tempo. Ele (varredura) simplesmente, na verdade, utiliza um fenômeno conhecido como Persistência da Visão.

Etapa 6: O Programa de Software

#incluir

#incluir

#incluir

#define segment1 pin9

#define segment2 pin10

#define segment3 pin11

float batt_voltage;

int decimalPoint, batt;

/ * matrizes que armazenam padrão de segmento para cada dígito * /

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

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

disp0 int, disp1, disp2;

exibição() {

unsigned char i;

if (decimalPoint <10) {

disp0 = (int) batt_voltage / 100; // busca o MSD (dígito mais significativo)

// sendo o mais ponderado

/ * busca o próximo dígito ponderado; e assim por diante */

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

disp2 = ((int) batt_voltage% 10);

}

outro {

disp0 = (int) batt_voltage / 1000;

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

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

}

/ * Os padrões são exibidos para exibição; e 0x80 caractere adicionando um ponto decimal

se a condição associada for verdadeira * /

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

pin9 = pin10 = pin11 = HIGH;

if (decimalPoint <10)

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

else portWrite (1, CCathodeDisp [disp0]);

segmento1 = BAIXO;

segmento2 = ALTO;

segmento3 = ALTO;

delayMs (5);

pin9 = pin10 = pin11 = HIGH;

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

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

else portWrite (1, CCathodeDisp [disp1]);

segmento1 = ALTO;

segmento2 = BAIXO;

segmento3 = ALTO;

delayMs (5);

pin9 = pin10 = pin11 = HIGH;

if (decimalPoint> = 100)

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

else portWrite (1, CCathodeDisp [disp2]);

segmento1 = ALTO;

segmento2 = ALTO;

segmento3 = BAIXO;

delayMs (5);

}

}

setup () {// configure aqui

analogSetting (); // porta analógica inicializada

portMode (1, OUTPUT); // Pinos 1 a 8 configurados como pinos de saída

/ * digitalizar pinos configurados como pinos de saída * /

pin9Mode = OUTPUT;

pin10Mode = OUTPUT;

pin11Mode = OUTPUT;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // escaneia os pinos (que são ativos-baixos)

// estão desabilitados no início

loop () {// Programe aqui

batt_voltage = analogRead (A0); // leva o valor medido

batt_voltage = ((batt_voltage * 5000) / 1024); // fator de conversão para 5Vin

batt_voltage = (batt_voltage * 50) / 5000; // fator de conversão para 50Vin

decimalPoint = batt_voltage; // marca onde o ponto decimal aparece em

// o valor original antes da manipulação de dados

exibição();

}

}

Recomendado: