Como controlar o servo motor com arduino

Como controlar o servo motor com arduino
Servo Motors é um tipo de dispositivo elétrico que pode alterar ou girar a posição de um objeto com grande precisão. Ao começar, eles foram usados ​​para controlar as asas de avião RC momentos depois, eles fizeram o seu caminho para robótica, robôs humanóides e muitos projetos de automação. Ao contrário dos motores de passo.

Geralmente, o Servo Motors tem braços que podem ser controlados usando Arduino. Servo motores consistem em um sistema de controle que fornece opinião Sobre a posição atual do eixo do motor, este feedback permite se mover com grande precisão.

Servo pinagem de motor

Normalmente, a maioria dos motores servo tem três pinos:

  • Pino VCC (normalmente vermelho 5V)
  • GND Pin (normalmente preto 0V)
  • Pino do sinal de entrada (receba sinal PWM de Arduino)

Funcionando do servo motor

Podemos controlar o motor servo conectando o pino VCC a 5V e Pin GND a 0V. No terminal de cores amarelas, fornecemos um Pwm sinal que controla o ângulo rotativo do motor servo. A largura do sinal PWM nos dá o ângulo no qual o motor girará seu braço.

Se olharmos para a folha de dados da Servo Motors, obtemos seguintes parâmetros:

  • Período de tempo de sinal PWM
  • Largura mínima para PWM
  • Largura máxima para PWM

Todos esses parâmetros são predefinidos na Biblioteca Arduino Servo.

Servo Motors com Arduino

Servo Motors é super fácil de controlar com Arduino, graças ao Biblioteca Servo o que nos ajuda a personalizar nosso código de acordo com a necessidade e nos permite girar o braço servo em nosso ângulo desejado.

Todos os três parâmetros mencionados acima são fixados na biblioteca servo. Ao usar esses parâmetros, podemos controlar o ângulo do servo motor da seguinte maneira:

  • Se a largura do sinal PWM = width_max, o servo girará para 180o
  • Se a largura do sinal pwm = width_miin, o servo girará para 0o
  • Se a largura do sinal PWM estiver entre Width_max e width_min, O motor servo girará entre 0o e 180o

Podemos gerar um sinal PWM desejado em alguns dos pinos Arduino. O sinal PWM será fornecido no pino de sinal de entrada do motor servo. Conectando dois pinos restantes de servo a 5V e GND de Arduino.

Como controlar o servo motor usando arduino

Aqui vou explicar como podemos conectar e programar nosso servo motor usando arduino. Tudo o que você precisa é:

  • Arduino Uno
  • Cabo USB B
  • Servo motor
  • Fios de jumper

Como programar servo com arduino

A seguir, estão algumas etapas simples:

Passo 1: Inclua biblioteca servo predefinida:

#incluir

Passo 2: Crie objeto servo:

Servo myservo;

Dica: Caso você esteja controlando mais de um servo motores, você deve criar mais objetos servo:

Servo myServo1;
Servo myServo2;

Etapa 3: Defina o pino de controle (9) no Arduino Uno, que envia sinal PWM para a porta de sinal de entrada do servo:

MyServo.anexar (9);

Passo 4: Gire o ângulo do motor servo para o valor desejado, por exemplo, 90O:

MyServo.escreva (pos);

Código Arduino

Programa de Exemplo de Motor de Servo Aberto de Arquivo> Exemplo> Servo> Sweep, Uma nova janela abrirá nos mostrando nosso esboço de servo:

#incluir
Servo myservo; // servo objeto é criado para controlar o servo motor
int pos = 0; // Para armazenar Posição de servo, uma nova variável é criada
Void Setup ()
MyServo.anexar (9); // Isso definirá o pino Arduino 9 para saída PWM

Void Loop ()
para (pos = 0; pos = 0; pos -= 1) // vai de 180 a 0 graus
MyServo.escreva (pos); // Diga a servo para ir para a posição 'POS'
atraso (5); // aguarda 5 ms para que o servo possa se posicionar

Depois que o programa é compilado e carregado, o servo motor começará a girar lentamente da posição inicial de 0 a 180 graus, um grau de cada vez, como as etapas. Quando o motor concluir a rotação de 180 graus, ele iniciará sua rotação na direção oposta em direção ao ponto de partida I.e., 0 grau.

Esquemas

Como controlar o servo motor usando o potenciômetro

Também podemos controlar a posição do motor servo à mão. Para fazer isso, precisamos de um Potenciômetro. O potenciômetro tem três pinos. Conecte os dois pinos externos a 5V VCC e GND de Arduino e Middle One a A0 Pin na placa Arduino.

Como programar servo com potenciômetro

A maior parte do esboço para o potenciômetro é o mesmo que o exemplo anterior. A única diferença é uma nova variável Val e potpin é definido antes da seção de configuração e loop do código.

int potpin = a0;
int val;

Na seção de loop, o pino analógico A0 é usado para ler valores para potenciômetro com função analogread (). As placas Arduino contêm ADC de 10 bits (conversor analógico ao digital), fornecendo valores entre 0 e 1023, dependendo de qual o potenciômetro de posição é:

Val = analogread (potpin);

Por fim, nós usamos mapa() Função para re-mapear os números de 0 a 1023 de acordo com o ângulo do servo como sabemos que o Servo Motors só pode girar entre 00 e 1800.

val = mapa (val, 0, 1023, 0, 180);

Código Arduino

Esboço de botão aberto disponível no Arduino IDE, vá para Arquivos> Exemplos> servo> botão. Uma nova janela será aberta, o que nos mostra nosso esboço de botão para servo:

#incluir
Servo myservo; // Criando um nome de servo nome MyServo
int potpin = a0; // Definindo pino analógico para potenciômetro
int val; // variável que lerá valores de pinos analógicos para potenciômetro
Void Setup ()
MyServo.anexar (9); // Pino definido 9 para o sinal de entrada PWM de servo no Arduino

Void Loop ()
Val = analogread (potpin); // Lê o valor do potenciômetro (valor entre 0 e 1023)
val = mapa (val, 0, 1023, 0, 180); // Escala o valor a ser usado com o servo (valor entre 0 e 180)
MyServo.escreva (val); // define a posição do servo com valor escalado
atraso (15); // espera o servo para chegar à posição

O código acima nos ajudará a controlar o eixo do motor servo usando o potenciômetro, o eixo girará entre 0 e 180 graus. Também podemos manter a velocidade junto com a direção do servo usando -o.

Diagrama de circuito

Quantos servo motores posso me conectar com arduino?

O número máximo de servo motores arduino uno pode lidar é até 12 com a biblioteca Arduino para servo e máximo de 48 servos pode ser conectado com pranchas como mega.

Dica: Podemos executar diretamente o servo usando a corrente Arduino, mas lembre -se se os motores servos desenham mais do que 500mA Então sua placa Arduino pode redefinir e perder energia automaticamente. É recomendável sempre usar uma fonte de alimentação dedicada para servo motores.

Conclusão

Neste tutorial, cobrimos o mecanismo de controle de servo motores com Arduino. Cobrimos o básico do controle da posição do servo e da velocidade usando o potenciômetro. Agora você tem uma idéia sobre servo e possibilidades para sua robótica, projetos de RC e automação usando servo são infinitos.