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:
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:
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:
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 é:
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.