Arduino Nano ESP32 - MG996R

Neste tutorial, vamos aprender a usar o servo motor de alto torque MG996R com o Arduino Nano ESP32.

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 MG996R
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 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

O servo motor MG996R é um servo motor de alto torque capaz de levantar até 15kg de peso. O motor pode girar seu eixo de 0° a 180°, oferecendo controle preciso da posição angular. Para informações básicas sobre servo motores, consulte o tutorial Arduino Nano ESP32 - Servo Motor.

Pinagem

O servo motor MG996R usado neste exemplo tem três pinos:

  • Pino VCC: (normalmente vermelho) precisa ser conectado ao VCC (4,8V – 7,2V)
  • Pino GND: (normalmente preto ou marrom) precisa ser conectado ao GND (0V)
  • Pino de sinal: (normalmente amarelo ou laranja) recebe o sinal de controle PWM de um pino do ESP32.
MG996R Servo Motor Pinout

Diagrama de Ligação

Como o MG996R é um servo motor de alto torque, ele consome muita energia. Não devemos alimentar este motor pelo pino 5v do Arduino Nano ESP32. Em vez disso, precisamos usar uma fonte de alimentação externa para o servo motor MG996R.

  • Quando a placa Arduino Nano ESP32 é alimentada pela porta USB.
The wiring diagram between Arduino Nano ESP32 and MG996R Servo Motor

This image is created using Fritzing. Click to enlarge image

  • Quando a placa Arduino Nano ESP32 é alimentada pelo pino Vin.
The wiring diagram between Arduino Nano ESP32 and MG996R Servo Motor external power

This image is created using Fritzing. Click to enlarge image

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-mg996r */ #include <ESP32Servo.h> Servo servo; // create servo object to control a servo void setup() { servo.attach(D2); // attaches the servo on pin D2 to the servo object servo.write(0); // rotate slowly servo to 0 degrees immediately } void loop() { for (int angle = 0; angle <= 180; angle += 1) { // rotate slowly from 0 degrees to 180 degrees, one by one degree // in steps of 1 degree servo.write(angle); // control servo to go to position in variable 'angle' delay(10); // waits 10ms for the servo to reach the position } for (int angle = 180; angle >= 0; angle -= 1) { // rotate from 180 degrees to 0 degrees, one by one degree servo.write(angle); // control servo to go to position in variable 'angle' delay(10); // waits 10ms for the servo to reach the position } }

Passos Rápidos

Para começar com o Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
  • Ligue os componentes de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Clique no ícone Libraries na barra à esquerda do Arduino IDE.
  • Digite ESP32Servo na caixa de pesquisa e procure a biblioteca de servo de Kevin Harrington,John K. Bennett.
  • Clique no botão Install para instalar a biblioteca de servo motor para o Arduino Nano ESP32.
Arduino Nano ESP32 servo motor library
  • Conecte o Arduino Nano ESP32 ao PC por um cabo USB
  • Abra o Arduino IDE, selecione a placa e a porta corretas
  • Copie o código acima e abra com o Arduino IDE
  • Clique no botão Upload no Arduino IDE para fazer upload do código para o Arduino Nano ESP32
Arduino IDE - How to Upload Code
  • Veja o resultado: o servo motor gira lentamente de 0 a 180° e depois gira lentamente de 180° de volta a 0°

Explicação do Código

Leia a explicação linha por linha nas linhas de comentário do código!

Como Controlar a Velocidade do Servo Motor

Usando as funções map() e millis(), podemos controlar a velocidade do servo motor de forma suave, sem bloquear o restante do código

/* * 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-mg996r */ #include <ESP32Servo.h> Servo servo; unsigned long MOVING_TIME = 3000; // moving time is 3 seconds unsigned long move_start_ms; int angle_start = 30; // 30° int angle_stop = 90; // 90° void setup() { servo.attach(D2); move_start_ms = millis(); // start moving // TODO: other code } void loop() { unsigned long progress = millis() - move_start_ms; if (progress <= MOVING_TIME) { long angle = map(progress, 0, MOVING_TIME, angle_start, angle_stop); servo.write(angle); } // TODO: other code }

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!