ESP8266 - Potenciômetro Servo Motor

Este tutorial mostra como usar o ESP8266 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×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
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×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

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 conhece servo motores e potenciômetros, incluindo pinagem, funcionamento e programação, os tutoriais a seguir serão úteis:

Diagrama de Ligação

Diagrama de ligação do ESP8266 NodeMCU com servo motor e potenciômetro

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

Para simplificar, o diagrama de ligação acima é usado para testes ou aprendizado, e para um servo motor de torque pequeno. Na prática, recomendamos fortemente usar uma fonte de alimentação externa para o servo motor. O diagrama de ligação abaixo mostra como conectar o servo motor a uma fonte de alimentação externa.

Diagrama de ligação do servo motor do ESP8266 NodeMCU com fonte de alimentação externa

This image is created using Fritzing. Click to enlarge image

Como Programar

  • Leia o valor do potenciômetro (de 0 a 1023)
int analog_value = analogRead(A0);
  • Converta-o em um ângulo no intervalo 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 ESP8266

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-potentiometer-servo-motor */ #include <Servo.h> Servo servo; // create servo object to control a servo void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); servo.attach(D5); // attaches the servo on pin D5 to the servo object } void loop() { // reads the value of the potentiometer (value between 0 and 1023) int analog_value = analogRead(A0); // scales it to use it with the servo (value between 0 and 180) int angle = map(analog_value, 0, 1023, 0, 180); // sets the servo position according to the scaled value servo.write(angle); // print out the value Serial.print("Analog: "); Serial.print(analog_value); Serial.print(", Angle: "); Serial.println(angle); delay(100); }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Veja o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a porta COM correspondente.
  • Conecte o ESP8266 ao seu computador usando um cabo USB.
  • Inicie o Arduino IDE, selecione a placa e a porta apropriadas.
  • Copie o código acima e abra-o no Arduino IDE.
  • Clique no botão Upload no Arduino IDE para transferir o código ao ESP8266.
Arduino IDE Upload Code
  • Abra o Serial Monitor
  • Gire o potenciômetro
  • Observe a rotação do servo motor
  • Veja o resultado no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' 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
Nodemcu 1.0 (ESP-12E Module) 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!