Publicado 2026-03-25
Você já se deparou com esta situação: você comprou umservoe queria usá-lo em sua pequena invenção, mas quando você o conecta, ele não se move ou vibra loucamente? Não se preocupe, não é queservoestá quebrado, é mais provável que você não tenha encontrado a maneira correta de "se comunicar" com ele. Hoje falaremos sobre como escrever um programa para oservopara que possa obedecer às suas instruções e girá-lo o quanto quiser.
Muitos amigos apenas conectaram casualmente os três fios do servo (energia, terra e sinal) à placa de desenvolvimento assim que começaram, e então começaram a duvidar de suas vidas quando viram o servo “se contorcendo”. Na verdade, a causa raiz da vibração do servo é, na maioria das vezes, fonte de alimentação insuficiente. Há um pequeno motor dentro do servo e a corrente instantânea na partida é muito grande. Se a sua fonte de alimentação (como o pino de 5 V na placa) não puder fornecer essa corrente instantânea, a tensão será reduzida, fazendo com que a lógica do chip dentro do servo fique confusa.
Outro motivo comum é que o cabo de sinal não está conectado corretamente ou a frequência do sinal PWM enviada pelo programa está incorreta. O servo controla o ângulo enviando uma largura de pulso específica de 50 vezes por segundo (ou seja, 50 Hz) na linha de sinal. Se você definir outras frequências no programa, o servo não entenderá o que você está dizendo e naturalmente começará a se mover aleatoriamente. Verifique seu código para ver se a frequência PWM não está definida para 50Hz.
Este problema está diretamente relacionado ao fato de o mecanismo de direção poder funcionar normalmente. Se você usar apenas um servo, e for um servo pequeno como 9g, você mal poderá usar o pino de 5V da placa de desenvolvimento para fornecer energia diretamente, mas na verdade é apenas "mal". Para estabilidade do sistema, é altamente recomendável fornecer uma fonte de alimentação separada para o servo. Você precisa de uma fonte de alimentação de 5 V que possa fornecer pelo menos 1 A de corrente, como três baterias secas em série ou um banco de energia para celular mais um módulo de reforço.
Nunca conecte o cabo de alimentação do servo e o cabo de alimentação da placa de desenvolvimento ao contrário, caso contrário, as coisas queimarão. O método de conexão correto é: o fio vermelho (VCC) do servo é conectado ao pólo positivo da sua fonte de alimentação independente, e o fio preto (GND) é conectado ao pólo negativo da fonte de alimentação. Este fio preto deve ser conectado ao GND da placa de desenvolvimento. Isso é chamado de “terreno comum” e é a chave para sinalizar a estabilidade. Muitos novatos irão ignorar esta etapa, fazendo com que a linha de sinal “flutue” e o servo seja desobediente.
Se você quiser brincar com o servo, você precisa dessas coisas em mãos. Em termos de hardware: um servo (o mais comum é o SG90 ou algo assim), uma placa de desenvolvimento de microcontrolador (Uno é o mais fácil de usar), alguns fios DuPont e uma caixa de bateria ou módulo de energia que pode alimentar o servo. Se for a primeira vez que você joga, Uno é o mais fácil de usar porque sua biblioteca de programação integrada suporta muito bem servos.
Em termos de software, você precisa baixar um IDE, que é gratuito. Após a instalação, selecione o modelo da placa de desenvolvimento e o número da porta serial no menu “Ferramentas”. Aqui está um pequeno truque. Existe um exemplo "Servo" no programa de exemplo do IDE. Abra-o diretamente e você verá o código de controle de servo mais simples. Você só precisa alterar o número do pino da linha de sinal do servo e carregá-lo na placa. O servo deve começar a balançar para frente e para trás. Este é o seu primeiro passo na programação.
Vamos nos aprofundar um pouco mais e falar sobre o sinal PWM principal. O nome completo do PWM é modulação por largura de pulso. Para ser franco, há um pulso de alto nível na linha de sinal a cada 20 milissegundos (porque a frequência é de 50 Hz). A duração desse pulso determina o ângulo para o qual o servo girará.
Normalmente, quando a largura do pulso é de 0,5 milissegundos, o servo gira para 0 graus; quando 1,5 milissegundos, ele gira 90 graus; quando são 2,5 milissegundos, ele gira 180 graus. Quando você usa o.write(ângulo)função, ele converterá automaticamente o ângulo na largura de pulso correspondente para você, e você não precisa se preocupar com os detalhes subjacentes. Se você estiver usando outro microcontrolador, como o STM32, pode ser necessário usar um temporizador para gerar você mesmo essa forma de onda PWM precisa. É um pouco mais complicado, mas o princípio é exatamente o mesmo.
Vamos, vamos escrever um programa que possa fazer o servo girar para frente e para trás. O primeiro passo é abrir o IDE e criar um novo projeto. Na segunda etapa, use# no início do código para apresentar a biblioteca servo. O terceiro passo é criar um objeto servo, comoServo;Etapa 4: emconfigurar()função, uso.(9);para declarar que a linha de sinal do servo está conectada ao pino 9.
O quinto passo, que também é a parte central, é escrever sua lógica de controle emlaço()função. Por exemplo, se você quiser que o servo gire primeiro para 0 graus, espere 1 segundo, depois gire para 180 graus, espere 1 segundo. Então o código é:.escrever(0); atraso(1000); .escrever(180); atraso(1000);. É tão simples. Depois de enviar o código, você verá o servo balançar para frente e para trás entre os dois ângulos definidos. No momento em que você conseguiu, você sentiu uma sensação especial de realização?
Com base na minha própria experiência, existem vários erros que são uma “obstáculo” para iniciantes. A primeira é esquecer os “terrenos comuns”. O GND da placa de desenvolvimento e o GND da fonte de alimentação do servo devem ser conectados com fios, caso contrário o sinal de controle será como dados sem sistema de referência e não será totalmente confiável. A segunda é conectar a linha de sinal a um pino que não seja suportado pelo PWM. Apenas os pinos 3, 5, 6, 9, 10 e 11 no Uno suportam saída PWM. Se você conectar ao pino 2 ou 4, o programa será compilado e aprovado, mas o servo não se moverá.
O terceiro erro é pensar que o ângulo do servo deve ser continuamente ajustável. Na verdade, o limite físico de muitos servos é de 0 a 180 graus. Se você escreverescreva(200)no programa, os servos ficarão presos em 180 graus ou farão um som de “clique” e tentarão ultrapassar o limite. Com o tempo, eles queimarão facilmente. Além disso, quando a energia da bateria que alimenta o servo é insuficiente, ele pode ficar fraco, tremer ou parar no meio do caminho. Portanto, quando você encontrar um problema, verifique primeiro a fiação, depois a fonte de alimentação e, por fim, desconfie do código. Essa sequência pode economizar muito tempo.
Você já encontrou algum "evento sobrenatural" ao depurar o servo? Por exemplo, de repente ele começa a desenhar círculos sozinho ou é particularmente sensível à temperatura? Bem-vindo a compartilhar sua experiência na área de comentários e vamos discutir isso juntos. Se desejar obter uma seleção de servos e exemplos de código mais detalhados, você pode pesquisar no site oficial da "Toshiba Semiconductor". Há um grande número de notas de aplicação e designs de referência, que certamente serão um bom auxiliar em sua jornada de desenvolvimento.
Hora de atualização: 25/03/2026
Entre em contato com o especialista de produtos da Kpower para recomendar um motor ou caixa de engrenagens adequado para o seu produto.