Multímetro com Arduíno UNO

Olá, como estão? A princípio iremos desenvolver um multímetro que suporta até uma tensão de 10 volts no A5 e até 25 volts no A4, para realizar esse projeto usaremos o KIT básico com Arduíno da WJ Componentes.

Obs.: Contudo caso o pino seja submetido a tensão superior a tensão calculada, poderá ocasionar na danificação do Arduíno UNO.

Componentes Utilizados no Projeto


OU

Funcionamento do Projeto Multímetro


Como foi comentado anteriormente hoje iremos desenvolver um multímetro que conseguirá calcular a tensão, corrente, potência e resistência, porém, o máximo de tensão que iremos conseguir medir será de até 10 volts no pino A5 e 25 volts no pino A4. Para estarmos realizando a entrada de mais de 5 volts nos pinos analógicos, iremos precisar fazer um divisor de tensão e/ou ligaremos os resistores em série, assim tendo uma queda de tensão, porém, compensamos ela no código-fonte. Portanto não iremos ter uma grande precisão referente a voltagens baixas em pinos projetados para calcular uma tensão alta, exemplo caso conectemos uma fonte de 5 volts no pino A5 que foi projetado para aguentar no máximo 10 volts, ele irá ter uma precisão superior ao pino A4 que foi arquitetado para suportar até 25 volts.

Como calcular a Tensão (Voltímetro)


1º Etapa – Descobrir a Tensão Correspondente

Primeiramente antes de realizar a programação ou montagem, precisamos entender como podemos obter o valor da tensão. Portanto utilizamos o pino analógico, pois podemos ler valores entre 0 e 1023, com isso é possível descobrir qual tensão corresponde a cada valor do pino analógico, ou seja, para o valor de 1023 temos como entrada 5 volts. Logo concluímos que \( \frac{VREF}{analogMax} \) é igual à tensão correspondente a cada valor do pino analógico. Dessa forma podemos escrever a equação abaixo:

\[ \frac{5}{1023} = 4,9mV ou 0,0049V \]

Ou seja, cada valor do pino analógico corresponde a 4,9 mV. Então podemos descrever com seguinte expressão:

\[ analogRead() * \frac {VREF}{analogMax} = tensão \]

Para facilitar colocamos que o valor lido no pino A5 do Arduíno, foi de 511, então calculamos da seguinte forma:

\[ 511 * \frac {5}{1023} = 2,50V \]

2º Etapa – Descobrir a Resistencia

Portanto caso queira um voltímetro de até 5 volts está pronto, não necessitará de resistores. Então basta conectar o pino analógico na fonte de alimentação ou na bateria de até no máximo 5V e compartilhar o GND com o Arduíno. Entretanto, caso queira calcular um valor superior a 5 volts, precisamos passar para o próximo passo, que é realizar um divisor de tensão com dois ou mais resistores. Agora para descobrirmos qual é a resistência dos resistores que usaremos em nosso projeto, realizamos o seguinte cálculo:

\[ V_{out} = V_{in} * \frac{R2}{R1+R2} \]

Como queremos desenvolver um voltímetro para medir uma tensão de até 25 volts. O máximo de tensão que podemos colocar no pino é 5 volts e escolheremos uma resistência para R2, escolhemos 220 Ohms. Ou seja, dessa forma podemos realizar o calculo para descobrir a resistência do resistor:

\[ 5 = 25 * \frac {220}{R1+220} \\ 5 = \frac {5500}{R1+220} \\ 5 * (R1+220) = 5500 \\ R1 + 220 = 1100 \\ R1 = 1100 – 220 = 880 \]

Então precisamos de um resistor de 880 Ohms, como esse resistor não é comercializado precisamos realizar uma ligação em série. Para isso basta conectar um resistor no outro, utilizamos 1 resistor de 220 Ohms e 2 resistores de 330 Ohms, assim totalizando 880 Ohms. Para calcular a resistência em série basta somar os valores dos resistores:

\[ 220 + 330 + 330 = 880 \]

3º Etapa – Razão Entre as Tensões

Em seguida precisamos descobrir a razão entre as tensões de entrada e saída. Para isso basta dividi-las:

\[ \frac {V_{in}} {V_{out}} \]

Para finalizar e descobrir o valor da tensão de entrada, basta realizar a seguinte equação:

\[ analogRead() * \frac {VREF}{analogMax} * razão = tensão \]

Para exemplificar, caso entremos com 12 volts, por conta do divisor de tensão o analogRead retornará 491. Sendo assim o cálculo ficará da seguinte forma:

\[ 491 * \frac {5}{1023} * 5 = 11,999V \]

Como calcular a Resistencia de um Resistor (Ohmímetro)


