Se você quiser usar um servo motor, ou servo, com Arduino, neste artigo você aprenderá o que é necessário para começar. Já vimos em outros artigos o que é necessário usar motores elétricos, motores de passo, e também outros conceitos necessários para entender o funcionamento desse tipo de dispositivo, como o artigo sobre PWM.
Agora, você pode adicionar outro novo componente eletrônico ao a lista de dispositivos analisado e que você pode ir integrando seus projetos DIY para adicionar novas funcionalidades.
O que é um servo?
Un servo motor, ou simplesmente servo, é um motor eletrônico com semelhanças com os motores DC convencionais, mas com alguns elementos que os tornam especiais. Nesse caso, ele tem a capacidade de manter uma posição indicada, algo que os motores elétricos não permitem.
Por outro lado, o servo também pode controlar precisamente a velocidade de rotação, graças a uma série de engrenagens internas e a um sistema que permite um controle muito melhor do que poderia ser feito em outros tipos de motores.
Esses recursos o tornam especialmente interessante para aplicações robótica ou para outros dispositivos onde o movimento e a posição precisam ser controlados, como uma impressora ou um carro com controle remoto. Neste tipo de carro controlado por rádio existe um motor convencional para acioná-lo e um servo para a direção, com o qual controla a curva com precisão.
Diferença entre motor de passo e servo motor
Se você quer saber a diferença entre um servo motor e um motor de passo, a verdade é que podem ser confundidos, já que no motor de passo, ou passo a passo, a rotação também pode ser controlada com bastante precisão, e as aplicações são muito semelhantes às do servo. Em vez disso, existem algumas diferenças.
E é que os servomotores costumam usar ímãs de terras raras, enquanto os motores de passo usam ímãs mais baratos e convencionais. Portanto, um servo pode atingir um maior desenvolvimento de torque, apesar de permanecer compacto. Portanto, a força de rotação será muito alta.
Características tecnicas
Sempre que você comprar um servo, você deve consultar sua ficha técnica ou ficha técnica. Dessa forma, você garantirá o características tecnicas tem, mas também os limites aos quais você pode sujeitá-lo, como tensão, intensidade, carga máxima, torque, etc. Lembre-se de que cada modelo pode ser bem diferente.
Por exemplo, se você olhar para um dos mais populares, o Micro Servo 9G SG90 da a conhecida empresa Tower Pro, então você terá algumas características bem peculiares, embora a programação e conexão dos modelos sejam mais ou menos as mesmas e tudo o que for dito aqui seja útil para qualquer pessoa.
No caso deste modelo, é um motor de alta qualidade, com um ângulo de giro que permite um varredura entre -90 e 90º, ou seja, uma volta total de 180º. A resolução que você pode alcançar é muito alta, então você poderá avançar muito aos poucos. Por exemplo, com as limitações de sinal PWM de Arduino UNO, você pode até conseguir um avanço de série para série.
Da mesma forma, o sinal PWM também imporá outro limite, e é o número de vezes que cada posição pode mudar por unidade de tempo. Por exemplo, uma vez que os pulsos funcionam entre 1 e 2 ms e com Períodos de 20 ms (50 Hz), então o servo pode se mover uma vez a cada 20 ms.
Além disso, terá peso de 9 gramas e, apesar desse peso e tamanho compacto, poderá desenvolver um torque ou torque de 1.8 kg / cm com 4.8v. Isso graças ao seu conjunto de engrenagens POM.
Por fim, você já sabe que, dependendo do que se deseja alcançar, deve-se escolher um ou outro modelo, para que tenha o recursos necessários para o seu projeto. Ou seja, não é a mesma coisa que você quer um motor para movimentar uma carga X, que um para XX ...
Onde comprar um servo
Se você quiser começar a usar este tipo de servomotor, pode encontrá-lo barato em muitas lojas especializadas e também pode obtê-lo online na Amazon. Por exemplo, aqui estão alguns exemplos de produtos recomendados que pode interessar a você:
-
AZDelivery Servo MG90S Micro: suporta até 13.4 kg.
- Innovateking-UE: com até 25 kg / cm.
- Innovateking-UE: outro modelo impermeável, e com até 35kg / cm.
Todos eles têm um ângulo de viragem muito bom, mas basicamente difere no torque que cada um pode tolerar. Eu incluí três modelos diferentes. O primeiro, e mais barato, pode ser suficiente para a maioria das aplicações. Mas se precisar de um com maior resistência para outras aplicações, você tem o 25 e o 35, que já são notáveis ...
Integração com Arduino
Como você pode ver na imagem acima, o servo se conecta muito facilmente para o Arduino. Ele tem apenas três cabos, que você pode conectar desta forma:
- Vermelho com 5V
- Preto com GND
- Amarelo com um pino PWM Arduino, neste caso com -9.
Para programar um esboço para começar a usar esses tipos de motores, você tem várias opções. Mas, antes de tudo, para começar, você tem que adicionar biblioteca Arduino IDE para acionar este tipo de servo motores:
- Abra o IDE do Arduino.
- Vá para o programa.
- Em seguida, inclua a biblioteca.
- Servo
Quanto a código de esboçoPode ser assim tão simples em que o servo passará por suas posições, parando em 0º, 90º e 180º:
//Incluir la biblioteca del servo #include <Servo.h> //Declarar la variable para el servo Servo servoMotor; void setup() { // Iniciar el monitor serie Serial.begin(9600); // Iniciar el servo para que use el pin 9 al que conectamos servoMotor.attach(9); } void loop() { // Desplazar a la posición 0º servoMotor.write(0); // Esperar 1 segundo delay(1000); // Desplazar a la posición 90º servoMotor.write(90); // Esperar 1 segundo delay(1000); // Desplazamos a la posición 180º servoMotor.write(180); // Esperar 1 segundo delay(1000); }
Agora se você quiser mova-o de grau em grau, então seria assim:
// Incluir la biblioteca servo #include <Servo.h> // Declarar la variable para el servo Servo servoMotor; void setup() { // Iniciar la velocidad de serie Serial.begin(9600); // Poner el servo en el pin 9 servoMotor.attach(9); // Iniciar el servo en 0º servoMotor.write(0); } void loop() { // Los bucles serán positivos o negativos, en función el sentido del giro // Positivo for (int i = 0; i <= 180; i++) { // Desplazar ángulo correspondiente servoMotor.write(i); // Pausa de 25 ms delay(25); } // Negativo for (int i = 179; i > 0; i--) { // Desplazar el ángulo correspondiente servoMotor.write(i); // Pausa e 25 ms delay(25); } }