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

Controlador Inteligente 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âmetroEspecificaçãoUnidade / Condição
Modelo ComercialSMC01 (ZK-SMC01)—
Arquitetura de ControleGerador digital de pulsos monoaxial programávelEixo único
Interface VisualDisplay LCD com caracteres alfanuméricos e iluminação azulMatriz com ícones de status
Interface ManualEncoder rotativo com chave táctil central e 3 botões frontaisCW, CCW, RUN/STOP
Formato FísicoGabinete plástico para embutir em painel com travas lateraisABS anti-chama preto
Dimensões Externas79,0×43,0×41,079{,}0 \times 43{,}0 \times 41{,}0mm\text{mm}
Rasgo para Painel (Cutout)76,0×39,076{,}0 \times 39{,}0mm\text{mm}
Faixa de Velocidade Configurável0,10{,}1 a 999,0999{,}0RPM\text{RPM}
Contagem de Pulsos por Ciclo11 a 9.999.9999.999.999Pulsos
Resolução de Temporização (Delays)0,00{,}0 a 999,9999{,}9s\text{s}
Número de Ciclos Programáveis11 a 99999999 (ou 00 para loop infinito contínuo)Ciclos
Massa Líquida4242g\text{g}

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étricoMínimoTípicoMáximoUnidadeObservação
Tensão de Alimentação (VINV_{IN})5,05{,}012,0−24,012{,}0 - 24{,}030,030{,}0V DC\text{V DC}Proteção contra polaridade reversa integrada
Consumo de Corrente em Repouso151525253535mA\text{mA}Display ativo sem acionamento externo
Tensão do Barramento COM (+5V)4,84{,}85,05{,}05,25{,}2V DC\text{V DC}Ânodo comum para optoacopladores do driver
Capacidade de Corrente das Saídas (PUL/DIR/EN)—10102020mA\text{mA}Saídas digitais em coletor aberto
Frequência Máxima de Saída de Pulsos——2020kHz\text{kHz}Onda quadrada simétrica
Nível Lógico das Entradas Digitais (LIM/CW/CCW/STOP)00 (GND)—3,3−5,03{,}3 - 5{,}0V\text{V}Acionamento por contato seco para GND
Interface Serial de Comunicação—UART TTL—Nível 3,3V/5VPadrão 9600 bps, 8-N-1, Modbus RTU
Temperatura de Operação−10-102525+60+60°C\text{°C}Ambiente sem condensação
Compatibilidade com MotoresNEMA 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 (RPM\text{RPM}) 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 / ConectorIdentificaçãoSentidoFunção Técnica
V+Tensão PositivaEntradaEntrada de alimentação contínua de 5 V5\,\text{V} a 30 V DC30\,\text{V DC}.
V-Referência (GND)EntradaTerminal negativo de alimentação (0 V0\,\text{V}).
COMÂnodo Comum (+5V)SaídaBarramento positivo interno de +5 V+5\,\text{V} para optoacopladores do driver externo.
EN-Enable NegativoSaídaSinal de habilitação em nível lógico baixo (conecta ao borne ENA-\text{ENA-} do driver).
DIR-Direction NegativoSaídaSinal de sentido de rotação (conecta ao borne DIR-\text{DIR-} do driver).
PUL-Pulse NegativoSaídaSinal de pulsos de passo (conecta ao borne PUL-\text{PUL-} do driver).
CWAvanço ManualEntradaBotão externo de comando no sentido horário (ligar contra GND).
CCWRetorno ManualEntradaBotão externo de comando no sentido anti-horário (ligar contra GND).
RUN/STOPPartida / ParadaEntradaChave externa de início ou interrupção do ciclo (ligar contra GND).
LIM1Fim de Curso 1EntradaSensor limitador de curso para o sentido de avanço CW (ligar contra GND).
LIM2Fim de Curso 2EntradaSensor limitador de curso para o sentido de retorno CCW (ligar contra GND).
TXDTransmissão UARTSaídaLinha de envio de dados seriais em nível TTL (3,3 V/5 V3{,}3\,\text{V} / 5\,\text{V}).
RXDRecepção UARTEntradaLinha de recebimento de dados seriais em nível TTL (3,3 V/5 V3{,}3\,\text{V} / 5\,\text{V}).
GNDTerra LógicoReferênciaReferência comum para sensores, botões e comunicação serial.

