Arduino Nano - medir tensão

Neste guia, vamos aprender a medir tensões entre 0V e 25V usando um sensor de tensão com um Arduino Nano. Vamos ver:

Arduino Nano voltage sensor

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Voltage Sensor
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Sensor de Tensão

Um Sensor de Tensão é um circuito pronto para uso que divide a tensão para facilitar a medição. Ele tem dois resistores: um de 30 KΩ e um de 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. Se a tensão de referência do ADC for 3,3V, o sensor pode medir de 0 a 16,5V DC.

Pinagem

Um sensor de tensão inclui dois grupos de pinos.

  • Interface de Entrada (conecte onde você precisa medir a tensão):
    • Pino VCC: Este é o pino positivo. Conecte-o ao ponto com tensão mais alta.
    • Pino GND: Este é o pino negativo. Conecte-o ao ponto com menor custo.
  • Interface de Saída (conecte ao Arduino Nano):
    • Pino Vout (S): Este é o pino de sinal. Conecte-o a uma entrada analógica do Arduino Nano.
    • Pino NC (+): Não conecte este pino.
    • Pino GND (-): Este é o pino de terra. Conecte-o ao GND (0V) do Arduino Nano.
    Voltage Pinout
    image source: diyables.io

Diagrama de Ligação

The wiring diagram between Arduino Nano and voltage sensor

This image is created using Fritzing. Click to enlarge image

Código Arduino Nano

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-measure-voltage */ #define ANALOG_IN_PIN A7 // The Arduino Nano pin connected to voltage sensor #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 Nano ao sensor de tensão.
  • Conecte o Arduino Nano a um computador usando um cabo USB.
  • Abra a Arduino IDE e selecione a placa e a porta corretas.
  • Copie o código e abra na Arduino IDE.
  • Clique no botão Upload da Arduino IDE para transferir o código para o Arduino Nano.
  • Teste medindo 5 volts e 3,3 volts no Arduino Nano.
  • Veja os resultados no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 Nano on COM15
2

Você pode observar que o resultado da medição está incorreto ou muito diferente do valor real. Isso não é falha do módulo do sensor de tensão. O valor medido pode variar porque a tensão de referência padrão é 5V, que pode ser instável e depende da fonte de alimentação. Aqui estão algumas soluções para resolver esse problema:

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

Medindo a Tensão com uma 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 a 3,3V, como mostrado no diagrama abaixo.

The wiring diagram between Arduino Nano and measures voltage

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Em seguida, use o código a seguir:

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-measure-voltage */ #define ANALOG_IN_PIN A7 // The Arduino Nano pin connected to voltage sensor #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

※ 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!