Importante mencionar para que o Ohmímetro (medidor de resistência) funcione corretamente iremos precisar de pelo menos dois resistores e não podemos mudar a tensão de entrada, exemplo se na fórmula estamos utilizando 5 volts não poderemos alterar depois para 3,3 volts (além que realizamos a alteração no código-fonte). Para realizar esse cálculo basta utilizar a mesma fórmula utilizada  anteriormente para descobrir a resistência:

\[ R1 = \frac{R2 * V_{in} – V_{out} * R2}{V_{out}} \]

Para exemplificar, utilizarei uma tensão de entrada de 5 volts (vin), um resistor de 220 Ohms no R2 e teremos que calcular a tensão de saída (Vout) da mesma forma que foi calculado anteriormente com o \( analogRead() * \frac{VREF}{analogMax} \), supondo que analogRead retornasse 511. Com essas informações será  possível realizar o cálculo para descobrir a resistência do resistor R1 da seguinte forma:

\[ R1 = \frac {220 * 5 – (511 – \frac{5}{1023})* 220}{(551 * \frac{5}{1023})} = 220,430 Ohms \]

Como calcular a Corrente (Amperímetro)


Para podemos calcular a corrente que está passando no  circuito utilizaremos a primeira lei de Ohms, onde fala que \( V = R * I \), onde:

  • V ou U – Tensão
  • R – Resistencia
  • A ou I – Corrente

Como já descobrimos a Tensão de entrada e a resistência. Podemos calcular a corrente no circuito, para isso aplicamos na fórmula os valores:

\[25 = 1100 * I \]

\[ I = \frac{25}{1100} \rightarrow I = 2,272mA \space ou \space 0,0022A \]

Como calcular a Potência (Wattímetro)


Para calcular a potência é simples, basta multiplicar corrente por tensão  da seguinte forma:

\[ P = V * I \]

Para assim obter a potência, agora para finalizar basta aplicar os valores na fórmula:

\[ P = 25 * 0,0022 \to P = 0,055W \]

Montagem do Projeto Multímetro


Logo após compra dos componentes na WJ Componentes, vamos à montagem! Agora na montagem iremos conectar os resistores que calculamos na protoboard para que seja possível a leitura da tensão que desejamos, seja em série e/ou com o divisor de tenção, conectaremos os pinos analógicos A5 e A4 na protoboard para que assim possamos estar lendo. Segue diagrama elétrico do divisor de tensão.

Contudo segue abaixo uma imagem que demonstra a montagem do circuito.

Divisor de Tenção do Multímetro
Montagem do Circuito Eletrônico na Protoboard - Multímetro
Figura 1 – Montagem do Circuito Eletrônico na Protoboard

Diagrama Esquemático do Projeto Multímetro


Diagrama do Circuito Eletrico - Multímetro
Figura 2 – Diagrama do Circuito Eletrico

Código-fonte do Projeto Multímetro


Em seguida terá o código completo do projeto.

//Setup ----------------------------------------------------------------------------------------------
void setup() { 
    Serial.begin(9600);                                                  // Inicializa a Serial
    pinMode(A5, INPUT);                                                  // Configura pino como INPUT
    pinMode(A4, INPUT);                                                  // Configura pino como INPUT
}
	 
//Loop -----------------------------------------------------------------------------------------------
void loop() {
    float vin, tensão, corrente, watts, ohm;                             // Declara variáveis
    tensão = (float)analogRead(A5) *(5.0/1023.0);                        // Atribui leitura do pino A5
    vin = tensão*2;                                                      // Atribui tensão vezes 2
    ohm = (220*5-tensao*220)/tensão;                                     // Atribui tensão do divisor
    corrente = vin/(ohm+220);                                            // Atribui lei de Ohms 
    watts = vin*corrente;                                                // Atribui o potencial
    Serial.println("Pino A5: Fio Branco (0 - 10V) ----------------- ");  // Imprime na Serial
    Serial.print("Tensão: ");                                            // Imprime na Serial
    Serial.print(vin);                                                   // Imprime na Serial
    Serial.print(" V\nCorrente: ");                                      // Imprime na Serial
    Serial.print(corrente*1000);                                         // Imprime na Serial
    Serial.print(" mA\nWatts: ");                                        // Imprime na Serial
    Serial.print(watts);                                                 //  Imprime na Serial
    Serial.print(" \nOhms: ");                                           // Imprime na Serial
    Serial.println(ohm);                                                 // Imprime na Serial
    Serial.println();                                                    // Imprime na Serial
    delay(2000);                                                         // Espera 2s
    Serial.println("Pino A4: Fio Vermelho (0 - 25V) --------------- ");  // Imprime na Serial
    tensão = (float)analogRead(A4) *(5/1023.0);                          // Atribui leitura do pino A5
    vin = tensão*5;                                                      // Atribui tensão vezes 5
    corrente = vin/1100;                                                 // Atribui lei de Ohms 
    watts = vin*corrente;                                                // Atribui o potencial
    Serial.print("Tensão: ");                                            // Imprime na Serial
    Serial.print(vin);                                                   // Imprime na Serial
    Serial.print(" V\nCorrente: ");                                      // Imprime na Serial
    Serial.print(corrente*1000);                                         // Imprime na Serial
    Serial.print(" mA\nWatts: ");                                        // Imprime na Serial
    Serial.println(watts);                                               // Imprime na Serial
    Serial.println();                                                    // Imprime na Serial
    delay(2000);                                                         // Espera 2s
}