⚠️ Atenção: Os bornes de entrada digital (CW\text{CW}, CCW\text{CCW}, RUN/STOP\text{RUN/STOP}, LIM1\text{LIM1} e LIM2\text{LIM2}) operam por chaveamento para a referência (GND\text{GND}). Nunca injete tensões positivas de 12 V12\,\text{V} ou 24 V24\,\text{V} 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:

  1. Fonte de alimentação: Utilize uma fonte chaveada industrial com tensão dimensionada entre 12 V12\,\text{V} e 24 V DC24\,\text{V DC} e capacidade de corrente que atenda com folga à corrente de fase do driver e motor (recomenda-se no mínimo 3 A3\,\text{A} a 5 A5\,\text{A} para motores NEMA 17 e NEMA 23).
  2. Topologia Ânodo Comum (Common Anode): O borne COM\text{COM} do SMC01 fornece +5 V+5\,\text{V} regulados para alimentar os lados anódicos dos isoladores ópticos de entrada do driver. Os sinais de comando atuam chaveando as linhas ENA-\text{ENA-}, DIR-\text{DIR-} e PUL-\text{PUL-} para a referência interna quando ativos.
  3. 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 GND\text{GND}).

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:

Diagrama de ligação elétrica do Controlador Inteligente SMC01

Tabela de conexões dos terminais

Origem (Dispositivo)Terminal de OrigemDestino (Dispositivo)Terminal de DestinoCor IndicativaFunção e Observações
Fonte 24V DCSaída +V+V (+24 V+24\,\text{V})SMC01Borne V+VermelhoAlimentação principal do controlador (5 V5\,\text{V} a 30 V30\,\text{V}).
Fonte 24V DCSaída −V-V / COM\text{COM} (0 V0\,\text{V})SMC01Borne V-PretoLinha de referência e retorno de corrente.
Fonte 24V DCSaída +V+V (+24 V+24\,\text{V})Driver TB6600Borne VCCVermelhoAlimentação de potência dos enrolamentos do motor.
Fonte 24V DCSaída −V-V / COM\text{COM} (0 V0\,\text{V})Driver TB6600Borne GNDPretoReferência de aterramento de potência.
SMC01Borne COMDriver TB6600Bornes ENA+, DIR+, PUL+LaranjaBarramento +5 V+5\,\text{V} ânodo comum interligado no driver.
SMC01Borne EN-Driver TB6600Borne ENA-CinzaLinha de chaveamento de habilitação do estágio de saída.
SMC01Borne DIR-Driver TB6600Borne DIR-AzulLinha de sentido de rotação horário / anti-horário.
SMC01Borne PUL-Driver TB6600Borne PUL-RoxoLinha de comando de pulsos de passo.
Driver TB6600Borne A+ e A-Motor de PassoPar de Fios da Fase APreto / VerdeBobina A do motor de passo bipolar.
Driver TB6600Borne B+ e B-Motor de PassoPar de Fios da Fase BVermelho / AzulBobina B do motor de passo bipolar.
Fim de Curso CWContato NA\text{NA} / SwitchSMC01Borne LIM1 e GNDAmareloLimite de curso para avanço horário (chave para GND).
Fim de Curso CCWContato NA\text{NA} / SwitchSMC01Borne LIM2 e GNDBrancoLimite de curso para recuo anti-horário (chave para GND).
MicrocontroladorPino TX\text{TX} (TTL)SMC01Borne RXDVerde ClaroEntrada de dados Modbus RTU (3,3 V3{,}3\,\text{V} ou 5 V5\,\text{V}).
MicrocontroladorPino RX\text{RX} (TTL)SMC01Borne TXDAzul ClaroEnvio de telemetria e resposta Modbus RTU.

Cuidados e observações de segurança

⛔ Perigo: Nunca desconecte os cabos dos enrolamentos do motor de passo (A+\text{A+}, A-\text{A-}, B+\text{B+}, B-\text{B-}) 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, 1,7 A1{,}7\,\text{A} por fase para motores NEMA 17 convencionais e 2,8 A2{,}8\,\text{A} a 3,5 A3{,}5\,\text{A} para motores NEMA 23).

Como usar

Guia de operação passo a passo

  1. Energização: Ligue a fonte de alimentação contínua (12 V12\,\text{V} a 24 V DC24\,\text{V DC}). O display LCD azul exibirá a tela principal com a velocidade em RPM\text{RPM} na linha superior e a contagem de pulsos ou modo na linha inferior.
  2. 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 0,1 RPM0{,}1\,\text{RPM} ou 1 RPM1\,\text{RPM}.
  3. 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.
  4. Entrada no menu de configuração dos parâmetros (FF):
    • 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-01 a F-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.

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 (P01P01 a P09P09):

Modo (F-01)DenominaçãoComportamento Operacional
P01Jog / Pulso ManualO motor gira enquanto os botões CW/CCW ou sinais externos estiverem pressionados. Ao soltar, o motor freia imediatamente.
P02Manual Contínuo RetidoPressionar 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.
P03Comutação BiestávelUm 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.
P04Posicionamento Quantitativo ÚnicoAo receber o gatilho, o motor avança exatamente a quantidade de pulsos programada em F-02 à velocidade de F-03 e encerra o movimento.
P05Ciclo Único com Retorno AutomáticoO 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.
P06Ciclo Contínuo RepetitivoExecuta 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 F−06=0F-06 = 0).
P07Retorno Automático por DesarmeO motor avança enquanto a tecla CW for mantida pressionada; no momento em que a tecla é liberada, aguarda a pausa e retorna automaticamente à origem.
P08Avanço Cíclico TemporizadoAvança periodicamente a distância estipulada em F-02, aguarda a pausa F-07, e avança novamente no mesmo sentido.
P09Partida Automática ao LigarAo 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ódigoDescrição do ParâmetroFaixa de ValoresValor PadrãoUnidade / Observação
F-01Modo de Operação do Sistema1−91 - 9 (P01−P09P01 - P09)11Seleciona a lógica de controle descrita acima.
F-02Quantidade de Pulsos no Avanço (CW)1−9.999.9991 - 9.999.99916001600Ajustável em dígitos altos (Hxxx\text{Hxxx}) e baixos (xxxx\text{xxxx}).
F-03Velocidade de Rotação no Avanço0,1−999,00{,}1 - 999{,}010,010{,}0Rotações por minuto (RPM\text{RPM}).
F-04Quantidade de Pulsos no Retorno (CCW)1−9.999.9991 - 9.999.99916001600Quantidade de passos para recuo.
F-05Velocidade de Rotação no Retorno0,1−999,00{,}1 - 999{,}010,010{,}0Rotações por minuto (RPM\text{RPM}).
F-06Quantidade de Ciclos de Repetição1−99991 - 999911Número de laços (definir 00 para execução infinita).
F-07Tempo de Espera após Avanço (Dwell CW)0,0−999,90{,}0 - 999{,}90,00{,}0Pausa em segundos antes da reversão.
F-08Tempo de Espera após Retorno (Dwell CCW)0,0−999,90{,}0 - 999{,}90,00{,}0Pausa em segundos antes do próximo ciclo.
F-09Pulsos por Rotação do Driver (Micropasso)1−99991 - 999916001600Obrigatório: deve coincidir com a chave DIP do driver externo.
F-10Modo de Exibição da Linha Inferior0−40 - 400Exibe: 00 = contagem de ciclos; 11 = temporização; 22 = pulsos restantes.
F-11Modo de Frenagem ao Pressionar Stop0−10 - 10000 = parada com rampa suave; 11 = parada brusca imediata.
F-12Gradiente de Aceleração e Desaceleração1−1001 - 1002020Taxa de rampa (quanto maior, mais rápida a aceleração).
F-13Endereço Escravo de Comunicação Serial1−2551 - 25511Identificador 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:

Prot=360∘θpasso×MP_{\text{rot}} = \frac{360^{\circ}}{\theta_{\text{passo}}} \times M

Onde:

  • ProtP_{\text{rot}} é o total de pulsos para uma volta completa (360∘360^{\circ});
  • θpasso\theta_{\text{passo}} é o ângulo por passo nativo do motor (tipicamente 1,8∘1{,}8^{\circ} para motores padrão de 200 passos/volta);
  • MM é o multiplicador de micropasso configurado no driver (ex.: 1/81/8, resultando em M=8M = 8).

Para um motor de 1,8∘1{,}8^{\circ} operando em 1/81/8 de micropasso:

Prot=360∘1,8∘×8=200×8=1600 pulsos/voltaP_{\text{rot}} = \frac{360^{\circ}}{1{,}8^{\circ}} \times 8 = 200 \times 8 = 1600\,\text{pulsos/volta}

A frequência de saída do trem de pulsos (fpulsof_{\text{pulso}}) gerada pelo SMC01 em função do valor configurado de RPM\text{RPM} é calculada por:

fpulso=RPM×Prot60f_{\text{pulso}} = \frac{\text{RPM} \times P_{\text{rot}}}{60}

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 (11 a 999999).

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:

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 5 V5\,\text{V} a 30 V DC30\,\text{V DC}.
  • Parametrização avançada: Nove modos de movimento (P01P01 a P09P09) 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.