Controlador Inteligente Velocidade Motor Passo Nema SMC01: Manual Técnico Completo

Introdução
Neste manual, será apresentado como instalar, configurar e utilizar o Controlador Inteligente de Velocidade para Motor de Passo NEMA SMC01. Se desejar adquirir este produto, clique aqui.
O módulo SMC01 (frequentemente catalogado sob a designação ZK-SMC01) é uma unidade autônoma de geração de pulsos e perfilamento de movimento monoaxial desenvolvida para comandar drivers externos de potência (como TB6600, DM542, DM860 e TMC2209). O equipamento integra interface homem-máquina (IHM) completa com display LCD retroiluminado, encoder incremental rotativo com botão de pressão, entradas para sensores de fim de curso e barramento serial TTL sob protocolo industrial Modbus RTU. Este guia destina-se a engenheiros de automação, integradores de sistemas mecânicos CNC, técnicos de bancada e projetistas de bancadas de ensaio que demandam posicionamento angular preciso e controle dinâmico de velocidade sem a necessidade obrigatória de um CLP (Controlador Lógico Programável) ou microcontrolador dedicado para tarefas rotineiras.
Especificações técnicas
Principais especificações
As propriedades físicas, construtivas e de interface mecânica do controlador SMC01 estão consolidadas na tabela abaixo:
| Parâmetro | Especificação | Unidade / Condição |
|---|---|---|
| Modelo Comercial | SMC01 (ZK-SMC01) | — |
| Arquitetura de Controle | Gerador digital de pulsos monoaxial programável | Eixo único |
| Interface Visual | Display LCD com caracteres alfanuméricos e iluminação azul | Matriz com ícones de status |
| Interface Manual | Encoder rotativo com chave táctil central e 3 botões frontais | CW, CCW, RUN/STOP |
| Formato Físico | Gabinete plástico para embutir em painel com travas laterais | ABS anti-chama preto |
| Dimensões Externas | ||
| Rasgo para Painel (Cutout) | ||
| Faixa de Velocidade Configurável | a | |
| Contagem de Pulsos por Ciclo | a | Pulsos |
| Resolução de Temporização (Delays) | a | |
| Número de Ciclos Programáveis | a (ou para loop infinito contínuo) | Ciclos |
| Massa Líquida |
Características elétricas e operacionais
Os parâmetros elétricos nominais, limites térmicos e interfaces de sinal suportados pelo equipamento estão descritos a seguir:
| Parâmetro Elétrico | Mínimo | Típico | Máximo | Unidade | Observação |
|---|---|---|---|---|---|
| Tensão de Alimentação () | Proteção contra polaridade reversa integrada | ||||
| Consumo de Corrente em Repouso | Display ativo sem acionamento externo | ||||
| Tensão do Barramento COM (+5V) | Ânodo comum para optoacopladores do driver | ||||
| Capacidade de Corrente das Saídas (PUL/DIR/EN) | — | Saídas digitais em coletor aberto | |||
| Frequência Máxima de Saída de Pulsos | — | — | Onda quadrada simétrica | ||
| Nível Lógico das Entradas Digitais (LIM/CW/CCW/STOP) | (GND) | — | Acionamento por contato seco para GND | ||
| Interface Serial de Comunicação | — | UART TTL | — | Nível 3,3V/5V | Padrão 9600 bps, 8-N-1, Modbus RTU |
| Temperatura de Operação | Ambiente sem condensação | ||||
| Compatibilidade com Motores | NEMA 14, NEMA 17, NEMA 23, NEMA 34 | — | — | — | Requer driver externo dimensionado à corrente |
Descrição do produto
O que é o Controlador SMC01?
O SMC01 é um controlador digital de movimento monoaxial projetado para gerar trens de pulso de alta estabilidade destinados à entrada de comando de drivers de motor de passo bipolares ou unipolares. Diferente de uma ponte H de potência, o SMC01 não comuta diretamente as fases do motor de passo; sua função é sintetizar com precisão o sinal de pulso de passo (PUL / STEP), o nível lógico de direção (DIR) e a habilitação de potência (ENA).
Equipado com firmware microcontrolado dedicado, o módulo reúne em um único encapsulamento industrial funções que demandariam uma combinação de microcontrolador, display, potenciômetro e chaves mecânicas externas. A conversão de frequência interna ajusta automaticamente a cadência de pulsos com base nas configurações de micropasso do driver e nas rotações por minuto () selecionadas pelo operador, eliminando a necessidade de cálculos de temporização em código de software.
Para que serve?
- Automação de eixos lineares e rotativos: Controle de mesas coordenadas, carros de avanço para serras ou fresas, alimentadores automáticos de fita e bobinadeiras industriais.
- Bancadas de ensaio e esteiras dosadoras: Ensaios de fadiga com inversão cíclica de rotação, bombeamento peristáltico com ajuste milimétrico de volume e rotação permanente com rampa suave.
- Substituição de CLPs em eixos simples: Operação de sistemas de posicionamento ponto a ponto sem complexidade de programação ladder ou cabeamento de placas de CLP.
Por que devo usar?
- Operação autônoma sem microcontrolador: Permite partida, parada, ajuste de velocidade, deslocamento angular fixo e reversão automática diretamente pelos botões e encoder do painel.
- Programação intuitiva em 9 modos operacionais: Possibilita definir ciclos completos de ida e volta com tempo de parada configurável em segundos e contagem de repetições.
- Barramento industrial Modbus RTU integrado: Permite a integração a computadores industriais, placas ESP32, Arduino ou IHMs remotas através de comandos seriais padronizados.
Quando devo usar?
O controlador SMC01 é a solução ideal quando o projeto exige movimentação precisa de um motor de passo com ajuste imediato de velocidade pelo operador e ciclos repetitivos de translação, dispensando a implementação de código complexo de temporização em microcontroladores.
Por outro lado, o SMC01 não deve ser utilizado quando houver necessidade de sincronização multiaxial simultânea (como interpolação linear ou circular em máquinas CNC de 3 ou mais eixos), controle em malha fechada via encoder óptico de quadratura (closed-loop servo tracking direto no controlador) ou acionamento direto dos enrolamentos do motor sem um driver de corrente intermediário. Nestes casos, recomenda-se placas controladoras CNC multiaxiais dedicadas (como GRBL, LinuxCNC ou placas SmoothStepper).
Pinout e diagrama de entradas/saídas
O SMC01 possui réguas de bornes de parafuso em sua face traseira, divididas entre o barramento de alimentação/saída para o driver e o barramento de entradas lógicas de controle:
| Borne / Conector | Identificação | Sentido | Função Técnica |
|---|---|---|---|
| V+ | Tensão Positiva | Entrada | Entrada de alimentação contínua de a . |
| V- | Referência (GND) | Entrada | Terminal negativo de alimentação (). |
| COM | Ânodo Comum (+5V) | Saída | Barramento positivo interno de para optoacopladores do driver externo. |
| EN- | Enable Negativo | Saída | Sinal de habilitação em nível lógico baixo (conecta ao borne do driver). |
| DIR- | Direction Negativo | Saída | Sinal de sentido de rotação (conecta ao borne do driver). |
| PUL- | Pulse Negativo | Saída | Sinal de pulsos de passo (conecta ao borne do driver). |
| CW | Avanço Manual | Entrada | Botão externo de comando no sentido horário (ligar contra GND). |
| CCW | Retorno Manual | Entrada | Botão externo de comando no sentido anti-horário (ligar contra GND). |
| RUN/STOP | Partida / Parada | Entrada | Chave externa de início ou interrupção do ciclo (ligar contra GND). |
| LIM1 | Fim de Curso 1 | Entrada | Sensor limitador de curso para o sentido de avanço CW (ligar contra GND). |
| LIM2 | Fim de Curso 2 | Entrada | Sensor limitador de curso para o sentido de retorno CCW (ligar contra GND). |
| TXD | Transmissão UART | Saída | Linha de envio de dados seriais em nível TTL (). |
| RXD | Recepção UART | Entrada | Linha de recebimento de dados seriais em nível TTL (). |
| GND | Terra Lógico | Referência | Referência comum para sensores, botões e comunicação serial. |
⚠️ Atenção: Os bornes de entrada digital (, , , e ) operam por chaveamento para a referência (). Nunca injete tensões positivas de ou diretamente nestes terminais, sob risco de queima irreversível do microcontrolador interno.
Como fazer a ligação
Requisitos de instalação e alimentação
Para assegurar estabilidade operacional e evitar ressonâncias ou perda de sincronismo no motor:
- Fonte de alimentação: Utilize uma fonte chaveada industrial com tensão dimensionada entre e e capacidade de corrente que atenda com folga à corrente de fase do driver e motor (recomenda-se no mínimo a para motores NEMA 17 e NEMA 23).
- Topologia Ânodo Comum (Common Anode): O borne do SMC01 fornece regulados para alimentar os lados anódicos dos isoladores ópticos de entrada do driver. Os sinais de comando atuam chaveando as linhas , e para a referência interna quando ativos.
- Sensores de fim de curso: Devem ser utilizados microswitches mecânicos ou sensores ópticos/indutivos com saída NPN coletor aberto (ativo em nível baixo, fechando para ).
Diagrama de ligação elétrica
O infográfico esquemático abaixo detalha a distribuição das conexões entre o módulo controlador SMC01, a fonte chaveada, o driver de passo externo TB6600, o motor NEMA e os periféricos de acionamento:

