Como controlar um micro servo motor com um Raspberry Pi: um guia completo_Custom Drive_Industry Insights_Kpower
Lar > Informações do setor >Unidade personalizada
SUPORTE TÉCNICO

Suporte ao produto

Como controlar um micro servo motor com um Raspberry Pi: um guia completo

Publicado 2026-04-20

Este guia fornece instruções passo a passo para conectar e controlar um microservomotor usando um Raspberry Pi. Você aprenderá a fiação correta, exemplos de código Python e soluções práticas para problemas comuns. Todas as informações são baseadas em práticas eletrônicas padrão e verificadas com testes reais.

01O que você precisa antes de começar

Um Raspberry Pi (qualquer modelo com pinos GPIO, como 3B+, 4 ou 5)

Um microservomotor (tipo comum: 9gservo, 3 fios)

Fios jumper (fêmea para fêmea)

Fonte de alimentação externa de 5 V (opcional, mas recomendada para operação estável)

Um pequeno potenciômetro (opcional, por exemplo de controle manual)

Nota importante de segurança:Não ligue oMicro Servodiretamente do pino 5V do Raspberry Pi se você estiver executando o servo sob carga ou por longos períodos. A saída de 5V do Pi pode fornecer apenas cerca de 500mA, e umMicro Servopode consumir 200-400mA durante o movimento. Use uma fonte de alimentação de 5 V separada (por exemplo, 4 baterias AA ou um banco de energia USB de 5 V) e conecte o aterramento dessa fonte ao aterramento do Pi.

02Diagrama de fiação (passo a passo)

Siga exatamente essas três conexões. OMicro Servotem três fios:

Marrom ou Preto→ Terra (GND)

Vermelho→ Alimentação de 5V (fonte externa ou pino de 5V do Pi apenas para teste)

Laranja ou Amarelo→ Pino GPIO (por exemplo, GPIO18)

Fio Servo Conecte-se a
Marrom/Preto Raspberry Pi GND (pino 6) E fonte de alimentação externa GND
Vermelho 5V externo positivo (ou Pi pino 2 para teste de luz)
Laranja/Amarelo GPIO18 (pino 12)

Exemplo de caso comum:Um hobbyista tentou alimentar dois micro servos diretamente do pino de 5V do Pi. Os servos se contraíram de forma irregular e o Pi foi reiniciado. Depois de adicionar uma bateria separada de 5 V (4xAA) e conectar todos os aterramentos, ambos os servos funcionaram perfeitamente por horas.

03Como funciona um micro servo

Um micro servo motor contém um motor DC, um potenciômetro (sensor de posição) e um circuito de controle. Ele usaModulação por largura de pulso (PWM)para definir o ângulo do eixo. O servo espera um sinal de 50 Hz (período de 20 ms). O comprimento do pulso determina o ângulo:

Pulso de 0,5 ms → 0 graus

Pulso de 1,5 ms → 90 graus (centro)

Pulso de 2,5 ms → 180 graus

A maioria dos micro servos tem um alcance físico de cerca de 180 graus, mas alguns são de 90 ou 270 graus. Sempre teste primeiro os limites sem carga.

04Configuração de software (sistema operacional Raspberry Pi)

1. Habilite o hardware PWM no Raspberry Pi. Abra um terminal e execute:

sudo raspi-config

Navegue para: Opções de interface → GPIO remoto → Sim → Concluir.

2. Instale a biblioteca RPi.GPIO (pré-instalada na maioria das versões do Raspberry Pi OS). Para controle PWM total, instale o pigpio:

sudo apt atualizar sudo apt instalar pigpio python3-pigpio sudo systemctl ativar pigpiod sudo systemctl iniciar pigpiod

05Código Python básico para varrer o servo

Crie um arquivo chamadoservo_sweep.py:

import pigpio import time # Conecte-se ao daemon pigpio pi = pigpio.pi() se não pi.connected: print("Pigpio daemon não está em execução. Comece com: sudo pigpiod") exit() # Defina o pino GPIO (usando GPIO18) SERVO_PIN = 18 # Defina a largura do pulso em microssegundos (500 = 0,5ms, 2500 = 2,5ms) def set_angle(angle): # Converta ângulo (0-180) para largura de pulso (500-2500) pulso = 500 + (ângulo / 180,0)2000 pi.set_servo_pulsewidth(SERVO_PIN, pulse) try: while True: para ângulo no intervalo(0, 181, 10): set_angle(ângulo) time.sleep(0.1) para ângulo no intervalo(180, -1,-10): set_angle(ângulo) time.sleep(0.1) exceto KeyboardInterrupt: print("Parando...") pi.set_servo_pulsewidth(SERVO_PIN, 0) # Para o sinal PWM pi.stop()

Execute o código:

sudo pigpiod # se ainda não estiver executando python3 servo_sweep.py

Resultado esperado:O braço servo fará uma varredura de 0 a 180 graus e vice-versa, parando 0,1 segundo a cada passo de 10 graus.

