Servo motors - como configurá-los para Arduino

Introdução aos servo motores

Um servo motor é um dispositivo alimentado por DC que pode muito precisamente controlar a posição (0o a 180o) ou velocidade (em revoluções por minuto, rpm, sentido horário ou anti-horário). Eles têm 3 pinos para conexão: fonte de alimentação (5 V, normalmente), solo (GND) e pino de sinal. Este último, através do sistema de controle, emitirá o sinal PWM que dirá ao servo motor a posição ou velocidade para alcançar, dependendo do tipo de servo motor utilizado.

Eles geralmente têm um mecanismo de redução que lhes proporciona um torque muito bom e precisão muito boa, já que eles mesmos realizam controle de precisão interna, estando em outros motores necessários externamente. No entanto, eles fornecem menos velocidade do que os motores DC.

Essas características os tornam ideais para controlar aplicações robóticas, como braços robóticos ou orientação de sensores ou torres.

Geralmente existem 2 tipos:

  • Servomotores de alcance limitado que são os mais utilizados, cujo ângulo varia de 0 a 180o.
  • Rotação contínua servo motores, que giram 360o e podem ser controlados tanto em sua rotação quanto em velocidade.

Operação de motor servo

Servos são motores DC com redutor acoplado para reduzir a velocidade de giro, e controlar eletronicamente sua posição. O controle de posição é realizado transmitindo um sinal de pulso modulado (PWM). Para entender melhor, você pode consultar o artigo na PWM.

Em suma, dependendo da largura de pulso positiva (duração) enviada ao servo, uma posição será determinada. Esta duração é proporcional ao ângulo de rotação do motor, sendo dependendo do modelo:

  • Um pulso entre 500-1000 dólares corresponde a 0o.
  • Um pulso de 1500 ms corresponde a 90o (ponto neutro).
  • Um pulso entre 2000-2500us corresponde a 180o.

Modelos populares de servo motor

SG90

Este é um servo padrão "micro" amplamente utilizado em todos os tipos de aplicações, pois é barato e leve, cujas engrenagens são de plástico.

As características do servo são:

  • Tensão de operação: 3.0-7.2V
  • Velocidade (4.8V sem carga): 0,12seg/60 graus
  • Força: 1,2kg / 42,3oz(4.8V);1.6 kg / 56.4oz (6.0V)
  • Temperatura de trabalho: -30 a +60 graus ouC
  • Comprimento do cabo: aproximadamente 23cm
  • Inclui acessórios de foto e parafusos
  • Dimensões: 22x11.5x27mm

Temos este servo de ambos os tipos:

Servomotor 9G SG90 Servo Spin 360 graus Rotação contínua

Servomotor 9g SG90 Servo Vire de 0 a 180ou

S3003

Este servo motor é comumente usado de tamanho "grande" e, como o anterior, também é amplamente utilizado em aplicações. Muitos componentes como braços robóticos ou hexápodes vêm preparados para a instalação deste servo. É perfeito para projetos de Arduinoe aeromodelismo.

As características do servo são:

  • Tensão de operação: 4,8 V a 6 V
  • Torque máximo: 4,1kg/cm (6V)
  • Velocidade de operação: 0,23seg/60grade (4.8V), 0,19seg/60grade(6V)
  • Raio máximo: 360o
  • Faixa de temperatura: -20 +60C graus
  • Peso: 38g
  • Comprimento do cabo: 26cm
  • Dimensões: 40,5 x39x 20 mm
  • Conector servo: JR
  • Fabricação chinesa

Temos este servo de três tipos:

Servomotor Tipo S3003 Servo Spin 360 Graus Rotação Contínua

Servomotor Tipo S3003 Servo Spin 180 Graus Amplitude Curva 180o

Servomotor Tipo S3003 Servo Spin 90 Graus Amplitude Curva 90o

Arduino

Como dissemos, esses componentes são muito úteis para muitas aplicações, por isso são amplamente utilizados em projetos com Arduino devido à sua facilidade. Arduino vem com uma biblioteca para uso chamada "servo.h", com a qual você pode controlar até 12 servos usando Arduino UNO/Nano ou até 24 usando Arduino MEGA. Os servos são alimentados pelos pinos 5V da própria placa, e sem carga eles podem executar alguns motores. Recomendamos ligar a placa externamente, pois pela USB ela pode ter mais falhas ou, alimentar os servos com uma fonte externa que lhes forneça corrente suficiente para executar várias com carregamento. Deve-se lembrar que, se a alimentação externa for utilizada, as massas (GNDs) devem ser unidas.

Exemplos de código

Dois exemplos, Knob Arduino Sweep, vêm do padrão, mas primeiro vamos dar um exemplo mais simples e visual para entender como ele funciona. Abra um esboço vazio e copie o seguinte código:

Nós incluímos a biblioteca para ser capaz de controlar o servo

#include

Declaramos a variável para controlar o servo

Servo myservo;

configuração do vazio()

// Iniciamos o servo para que seu controle seja atribuído com o pino 9

myservo.attach(9);

}

loop vazio()

// Mova-se para a posição 0o

myservo.write(0);

// Esperamos 1 segundo

atraso (1000);

// Mova-se para a posição 90o

myservo.write(90);

//Esperamos 1 segundo

atraso (1000);

// Mova-se para a posição 180o

myservo.write(180);

// Esperamos 1 segundo

atraso (1000);

}

Com este código notamos que primeiro o servo gira as lâminas no sentido anti-horário (CCW, para 0o), depois passa para 90o e finalmente gira no sentido horário para 180o.

Varredura

Agora vamos olhar para o esboço "Sweep", cuja tradução é varrida, então como o nome sugere, as lâminas de servo estarão varrendo cada ângulo até que ele atinja o indicado.

Conectamos um servo de giro contínuo (360o) à placa Arduino MEGA.

Para isso, carregamos o esboço de amostra (File>Examples>Servo>Sweep) e conectamos os componentes da seguinte forma:

O código de esboço é o seguinte:

Podemos ver como o ângulo de rotação aumenta a cada 15ms um grau de cada vez. Isso pode ser visto nos loops "for", onde o primeiro vai de 0 a 180o, e o segundo de 180 a 0o.

Agora tente aumentar o tempo, mudando os 15 para 150, por exemplo. Desta forma, você verá mais claramente como os servos funcionam, onde sua rotação começa lentamente até que ele pega velocidade e, em seguida, é reduzido até atingir a posição desejada.

Botão

Para o uso do esboço do Botão,você precisará de um potencialiômetro com o qual regulamentaremos a posição do servo.

Para isso, abrimos o esboço correspondente (File>Examples>Servo>Knob) e conectamos os componentes da seguinte forma:


O código de esboço é o seguinte:

O engraçado deste esboço é que, se usarmos um servo de giro contínuo, podemos mudar a direção da rotação dependendo da direção do potencialiômetro. Na verdade, podemos ajustar a direção da rotação para combinar, pois simplesmente trocando a polarização do pino positivo e negativo do potencialiômetro nós o modificamos. Além disso, em um ponto específico do potencialiômetro podemos parar o servo.

Por outro lado, se usarmos um servo de 180o, o potencialiômetro serve para orientar o movimento das lâminas enquanto o gira.

Related posts

Share this content