Arduino Nano - Potenciômetro Servo Motor

Este tutorial ensina você a usar o Arduino Nano 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×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
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 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.

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 suas pinagens, como funcionam e como programá-los, os tutoriais a seguir podem ajudar:

Diagrama de Ligação

Diagrama de ligação do Arduino Nano com servo motor e potenciômetro

This image is created using Fritzing. Click to enlarge image

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

Como Programar

  • Obtém o valor do potenciômetro, que é um número entre 0 e 1023.
int analog_value = analogRead(A0);
  • Escala o valor para um ângulo no intervalo de 0 a 180.
int angle = map(analog_value, 0, 1023, 0, 180);
  • Controla o servo até o ângulo especificado.
servo.write(angle);

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-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(2); // attaches the servo on pin D2 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

  • Conecte o cabo USB ao Arduino Nano e ao PC.
  • Abra o Arduino IDE e selecione a placa e a porta apropriadas.
  • Abra o código no Arduino IDE.
  • Para enviar o código para o Arduino Nano, pressione o botão Upload do Arduino IDE.
Arduino IDE Upload Code
  • Abra o Serial Monitor
  • Gire o potenciômetro
  • Observe a rotação do servo motor
  • Confira o resultado 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
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 on COM15
2

Explicação do Código

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