Arduino UNO R4 - Potenciômetro

Este tutorial ensina como usar o Arduino Uno R4 com um potenciômetro. Em detalhes, vamos aprender:

Arduino UNO R4 potenciômetro

Sobre o Potenciômetro

Um potenciômetro rotativo, também conhecido como sensor de ângulo rotativo, é usado para alterar manualmente ajustes como o volume de um aparelho de som, o brilho de uma lâmpada ou o nível de zoom de um osciloscópio.

Pinagem do Potenciômetro

Pinagem

Um potenciômetro normalmente tem três pinos.

  • Pino GND: conecte ao GND (0V)
  • Pino VCC: conecte ao VCC (5V ou 3,3V)
  • Pino de saída: envia tensão para o pino de entrada do Arduino UNO R4.
Pinagem do Potenciômetro

※ Nota:

O pino GND e o pino VCC podem ser trocados entre si.

Como Funciona

O eixo do potenciômetro pode girar de 0° (mais perto do GND) até um ângulo máximo (mais perto do pino VCC), chamado de ANGLE_MAX.

A tensão no pino de saída varia da tensão do GND até a tensão do VCC. A tensão de saída muda diretamente com o ângulo em que o eixo é girado.

  • Quando o ângulo é de 0 grau, a tensão no pino de saída é de 0 volt.
  • Quando o ângulo é igual a ANGLE_MAX, a tensão no pino de saída é igual à tensão do VCC.
  • Se o ângulo estiver entre 0° e ANGLE_MAX, output_voltage = angle × VCC / ANGLE_MAX

※ Nota:

O valor de ANGLE_MAX varia de acordo com o fabricante. Normalmente, não damos muita atenção ao valor de ANGLE_MAX, a menos que precisemos calcular o ângulo de rotação (veja a seção de casos de uso).

Como o Potenciômetro Funciona

Arduino UNO R4 - Potenciômetro Rotativo

Os pinos A0 a A5 do Arduino UNO R4 podem ser configurados como entradas analógicas. Esses pinos convertem a tensão, que vai de 0 volt até VCC, em números inteiros entre 0 e 1023. Esses números são chamados de valores ADC ou valores analógicos.

Ao conectar o pino de saída de um potenciômetro a um pino de entrada analógica do Arduino UNO R4, podemos programar o Arduino para ler o valor ADC e convertê-lo em um número útil.

O valor recebido pelo Arduino UNO R4 não é um ângulo nem uma tensão; é um número inteiro que vai de 0 a 1023.

Pegamos o número do pino de entrada analógica e o convertemos em outro número. Agora, vamos ver como isso é usado.

Casos de Uso

  • Converter o valor ADC em ângulo.
  • Converter o valor ADC em tensão.
  • Converter o valor ADC em um valor controlável (como o volume de um aparelho de som, o brilho ou a velocidade de um motor). Este é o cenário mais usado.

Reescalonar a Faixa

DE PARA
Ângulogirado pelo usuário 0° → ANGLE_MAX
Tensãodo pino do potenciômetro 0V → VCC
Valor ADClido pelo Arduino UNO R4 0 → 1023
Outro valorconvertido pelo Arduino UNO R4 VALUE_MIN → VALUE_MAX

Diagrama de Ligação

Diagrama de Ligação do Potenciômetro com Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

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

Como Programar para o Potenciômetro

  • Use a função analogRead() para ler o valor de um pino conectado ao pino de saída do potenciômetro.
adc_value = analogRead(A0);
  • Converta o valor ADC no ângulo do potenciômetro usando a função map().
angle = map(adc_value, 0, 1023, 0, ANGLE_MAX);
  • Converta o valor ADC em tensão:
voltage = map(adc_value, 0, 1023, 0, VCC);
  • Converta o valor ADC em um nível controlável (por exemplo, o volume do aparelho de som, o brilho ou a velocidade do motor DC).
value = map(adc_value, 0, 1023, VALUE_MIN, VALUE_MAX);
  • Por exemplo, ajustar o brilho de um LED. O brilho de um LED pode ser controlado com um valor PWM de 0 (sempre OFF) a 255 (sempre ON). Portanto, podemos mapear o valor ADC para o brilho do LED (de apagado até o mais brilhante) assim:
brightness = map(adc_value, 0, 1023, 0, 255);

※ Nota:

A função map() é usada para converter um valor analógico em um valor do tipo int ou long. Se você precisar trabalhar com um valor do tipo float, use a função floatMap().

A função floatMap():

float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

Código Arduino UNO R4

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-potentiometer */ float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { // Map a float value from one range to another. return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } void setup() { // Begin serial communication with a baud rate of 9600: Serial.begin(9600); } void loop() { // Retrieve analog value from pin A0: int adc_value = analogRead(A0); // Convert the analog value to a voltage (0-5V range): float voltage = floatMap(adc_value, 0, 1023, 0, 5); // Output the analog value and corresponding voltage to the serial monitor: Serial.print("Analog: "); Serial.print(adc_value); Serial.print(", Voltage: "); Serial.println(voltage); // Wait for a second before repeating the loop: delay(1000); }

Passos Rápidos

Siga estas instruções passo a passo:

  • Se esta é a sua primeira vez usando o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima na Arduino IDE.
  • Conecte o potenciômetro ao Arduino Uno R4 de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 apropriada (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Copie o código acima e abra-o na Arduino IDE
  • Clique no botão Upload na Arduino IDE para enviar o código ao Arduino UNO R4
Enviar código para o Arduino pela Arduino IDE
  • Abra o Serial Monitor
  • Gire o potenciômetro
  • Verifique o resultado no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Analog: 0, Voltage: 0.00 Analog: 0, Voltage: 0.00 Analog: 126, Voltage: 0.62 Analog: 281, Voltage: 1.37 Analog: 517, Voltage: 2.53 Analog: 754, Voltage: 3.69 Analog: 906, Voltage: 4.43 Analog: 1023, Voltage: 5.00 Analog: 1023, Voltage: 5.00
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2

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!