Vamos dar uma olhada mais de perto no código:

Funções Setup

Começando pela função setup, onde estaremos inicializando o serial e configurando os dois pinos para medição como INPUT sendo eles o A4 e A5.

//Setup ----------------------------------------------------------------------------------------------
void setup() { 
    Serial.begin(9600);                                                  // Inicializa a Serial
    pinMode(A5, INPUT);                                                  // Configura pino como INPUT
    pinMode(A4, INPUT);                                                  // Configura pino como INPUT
}

Funções Loop

Agora na função loop, declaramos 5 variáveis sendo elas vin, tensão, corrente, watts e ohm sendo todas do tipo float, em seguida realizaremos os cálculos para obter a tensão, tensão de entrada (vin), resistência(ohm), corrente, e potencia (watts) do pino A5, logo após imprimimos na serial todas as informações e esperamos 2 segundos ou 2000 milissegundos. Em seguida realizamos novamente todos os cálculos, para obter as informações referente ao pino A4.

//Loop --------------------------------------------------------------------------------------------
void loop() {
    float vin, tensão, corrente, watts, ohm;                             // Declara variáveis
    tensão = (float)analogRead(A5) *(5.0/1023.0);                        // Atribui leitura do pino A5
    vin = tensão*2;                                                      // Atribui tensão vezes 2
    ohm = (220*5-tensao*220)/tensão;                                     // Atribui tensão do divisor
    corrente = vin/(ohm+220);                                            // Atribui lei de Ohms 
    watts = vin*corrente;                                                // Atribui o potencial
    Serial.println("Pino A5: Fio Branco (0 - 10V) ----------------- ");  // Imprime na Serial
    Serial.print("Tensão: ");                                            // Imprime na Serial
    Serial.print(vin);                                                   // Imprime na Serial
    Serial.print(" V\nCorrente: ");                                      // Imprime na Serial
    Serial.print(corrente*1000);                                         // Imprime na Serial
    Serial.print(" mA\nWatts: ");                                        // Imprime na Serial
    Serial.print(watts);                                                 //  Imprime na Serial
    Serial.print(" \nOhms: ");                                           // Imprime na Serial
    Serial.println(ohm);                                                 // Imprime na Serial
    Serial.println();                                                    // Imprime na Serial
    delay(2000);                                                         // Espera 2s
    Serial.println("Pino A4: Fio Vermelho (0 - 25V) --------------- ");  // Imprime na Serial
    tensão = (float)analogRead(A4) *(5/1023.0);                          // Atribui leitura do pino A5
    vin = tensão*5;                                                      // Atribui tensão vezes 5
    corrente = vin/1100;                                                 // Atribui lei de Ohms 
    watts = vin*corrente;                                                // Atribui o potencial
    Serial.print("Tensão: ");                                            // Imprime na Serial
    Serial.print(vin);                                                   // Imprime na Serial
    Serial.print(" V\nCorrente: ");                                      // Imprime na Serial
    Serial.print(corrente*1000);                                         // Imprime na Serial
    Serial.print(" mA\nWatts: ");                                        // Imprime na Serial
    Serial.println(watts);                                               // Imprime na Serial
    Serial.println();                                                    // Imprime na Serial
    delay(2000);                                                         // Espera 2s
}

Assim finalizamos todo o código com a explicação sobre o projeto com Arduíno UNO.

Resultado do Projeto Multímetro


Por fim esse foi o resultado obtido com o projeto.

Serial Multímetro

Agradecemos sua Presença


Por fim, espero que tenham gostado e aprendido. Então compartilhe com seus colegas e deixe um comentário de qual projeto deveria ser o próximo aqui no Blog da WJ Componentes!!
Enfim estarei deixando o arquivo Arduíno e Fritzing, link dos posts anteriores referentes ao projeto e software e sites utilizados.
Fique à vontade para tirar suas dúvidas nos comentários.

Software e Sites Utilizados

Post Relacionados

Posts mais Recentes

Julio Cesar Bonow Manoel

Julio Cesar Bonow Manoel

Cursando Engenharia da Computação pelo Centro Universitário Facens e atua no desenvolvimento de projetos na WJ Componentes. Participante da equipe de robótica Omegabotz.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *