- Material Necessário
- Diagrama de circuito
- O que é um servo motor?
- Explicação do código Arduino
- Controlando vários servos com Arduino - trabalhando:
Usar um ou dois Servo com Arduino é fácil, mas e se quisermos usar mais de um servo motor?
Aqui, vamos mostrar a você como controlar vários servo motores com o Arduino. Conectar vários Servo Motores com Arduino parece ser fácil, mas se conectarmos todos os Servos aos pinos de alimentação do Arduino, eles não funcionarão corretamente devido à falta de corrente suficiente para acionar todos os motores. Portanto, você deve usar uma fonte de alimentação separada para os motores, seja de alguns adaptadores (5v 2A) ou de baterias de 9v de boa qualidade.
Material Necessário
- Arduino UNO
- Servo motor
- Fonte de energia
- Tábua de pão
- Fios de conexão
Diagrama de circuito
O que é um servo motor?
Antes de entrar em detalhes, primeiro devemos conhecer os Servo motores.
Os servo motores estão disponíveis em diferentes formas e tamanhos. Um servo motor terá principalmente fios, um é para tensão positiva, outro é para aterramento e o último é para ajuste de posição. O fio VERMELHO está conectado à alimentação, o fio preto está conectado ao aterramento e o fio AMARELO está conectado ao sinal.
Um servo motor é uma combinação de motor DC, sistema de controle de posição e engrenagens. A posição do eixo do motor DC é ajustada pela eletrônica de controle no servo, com base na relação de trabalho do sinal PWM do pino SINAL.
Simplesmente falando, a eletrônica de controle ajusta a posição do eixo controlando o motor DC. Estes dados relativos à posição do eixo são enviados através do pino SIGNAL. Os dados de posição para o controle devem ser enviados na forma de sinal PWM através do pino de sinal do servo motor.
A frequência do sinal PWM (modulado por largura de pulso) pode variar com base no tipo de servo motor. O importante aqui é a DUTY RATIO do sinal PWM. Com base nesta razão de dever, a eletrônica de controle ajusta o eixo.
Conforme mostrado na figura abaixo, para que o eixo seja movido para 9o, a RAÇÃO PARA LIGAR deve ser 1 / 18.ie. 1ms de tempo ON e 17ms de tempo OFF em um sinal de 18ms.
Para que o eixo seja movido para 12o clock, o tempo ON do sinal deve ser 1,5 ms e o tempo OFF deve ser 16,5 ms. Esta relação é decodificada pelo sistema de controle no servo e ele ajusta a posição com base nele. Este PWM aqui é gerado usando ARDUINO UNO.
Antes de conectar servos ao Arduino, você pode testar seu servo com a ajuda deste circuito testador de servo motor. Verifique também nossos projetos Servo abaixo:
- Controle de servo motor por Flex Sensor
Explicação do código Arduino
O código Arduino completo para Multiple Servo Control é fornecido no final.
O Arduino tem biblioteca para Servo Motores e lida com todas as coisas relacionadas ao PWM para girar o servo, você só precisa inserir o ângulo para o qual deseja girar e há a função servo1.write (ângulo); que irá girar o servo para o ângulo desejado.
Então, aqui estamos começando definindo a biblioteca para servo motor.
#incluir
No código abaixo, estamos inicializando todos os quatro servos como Servo1, Servo2, Servo3 e Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Então, estamos configurando todos os pinos de entrada do servo com o Arduino. Conforme mostrado no código abaixo, o Servo1 está conectado ao 3º pino do Arduino. Você pode alterar os pinos de acordo com você, mas lembre-se de que deve ser um pino PWM. Usar um Servo com pinos digitais do Arduino não é confiável.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Agora, na função void loop () , estamos girando todo o servo de 0 a 180 graus e depois de 180 a 0 graus. O atraso usado no código abaixo é usado para aumentar ou diminuir a velocidade do servo, uma vez que afeta o aumento ou diminuição da velocidade da variável 'i'.
void loop () { para (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); atraso (10); } para (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); atraso (10); } }
Controlando vários servos com Arduino - trabalhando:
Todos nós enfrentamos o problema atual ao usar mais de dois servos com um Arduino. A única solução para isso é conectar uma fonte de alimentação externa com a quantidade adequada de classificação de corrente (neste projeto eu usei 2A com fonte de 9v). Para fonte de alimentação externa, você pode usar adaptadores, RPS (instrumento de fonte de alimentação regulada) ou baterias de 9 V volts de boa qualidade, mesmo que você possa usar a porta USB de seu laptop para alimentar pequenos servos. Para usar a fonte externa, você só precisa fazer um curto entre o aterramento do Arduino e o aterramento da fonte externa.
Use o código do Arduino fornecido abaixo para programar seu Arduino e conectar todos os servo motores conforme mostrado no diagrama de circuito com a fonte de alimentação adequada para os motores. Portanto, todos os servos funcionarão juntos sem qualquer interrupção.