Como Controlar um Motor de Passo com um Raspberry Pi

D

Daniel Zhang

Última atualização em Aug 17, 2026

  1. Introdução

O Raspberry Pi é um computador de placa única popular, amplamente utilizado em projetos de hobby e industriais. Trata-se essencialmente de um pequeno computador do tamanho de um cartão de crédito. É amplamente utilizado em diversos projetos, incluindo o controle de motores de passo — uma tarefa comum em aplicações de controle de movimento. Neste artigo, você aprenderá como usar a linguagem de programação Python e a biblioteca RPi.GPIO para controlar um motor de passo, juntamente com as instruções de fiação correspondentes.

  1. Materiais Necessários
  1. Raspberry Pi (Raspberry Pi 3B+ ou superior recomendado)
  2. Motor de passo (ex.: NEMA 17)
  3. Módulo driver de motor de passo (ex.: DRV8825 ou A4988)
  4. Fios jumper (conectores DuPont)
  5. Adaptador de alimentação DC 12V
  6. Protoboard (opcional)
  7. Capacitor de desacoplamento (ex.: eletrolítico de 100 µF)
  1. Instruções de Fiação

Nota de Segurança: Sempre conecte a fiação do motor e do driver antes de aplicar a alimentação. Verifique todas as conexões para evitar danos ao Raspberry Pi ou ao módulo driver.

  1. Conecte os quatro fios do motor de passo aos pinos A1, A2, B1 e B2 do módulo driver.
  2. Conecte o terminal positivo da fonte de alimentação de 12V ao pino VMOT do módulo driver e o terminal negativo ao pino GND. Coloque um capacitor de desacoplamento (ex.: eletrolítico de 100 µF) entre VMOT e GND, o mais próximo possível do módulo driver, para suprimir picos de tensão.
  3. Conecte o pino de alimentação de 5V (pino físico 2 ou pino 4) do Raspberry Pi ao pino VCC do módulo driver e conecte um pino GND (ex.: pino físico 6) ao pino GND do módulo driver.
  4. Conecte os seguintes pinos GPIO BCM do Raspberry Pi aos pinos correspondentes do módulo driver:
GPIO do Raspberry Pi (BCM) Pino Físico Pino do Módulo Driver
GPIO 17 Pino 11 DIR
GPIO 18 Pino 12 STEP
GPIO 27 Pino 13 MS1
GPIO 22 Pino 15 MS2
GPIO 23 Pino 16 ENABLE

Dica: O pino ENABLE na maioria dos módulos A4988/DRV8825 é ativo em nível baixo. Colocá-lo em LOW habilita a saída do driver.

  1. Implementação do Código Python

Primeiro, instale a biblioteca RPi.GPIO. Digite os seguintes comandos no terminal:

sudo apt-get update
sudo apt-get install python3-rpi.gpio

Em seguida, crie um arquivo Python chamado stepper_motor.py e insira o seguinte código:

import time
import RPi.GPIO as GPIO

# Definir pinos (numeração BCM)
DIR = 17
STEP = 18
MS1 = 27
MS2 = 22
ENABLE = 23

# Configurar modo GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
GPIO.setup(MS1, GPIO.OUT)
GPIO.setup(MS2, GPIO.OUT)
GPIO.setup(ENABLE, GPIO.OUT)

# Habilitar driver e definir direção
GPIO.output(ENABLE, GPIO.LOW)   # Habilitar driver (ativo em nível baixo)
GPIO.output(DIR, GPIO.HIGH)     # Sentido horário

# Configurar modo de passo com base no modelo do driver (ex.: A4988)
GPIO.output(MS1, GPIO.HIGH)     # 1/4 de passo
GPIO.output(MS2, GPIO.LOW)

# Controlar rotação do motor
steps = 200
delay = 0.001  # Delay menor para velocidade maior

for _ in range(steps):
    GPIO.output(STEP, GPIO.HIGH)
    time.sleep(delay)
    GPIO.output(STEP, GPIO.LOW)
    time.sleep(delay)

# Limpar GPIO
GPIO.cleanup()

Por fim, salve o arquivo e execute-o no terminal:

python3 stepper_motor.py
  1. Resumo

Este artigo apresentou como usar um Raspberry Pi para controlar um motor de passo, incluindo instruções de fiação e código Python usando a biblioteca RPi.GPIO. Você pode facilmente obter o controle do motor seguindo estas etapas. Ajuste os parâmetros no código (como número de passos, delay e configurações de micropasso) de acordo com os requisitos do seu projeto.