Tabela de conexões dos terminais
| Origem (Dispositivo) | Terminal de Origem | Destino (Dispositivo) | Terminal de Destino | Cor Indicativa | Função e Observações |
|---|---|---|---|---|---|
| Fonte 24V DC | Saída () | SMC01 | Borne V+ | Vermelho | Alimentação principal do controlador ( a ). |
| Fonte 24V DC | Saída / () | SMC01 | Borne V- | Preto | Linha de referência e retorno de corrente. |
| Fonte 24V DC | Saída () | Driver TB6600 | Borne VCC | Vermelho | Alimentação de potência dos enrolamentos do motor. |
| Fonte 24V DC | Saída / () | Driver TB6600 | Borne GND | Preto | Referência de aterramento de potência. |
| SMC01 | Borne COM | Driver TB6600 | Bornes ENA+, DIR+, PUL+ | Laranja | Barramento ânodo comum interligado no driver. |
| SMC01 | Borne EN- | Driver TB6600 | Borne ENA- | Cinza | Linha de chaveamento de habilitação do estágio de saída. |
| SMC01 | Borne DIR- | Driver TB6600 | Borne DIR- | Azul | Linha de sentido de rotação horário / anti-horário. |
| SMC01 | Borne PUL- | Driver TB6600 | Borne PUL- | Roxo | Linha de comando de pulsos de passo. |
| Driver TB6600 | Borne A+ e A- | Motor de Passo | Par de Fios da Fase A | Preto / Verde | Bobina A do motor de passo bipolar. |
| Driver TB6600 | Borne B+ e B- | Motor de Passo | Par de Fios da Fase B | Vermelho / Azul | Bobina B do motor de passo bipolar. |
| Fim de Curso CW | Contato / Switch | SMC01 | Borne LIM1 e GND | Amarelo | Limite de curso para avanço horário (chave para GND). |
| Fim de Curso CCW | Contato / Switch | SMC01 | Borne LIM2 e GND | Branco | Limite de curso para recuo anti-horário (chave para GND). |
| Microcontrolador | Pino (TTL) | SMC01 | Borne RXD | Verde Claro | Entrada de dados Modbus RTU ( ou ). |
| Microcontrolador | Pino (TTL) | SMC01 | Borne TXD | Azul Claro | Envio de telemetria e resposta Modbus RTU. |
Cuidados e observações de segurança
⛔ Perigo: Nunca desconecte os cabos dos enrolamentos do motor de passo (, , , ) enquanto o driver de potência estiver energizado. O colapso do campo magnético indutivo gera picos de alta tensão (flyback) que destroem instantaneamente os transistores MOSFET internos da ponte H do driver.
⚠️ Atenção: Configure as chaves DIP de corrente do driver de passo antes de ligar a fonte à rede elétrica. A corrente nominal do driver deve ser configurada para coincidir estritamente com a especificação do motor NEMA utilizado (por exemplo, por fase para motores NEMA 17 convencionais e a para motores NEMA 23).
Como usar
Guia de operação passo a passo
- Energização: Ligue a fonte de alimentação contínua ( a ). O display LCD azul exibirá a tela principal com a velocidade em na linha superior e a contagem de pulsos ou modo na linha inferior.
- Ajuste rápido de velocidade: Na tela principal, gire o encoder rotativo no sentido horário para aumentar a rotação ou anti-horário para diminuir. A velocidade é ajustável em passos de ou .
- Acionamento manual:
- Pressione o botão CW para movimentar o motor no sentido horário.
- Pressione o botão CCW para movimentar o motor no sentido anti-horário.
- Pressione o botão RUN/STOP para interromper o movimento ou pausar uma rotina em execução.
- Entrada no menu de configuração dos parâmetros ():
- Pressione e mantenha pressionado o eixo do encoder rotativo por mais de 3 segundos. O display exibirá o primeiro parâmetro de ajuste (
F-01). - Gire o encoder para navegar entre os códigos de configuração (
F-01aF-13). - Pressione brevemente o encoder para entrar na edição do valor selecionado (o dígito ativo piscará no visor).
- Gire o encoder para alterar o valor do dígito e pressione brevemente o encoder para avançar para o próximo dígito.
- Pressione o botão RUN/STOP para confirmar a alteração e retornar à lista de parâmetros.
- Pressione e mantenha pressionado o encoder por mais de 3 segundos para salvar as configurações na memória não volátil e retornar à tela principal de operação.
- Pressione e mantenha pressionado o eixo do encoder rotativo por mais de 3 segundos. O display exibirá o primeiro parâmetro de ajuste (
Modos de operação e ajustes
O parâmetro F-01 define a lógica de acionamento do controlador através de 9 perfis pré-programados ( a ):
Modo (F-01) | Denominação | Comportamento Operacional |
|---|---|---|
| P01 | Jog / Pulso Manual | O motor gira enquanto os botões CW/CCW ou sinais externos estiverem pressionados. Ao soltar, o motor freia imediatamente. |
| P02 | Manual Contínuo Retido | Pressionar CW ou CCW mantém o motor girando continuamente até que o botão RUN/STOP seja pressionado ou um fim de curso seja acionado. |
| P03 | Comutação Biestável | Um pulso na tecla CW inicia giro contínuo para a direita; um pulso na tecla CCW inverte o sentido diretamente sem parada prévia; RUN/STOP desliga. |
| P04 | Posicionamento Quantitativo Único | Ao receber o gatilho, o motor avança exatamente a quantidade de pulsos programada em F-02 à velocidade de F-03 e encerra o movimento. |
| P05 | Ciclo Único com Retorno Automático | O motor avança os pulsos de F-02, aguarda o tempo de espera F-07, inverte e retorna os pulsos de F-04 e para na posição inicial. |
| P06 | Ciclo Contínuo Repetitivo | Executa avanço (F-02), pausa (F-07), retorno (F-04), pausa (F-08) e repete essa rotina pela quantidade de vezes configurada em F-06 (ou infinitamente se ). |
| P07 | Retorno Automático por Desarme | O motor avança enquanto a tecla CW for mantida pressionada; no momento em que a tecla é liberada, aguarda a pausa e retorna automaticamente à origem. |
| P08 | Avanço Cíclico Temporizado | Avança periodicamente a distância estipulada em F-02, aguarda a pausa F-07, e avança novamente no mesmo sentido. |
| P09 | Partida Automática ao Ligar | Ao energizar o módulo, o controlador inicia imediatamente o ciclo de trabalho sem exigir sinal de gatilho manual. |
Tabela completa de parâmetros de configuração (F-01 a F-13)
| Código | Descrição do Parâmetro | Faixa de Valores | Valor Padrão | Unidade / Observação |
|---|---|---|---|---|
| F-01 | Modo de Operação do Sistema | () | Seleciona a lógica de controle descrita acima. | |
| F-02 | Quantidade de Pulsos no Avanço (CW) | Ajustável em dígitos altos () e baixos (). | ||
| F-03 | Velocidade de Rotação no Avanço | Rotações por minuto (). | ||
| F-04 | Quantidade de Pulsos no Retorno (CCW) | Quantidade de passos para recuo. | ||
| F-05 | Velocidade de Rotação no Retorno | Rotações por minuto (). | ||
| F-06 | Quantidade de Ciclos de Repetição | Número de laços (definir para execução infinita). | ||
| F-07 | Tempo de Espera após Avanço (Dwell CW) | Pausa em segundos antes da reversão. | ||
| F-08 | Tempo de Espera após Retorno (Dwell CCW) | Pausa em segundos antes do próximo ciclo. | ||
| F-09 | Pulsos por Rotação do Driver (Micropasso) | Obrigatório: deve coincidir com a chave DIP do driver externo. | ||
| F-10 | Modo de Exibição da Linha Inferior | Exibe: = contagem de ciclos; = temporização; = pulsos restantes. | ||
| F-11 | Modo de Frenagem ao Pressionar Stop | = parada com rampa suave; = parada brusca imediata. | ||
| F-12 | Gradiente de Aceleração e Desaceleração | Taxa de rampa (quanto maior, mais rápida a aceleração). | ||
| F-13 | Endereço Escravo de Comunicação Serial | Identificador de nó na rede Modbus RTU. |
Relação matemática de cálculo de pulsos e frequência
Para calibrar o parâmetro F-09 e o número de pulsos de deslocamento (F-02/F-04), considere a resolução angular do motor e a divisão de micropassos configurada no driver:
Onde:
- é o total de pulsos para uma volta completa ();
- é o ângulo por passo nativo do motor (tipicamente para motores padrão de 200 passos/volta);
- é o multiplicador de micropasso configurado no driver (ex.: , resultando em ).
Para um motor de operando em de micropasso:
A frequência de saída do trem de pulsos () gerada pelo SMC01 em função do valor configurado de é calculada por:
Exemplos práticos de uso
Controle remoto via Arduino e ESP32 com Modbus RTU
O SMC01 disponibiliza interface serial assíncrona TTL com taxa padrão de 9600 bps, 8 bits de dados, sem paridade e 1 stop bit (8-N-1). Os registradores internos podem ser lidos através da função Modbus 0x03 (Read Holding Registers) e manipulados através da função 0x06 (Write Single Register).
O mapa de registradores operacionais diretos inclui:
- Registrador
0x0100: Comando de acionamento do motor:0x0000= Iniciar rotação no sentido horário (CW);0x0001= Iniciar rotação no sentido anti-horário (CCW);0x0002= Parada suave com rampa de desaceleração;0x0003= Parada de emergência imediata.
- Registrador
0x0105: Ajuste dinâmico de velocidade em RPM ( a ).
O programa abaixo demonstra o envio de comandos estruturados em Modbus RTU utilizando a porta serial do ESP32 ou Arduino Mega:
/**
* ============================================================================
* Projeto: Controle Serial Modbus RTU para Módulo SMC01
* Plataforma: Arduino / ESP32
* Descrição: Envia comandos hexadecimais para acionamento, reversão e parada
* do controlador de motor de passo SMC01 via UART TTL (9600 bps).
* ============================================================================
*/
#include <Arduino.h>
// Definição dos pinos seriais para ESP32 (HardwareSerial 2)
#if defined(ESP32)
#define RX_PIN 16
#define TX_PIN 17
HardwareSerial smcSerial(2);
#else
// Para Arduino Mega ou placas compatíveis
#define smcSerial Serial1
#endif
// Endereço escravo do SMC01 (definido em F-13, padrão = 1)
const uint8_t SLAVE_ID = 0x01;
/**
* Calcula o checksum CRC-16 padrão Modbus RTU
*/
uint16_t calcularCRC16(const uint8_t *buffer, uint16_t tamanho) {
uint16_t crc = 0xFFFF;
for (uint16_t pos = 0; pos < tamanho; pos++) {
crc ^= (uint16_t)buffer[pos];
for (uint8_t i = 8; i != 0; i--) {
if ((crc & 0x0001) != 0) {
crc >>= 1;
crc ^= 0xA001;
} else {
crc >>= 1;
}
}
}
return crc;
}
/**
* Envia uma mensagem Modbus de escrita em registrador único (Função 0x06)
*/
void escreverRegistradorModbus(uint16_t endereco, uint16_t valor) {
uint8_t quadro[8];
quadro[0] = SLAVE_ID;
quadro[1] = 0x06; // Código de função: Write Single Register
quadro[2] = (endereco >> 8) & 0xFF; // Endereço MSB
quadro[3] = endereco & 0xFF; // Endereço LSB
quadro[4] = (valor >> 8) & 0xFF; // Valor MSB
quadro[5] = valor & 0xFF; // Valor LSB
// Cálculo e inserção do CRC16 (Low byte primeiro)
uint16_t crc = calcularCRC16(quadro, 6);
quadro[6] = crc & 0xFF; // CRC LSB
quadro[7] = (crc >> 8) & 0xFF; // CRC MSB
// Envio pela interface serial
smcSerial.write(quadro, 8);
smcSerial.flush();
}
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println(F("[SMC01] Inicializando comunicacao com o controlador..."));
#if defined(ESP32)
smcSerial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);
#else
smcSerial.begin(9600);
#endif
Serial.println(F("[SMC01] Sistema pronto. Digite comandos no monitor serial:"));
Serial.println(F(" '1' -> Girar no Sentido Horario (CW)"));
Serial.println(F(" '2' -> Girar no Sentido Anti-Horario (CCW)"));
Serial.println(F(" '0' -> Parada Suave"));
Serial.println(F(" 'e' -> Parada de Emergencia"));
}
void loop() {
if (Serial.available() > 0) {
char comando = Serial.read();
switch (comando) {
case '1':
Serial.println(F("[Comando] Rotação CW iniciada"));
escreverRegistradorModbus(0x0100, 0x0000); // 0 = Rotação CW
break;
case '2':
Serial.println(F("[Comando] Rotação CCW iniciada"));
escreverRegistradorModbus(0x0100, 0x0001); // 1 = Rotação CCW
break;
case '0':
Serial.println(F("[Comando] Parada suave solicitada"));
escreverRegistradorModbus(0x0100, 0x0002); // 2 = Desaceleração suave
break;
case 'e':
case 'E':
Serial.println(F("[Comando] Parada de emergência imediata"));
escreverRegistradorModbus(0x0100, 0x0003); // 3 = Parada imediata
break;
default:
// Caracteres irrelevantes (quebras de linha) ignorados
break;
}
}
// Leitura de eco ou respostas do SMC01
if (smcSerial.available() > 0) {
uint8_t byteRecebido = smcSerial.read();
// Respostas podem ser tratadas conforme a necessidade da telemetria
}
}
Projetos
Para verificar a aplicação prática do controle de motores de passo e integração com sistemas conectados, consulte o projeto desenvolvido na plataforma:
- Painel Web para Placa ESP32 com 8 Relés de 30A (RB2553): Guia completo de automação predial e industrial de cargas com interface web em tempo real e firmware modular de controle de periféricos.
Conclusão
O controlador inteligente de velocidade para motor de passo SMC01 oferece uma solução autônoma, robusta e compacta para a automação de eixos mecânicos:
- Controle autônomo e imediato: Dispensa o desenvolvimento de código de temporização para tarefas rotineiras de avanço, retorno, temporização e ajuste de velocidade.
- Flexibilidade de integração elétrica: Interface padrão ânodo comum compatível com os principais drivers de mercado (TB6600, DM542, TMC2209) alimentados de a .
- Parametrização avançada: Nove modos de movimento ( a ) com rampas de aceleração programáveis e controle de ciclo contínuo ou posicional.
- Comunicação serial Modbus RTU: Permite supervisão e acionamento remoto por microcontroladores Arduino, ESP32 e computadores industriais.
Com a instalação e parametrização adequadas abordadas neste manual, o operador obtém precisão angular e repetibilidade contínua em projetos de usinagem, alimentadores automáticos e linhas de montagem.
Solução de problemas
Olá! Sou o assistente técnico da RoboBuilders. Descreva seu problema com o Controlador Inteligente Velocidade Motor Passo Nema SMC01: Manual Técnico Completo e eu ajudarei a encontrar a solução.
O assistente usa IA e pode errar. Confirme informações críticas no datasheet oficial do fabricante.