Arduino Nano ESP32 - Potenciômetro Servo Motor

Este tutorial ensina como usar o Arduino Nano ESP32 para controlar o ângulo de um servo motor com base no valor de entrada de um potenciômetro. Em detalhes, vamos aprender:

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Servo Motor
1×Potentiometer
1×Alternatively, 10k Ohm Trimmer Potentiometer
1×(Alternativa) Potentiometer Kit
1×(Alternativa) Potentiometer Module with Knob
1×Protoboard
1×Fios Jumper
1×(Opcional) 5V Power Adapter for Arduino Nano ESP32
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 ESP32

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.

Buy Note: For controlling multiple servo motors, use the PCA9685 16 Channel PWM Servo Driver Module to save MCU pins and simplify wiring.

Sobre o Servo Motor e o Potenciômetro

Se você não está familiarizado com servo motores e potenciômetros, incluindo pinagem, funcionamento e programação, os tutoriais a seguir serão úteis:

Diagrama de Ligação

The wiring diagram between Arduino Nano ESP32 and Servo Motor Potentiometer

This image is created using Fritzing. Click to enlarge image

Como Programar

  • Leia o valor do potenciômetro (variando de 0 a 1023)
int analog_value = analogRead(A3);
  • Converta-o em um ângulo na faixa de 0 a 180.
int angle = map(analog_value, 0, 1023, 0, 180);
  • Controle o servo para o ângulo especificado.
servo.write(angle);

Código Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-potentiometer-servo-motor */ #include <ESP32Servo.h> #define PIN_POTENTIOMETER A3 // The Arduino Nano ESP32 pin connected to potentiometer #define PIN_SERVO D2 // The Arduino Nano ESP32 pin connected to servo motor Servo servo; // create servo object to control a servo void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); servo.attach(PIN_SERVO); // attaches the Arduino Nano ESP32 pin to the servo object } void loop() { // reads the value of the potentiometer (value between 0 and 4095) int analogValue = analogRead(PIN_POTENTIOMETER); // scales it to use it with the servo (value between 0 and 180) int angle = map(analogValue, 0, 4095, 0, 180); // sets the servo position according to the scaled value servo.write(angle); // print out the value Serial.print("Analog value: "); Serial.print(analogValue); Serial.print(" => Angle: "); Serial.println(angle); delay(100); }

Passos Rápidos

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente do Arduino Nano ESP32 no Arduino IDE.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Copie o código acima e abra no Arduino IDE.
  • Clique no botão Upload do Arduino IDE para transferir o código para o Arduino Nano ESP32.
Arduino IDE Upload Code
  • Abra o Serial Monitor
  • Gire o potenciômetro
  • Confira a rotação do servo motor
  • Veja o resultado no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Analog: 0, Angle: 0 Analog: 85, Angle: 14 Analog: 201, Angle: 35 Analog: 286, Angle: 50 Analog: 370, Angle: 65 Analog: 444, Angle: 78 Analog: 521, Angle: 91 Analog: 608, Angle: 106 Analog: 690, Angle: 121 Analog: 793, Angle: 139 Analog: 907, Angle: 159 Analog: 1023, Angle: 180 Analog: 1023, Angle: 180
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Explicação do Código

Confira a explicação linha por linha contida nos comentários do código-fonte!

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!