06Controlando o servo com um potenciômetro (controle manual em tempo real)

Este exemplo permite girar um potenciômetro para posicionar o servo. Conecte um potenciômetro de 10kΩ: pino esquerdo em 3,3V, pino direito em GND, pino do meio em GPIO17 (entrada ADC). O Raspberry Pi não possui entradas analógicas, então usamos um chip ADC MCP3008 ou um método de temporização RC simples. Abaixo está o método de temporização RC (sem necessidade de chip extra).

Conecte um capacitor de 1μF entre GPIO23 e GND e um resistor de 10kΩ do GPIO23 ao limpador do potenciômetro. Isso é avançado. Para simplificar, use um MCP3008 com SPI. Porém, um caso comum: muitos iniciantes falham porque tentam ler o analógico diretamente.Recomendação:Use um ADC barato como o MCP3008 ou compre uma placa de servo driver.

Aqui está um código confiável usando um MCP3008:

importar pigpio importar tempo importar spidev spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 1350000 def read_adc(canal): se canal 7: return -1 adc = spi.xfer2([1, (8+canal) 2000 pi.set_servo_pulsewidth(SERVO_PIN, pulso) try: while Verdadeiro: valor = read_adc(0) # potenciômetro no canal 0 ângulo = (valor / 1023,0) * 180 set_angle(ângulo) time.sleep(0,02) exceto KeyboardInterrupt: pi.set_servo_pulsewidth(SERVO_PIN, 0) pi.stop() spi.close()

07Problemas e soluções comuns

Problema Causa mais provável Solução
Servo se contrai ou não se move Potência insuficiente Use alimentação externa de 5V (2A máx. para múltiplos servos). Conecte os aterramentos.
Servo se move apenas para uma extremidade Faixa de pulso errada Alguns servos precisam de 600-2400μs. Teste no código: altere 500 para 600 e 2500 para 2400.
Tremendo em repouso Frequência PWM ou jitter de temporização Use pigpio (PWM cronometrado por hardware) em vez do PWM de software do RPi.GPIO.
Servo fica quente Corrente de bloqueio ou sinal errado Desconecte a carga. Verifique se os pulsos param após o movimento (definido como 0).
Erro Python “nenhum módulo chamado pigpio” Biblioteca ausente Correr:sudo pip3 instalar pigpioentãosudo apto instalar pigpio

08Otimizando para Vários Micro Servos

Para controlar até 16 micro servos, use uma placa de driver PWM dedicada (sem nomear marcas, procure por "servo driver PWM de 16 canais I2C"). Conecte-o via I2C. O driver requer apenas dois pinos GPIO (SDA/SCL) e uma fonte externa de 5V. Cada servo recebe seu próprio pino de sinal. Isso elimina o jitter e a carga da CPU.

09Recomendações acionáveis

1. Sempre comece com um servo e uma fonte de alimentação externa de 5V.Teste o código de varredura antes de adicionar sua própria lógica.

2. Use pigpio para todos os projetos de servo.Ele fornece PWM cronometrado por hardware com precisão de microssegundos, essencial para movimentos suaves.

3. Defina o pulso do servo para 0 (desligado) quando não estiver em movimento.Isso reduz o consumo de energia e evita o superaquecimento.

4. Adicione um capacitor de 1000μF nos terminais da fonte de alimentação(positivo e terra) perto do servo para suavizar picos de tensão.

5. Para projetos alimentados por bateria, use 4 baterias AA recarregáveis ​​NiMH(4,8 V) ou um UBEC regulado de 5 V. Não use 6V a menos que o servo esteja classificado para isso (a maioria dos micro servos aceita 4,8-6,0V).

10Conclusão

Controlar um micro servo motor com um Raspberry Pi requer fiação correta, uma fonte de alimentação externa para operação confiável e a biblioteca pigpio para sinais PWM precisos. As etapas principais são: conectar o aterramento e a alimentação corretamente, usar GPIO18 para PWM, escrever código Python que mapeie ângulos para larguras de pulso entre 500 e 2.500 microssegundos e sempre testar primeiro sem carga.

Etapas finais da ação:

Monte o circuito com uma bateria separada de 5V.

Instale o pigpio e execute o código de varredura.

Modifique o código para integrar o controle do servo em seu próprio projeto (braço robótico, panorâmica e inclinação da câmera ou alimentador automático).

Se você sentir instabilidade, mude de RPi.GPIO para pigpio.

Para vários servos, adicione uma placa de driver PWM.

Seguindo este guia, você obterá controle estável e preciso de qualquer micro servo motor padrão usando seu Raspberry Pi.

Hora de atualização: 20/04/2026

Impulsionando o Futuro

Entre em contato com o especialista de produtos da Kpower para recomendar um motor ou caixa de engrenagens adequado para o seu produto.

Correio para Kpower
Enviar consulta
Mensagem do WhatsApp
+86 0769 8399 3238
 
kpowerMap