Arduino - medir tensão

Neste tutorial, vamos explorar como usar um Arduino para medir tensões de 0V a 25V usando um sensor de tensão. Em detalhes, vamos abordar:

Sensor de tensão com Arduino

Sobre o Sensor de Tensão

Um Sensor de Tensão é um circuito divisor de tensão pré-montado que utiliza resistores de precisão para simplificar a medição de tensão. Ele é composto por dois resistores: 30 KΩ e 7.5 KΩ. Com uma tensão de referência de 5V para o ADC, o sensor pode medir tensões de 0 a 25V DC. Quando a tensão de referência do ADC é 3.3V, o sensor pode medir tensões de 0 a 16.5V DC.

Pinagem

Um sensor de tensão tem dois conjuntos de pinos:

  • Interface de Entrada (conectada aos pontos onde você quer medir a tensão):
    • Pino VCC: Este é o pino positivo. Conecte-o ao ponto com a tensão mais alta.
    • Pino GND: Este é o pino negativo. Conecte-o ao ponto com a tensão mais baixa.
  • Interface de Saída (conectada ao Arduino):
    • Pino Vout (S): Este é o pino de sinal. Conecte-o a um pino analógico do Arduino.
    • Pino NC (+): Este pino não é usado. Deixe-o desconectado.
    • Pino GND (-): Este é o pino de terra. Conecte-o ao GND (0V) do Arduino.
    Pinagem do Sensor de Tensão
    image source: diyables.io

Diagrama de Ligação

Diagrama de Ligação do sensor de tensão com Arduino

This image is created using Fritzing. Click to enlarge image

Código Arduino

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-measure-voltage */ // define analog input #define ANALOG_IN_PIN A0 #define REF_VOLTAGE 5.0 #define ADC_RESOLUTION 1024.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Passos Rápidos

  • Conecte o Arduino ao sensor de tensão
  • Conecte o Arduino ao PC via cabo USB
  • Abra o Arduino IDE, selecione a placa e a porta corretas
  • Copie o código acima e abra-o com o Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Teste medindo os pinos de 5V e 3.3V do Arduino
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39
Ln 11, Col 1
Arduino Uno on COM15
2

Você pode notar que o resultado da medição está incorreto ou bem diferente do valor real. Não culpe o módulo sensor de tensão por isso. O valor medido pode apresentar desvios porque a tensão de referência padrão é 5V, que pode ser instável e depender da fonte de alimentação. Aqui estão algumas soluções para esse problema:

  • Use uma fonte de alimentação que forneça tensão suficiente para o Arduino. Você pode verificar isso usando um voltímetro para conferir se o pino de 5V do Arduino fornece 5V.
  • Use uma tensão de referência externa de 3.3V. No entanto, com este método, você só pode medir tensões de 0 a 16.5V DC.

Medindo Tensão com Referência de 3.3V

Para usar este método, você precisa configurar tanto o hardware quanto o código. Para o hardware, conecte o pino AREF do Arduino ao 3.3V, como mostrado no diagrama abaixo.

Diagrama de Ligação do Arduino medindo tensão

This image is created using Fritzing. Click to enlarge image

Em seguida, use o código a seguir:

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-measure-voltage */ #define ANALOG_IN_PIN A0 #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 1024.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); analogReference(EXTERNAL); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Vídeo

Referências de Funções

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!