Controlador de Velocidade PWM 2A 5-35VCC: Manual Técnico Completo

Introdução
Neste manual, será apresentado como instalar, configurar e utilizar o Controlador de Velocidade PWM 5A 5-35VCC. Se desejar adquirir este produto, clique aqui.
O Controlador de Velocidade PWM 5A 5-35VCC (código RB0522) é um módulo compacto de regulação de potência em corrente contínua que utiliza modulação por largura de pulso (PWM — Pulse Width Modulation) para variar a velocidade de motores DC, a intensidade de iluminação e a potência entregue a cargas resistivas. O ajuste é feito por um potenciômetro rotativo integrado à placa, que altera o ciclo de trabalho (duty cycle) do sinal de entre e , mantendo a tensão de entrada praticamente inalterada e comutando a carga por meio de um MOSFET de potência em encapsulamento DPAK. Este documento técnico destina-se a estudantes, técnicos de manutenção, projetistas de bancada e desenvolvedores que precisam dimensionar o acionamento de motores e cargas DC de até , bem como supervisionar esse acionamento por meio de Arduino ou ESP32.
O conteúdo está organizado na sequência em que o módulo é colocado em serviço: primeiro as especificações elétricas e térmicas, depois a descrição funcional com o mapeamento completo dos quatro bornes, em seguida o procedimento de ligação com a tabela de conexões e os cuidados de segurança, e por fim o guia de operação, os ajustes possíveis e dois exemplos de firmware comentados linha a linha. Ao final, o leitor terá condições de instalar o módulo, identificar corretamente os terminais de entrada e saída, calcular a dissipação de potência do conjunto e integrar o acionamento a um sistema de supervisão com detecção de travamento.
Especificações técnicas
O módulo adota topologia de chaveamento estático em série com a carga (series chopper), na qual um transistor MOSFET de canal N opera em corte e saturação a uma frequência fixa de . O controle do ciclo de trabalho é analógico, realizado por uma rede RC ajustável ligada ao potenciômetro da placa, sem qualquer interface digital ou protocolo de comunicação.
Principais especificações
| Parâmetro | Especificação Técnica |
|---|---|
| Modelo Comercial | Controlador de Velocidade PWM 5A 5-35VCC |
| Código de Referência (SKU) | RB0522 |
| Tensão de Operação () | a (faixa nominal recomendada: a ) |
| Corrente Nominal Contínua | sem dissipador adicional |
| Corrente Máxima de Pico | (com dissipador e ventilação forçada) |
| Potência Máxima de Controle | (envelope máximo do estágio de potência) |
| Corrente de Repouso (Standby) | () |
| Ciclo de Trabalho (Duty Cycle) | a |
| Frequência de Modulação PWM | (fixa) |
| Elemento de Comutação | MOSFET de canal N em encapsulamento DPAK (TO-252) |
| Diodo de Roda Livre | Diodo Schottky SS34 () integrado à placa |
| Filtro de Barramento | Capacitor eletrolítico de alumínio (dezenas a centenas de / ) |
| Controle de Ajuste | Potenciômetro rotativo de 1 volta com eixo de e manípulo plástico |
| Conector de Potência | Borne de parafuso azul de 4 vias, passo |
| Dimensões da PCB () | |
| Temperatura de Operação | a (com derating acima de ) |
| Temperatura de Armazenamento | a |
| Proteções Integradas | Nenhuma (sem fusível, sem proteção de polaridade inversa, sem limitação de corrente) |
⚠️ Atenção: o módulo não possui proteção contra inversão de polaridade. A ligação invertida da alimentação coloca o capacitor eletrolítico e o diodo Schottky em condução direta, provocando aquecimento imediato e destruição do conjunto. Confira a polaridade com multímetro antes de energizar.
Características elétricas e operacionais
A tabela a seguir consolida os limites absolutos, os valores típicos de operação e as condições de contorno do estágio de potência:
| Parâmetro Elétrico | Mínimo | Típico | Máximo | Unidade | Condição / Observação |
|---|---|---|---|---|---|
| Tensão de Entrada () | Acima de o capacitor de barramento e o diodo entram em regime de ruptura | ||||
| Corrente de Carga Contínua () | Sem dissipador térmico adicional | ||||
| Corrente de Pico () | — | — | Partidas de motor e regime intermitente, com ventilação | ||
| Corrente de Repouso () | — | Módulo energizado com potenciômetro no mínimo | |||
| Frequência de Chaveamento () | Definida pela rede RC do oscilador, não ajustável pelo usuário | ||||
| Ciclo de Trabalho () | — | Não existe posição de corte total: há sempre um resíduo de | |||
| Resistência em Condução () | — | Valor típico do MOSFET DPAK; varia entre lotes de produção | |||
| Queda de Tensão em Condução | — | Medida com e | |||
| Eficiência de Conversão | Perda restrita à condução e ao chaveamento do MOSFET | ||||
| Ripple de Corrente na Carga | — | — | Depende da indutância do motor, conforme equação adiante | ||
| Isolação Galvânica | — | — | — | — | Inexistente: entrada e saída compartilham o mesmo potencial de referência |
O comportamento da tensão aplicada à carga é definido por dois valores distintos, que não devem ser confundidos. A tensão média é a grandeza lida por um multímetro comum em escala DC e determina o ponto de operação do motor em regime permanente:
Já a tensão eficaz (RMS) é a grandeza que define o aquecimento de cargas resistivas, como resistências de aquecimento e lâmpadas incandescentes, pois a potência dissipada depende do valor quadrático da tensão:
A ondulação de corrente no enrolamento do motor, por sua vez, é função da indutância da carga e da frequência de chaveamento. Como o módulo opera em , a ondulação é baixa mesmo em motores de pequeno porte, o que reduz o aquecimento por efeito Joule e o ruído audível:
A dissipação total no MOSFET combina as perdas por condução e as perdas por chaveamento, e é o parâmetro que define a necessidade ou não de dissipador:
A temperatura de junção resultante é obtida pela resistência térmica entre junção e ambiente do encapsulamento DPAK soldado à PCB, que tipicamente situa-se entre e em placas sem plano de cobre dedicado:
Aplicando as equações a um motor de que consome em carga nominal, com , , e , obtém-se e elevação de junção de aproximadamente acima da ambiente. O limite prático de sem dissipador não decorre, portanto, do silício, mas da capacidade de condução de corrente das trilhas da PCB e do próprio borne de parafuso, que sofrem aquecimento resistivo e degradam o contato com o tempo.
| Tensão de Entrada | Corrente Contínua Recomendada (sem dissipador) | Corrente Máxima com Dissipador + Ventilação | Potência Resultante |
|---|---|---|---|
| a | (limitada pelo borne) | a | |
| a | |||
| a |
Descrição do produto
O que é o Controlador de Velocidade PWM 5A 5-35VCC?
O Controlador de Velocidade PWM 5A 5-35VCC é um regulador de potência DC de montagem em placa, construído sobre PCB de fibra de vidro FR-4 nas dimensões de , com borne de parafuso de quatro vias em uma das extremidades e potenciômetro rotativo na extremidade oposta. A placa reúne, em um único conjunto, o oscilador que gera o sinal PWM de , o estágio de comando de gatilho, o MOSFET de potência em DPAK, o diodo Schottky de roda livre SS34, o capacitor eletrolítico de barramento e a rede de ajuste do ciclo de trabalho.
O princípio de funcionamento é o chaveamento série: o MOSFET é colocado entre a fonte de alimentação e a carga e permanece alternando entre o corte e a saturação a . O potenciômetro altera a constante de tempo da rede RC do oscilador, modificando a largura do pulso ativo e, consequentemente, a fração de tempo em que a carga recebe energia. Como a frequência é muito superior à constante mecânica do motor, o enrolamento responde à média da tensão aplicada, e não aos pulsos individuais — o resultado é uma rotação suave e proporcional ao ciclo de trabalho, sem a perda de torque característica dos reguladores lineares por resistor série.
O ajuste é puramente analógico e local. Não há microcontrolador embarcado, barramento I²C, SPI ou UART, nem entrada de referência de – ou –. A velocidade é definida exclusivamente pela posição do potenciômetro, o que simplifica a instalação e dispensa firmware, mas impede o controle remoto sem uma modificação física no circuito (tratada adiante, na seção de ajustes).
Para que serve?
- Variação de rotação de motores DC com escovas: controle progressivo de velocidade em motores de ímã permanente de a , como os utilizados em esteiras de pequeno porte, ventiladores, exaustores, bombas de circulação, agitadores, mini-retíficas e mecanismos de acionamento de bancada.
- Regulação de potência em cargas resistivas: ajuste de intensidade em fitas e módulos de LED com resistor limitador, resistências de aquecimento de baixa potência, mantas térmicas e elementos PTC, sempre respeitando o limite de contínuos.
- Controle de velocidade em protótipos e maquetes: acionamento de motores de kits didáticos, robôs de tração diferencial e mecanismos de exposição, nos quais se deseja um ajuste manual simples, sem a complexidade de uma ponte H ou de um driver com interface digital.
Por que devo usar?
- Eficiência elevada com perda térmica desprezível: por operar em comutação, o MOSFET dissipa apenas a parcela correspondente à sua resistência em condução () e às perdas de chaveamento, alcançando eficiência acima de — muito superior à de reguladores lineares, que convertem toda a diferença de tensão em calor.
- Torque preservado em baixa rotação: ao manter a tensão de pico igual à da fonte e reduzir apenas o tempo de aplicação, o módulo preserva a corrente de partida e o torque do motor em velocidades baixas, condição em que os reguladores por queda de tensão falham.
- Integração mínima e custo reduzido: com apenas quatro bornes, o módulo entra em serviço sem firmware, sem biblioteca e sem configuração, sendo adequado a painéis de manutenção, bancadas de teste e aplicações em que o ajuste manual é suficiente.
Quando devo usar?
O módulo é a escolha adequada quando a aplicação exige ajuste manual local de velocidade ou potência, a carga opera em corrente contínua de até contínuos ( de pico com ventilação) e a tensão de alimentação não ultrapassa .
Não é a escolha adequada nos seguintes cenários, em que se recomenda outra solução:
- Reversão de sentido de rotação: o módulo aciona a carga em um único sentido. Para inversão, utilize uma ponte H, como o CI L293D Ponte H Dupla para Motores DC ou um driver de ponte H com MOSFETs.
- Controle remoto, PID ou rampas programáveis: sem interface digital, o módulo não aceita comandos de um microcontrolador. Para esses requisitos, utilize o Controlador de Velocidade PWM 20A com Controle Remoto, que oferece display, controle RF e nove funções programáveis.
- Cargas acima de ou motores de indução CA: para potências superiores, empregue controladores de maior corrente; para motores de corrente alternada, a variação de velocidade exige inversor de frequência (VFD), pois o corte de fase danifica o enrolamento.
- Cargas cujo terminal negativo é aterrado ao chassi: como o chaveamento padrão do módulo ocorre no ramo negativo, a carga deve ficar flutuante em relação ao terra. Em veículos e quadros metálicos, isole a carga ou utilize um módulo com chaveamento no lado positivo.
Pinout e diagrama de entradas/saídas
O módulo expõe quatro terminais de potência em um único borne de parafuso azul, além do potenciômetro de ajuste. A disposição física é linear, com os bornes de entrada e de saída no mesmo bloco, o que exige atenção redobrada na identificação antes da energização.
| Pino / Terminal | Serigrafia Típica na PCB | Direção | Função Técnica Detalhada |
|---|---|---|---|
| Borne 1 | V+ / IN+ / ”+” | Entrada DC | Terminal positivo da fonte de alimentação ( a ). Internamente conectado ao positivo do capacitor de barramento e ao catodo do diodo Schottky. É o ramo comum do conjunto no chaveamento padrão em lado negativo. |
| Borne 2 | V− / IN− / GND / ”−” | Entrada DC | Terminal negativo da fonte, referência de terra do módulo. Conectado ao terminal source do MOSFET e ao ânodo do diodo SS34. |
| Borne 3 | M+ / OUT+ / ”+” | Saída DC | Terminal positivo da carga. Eletricamente comum ao Borne 1 no chaveamento em lado negativo, servindo de retorno positivo para o motor ou a resistência. |
| Borne 4 | M− / OUT− / ”−” | Saída DC | Terminal negativo da carga, conectado ao drain do MOSFET. É o nó chaveado: alterna entre e a , conforme o ciclo de trabalho ajustado. |
| Potenciômetro (VR1) | Eixo com manípulo | Entrada mecânica | Ajuste do ciclo de trabalho. O giro no sentido horário aumenta a largura de pulso e a velocidade (); o giro anti-horário reduz (). Curso mecânico de aproximadamente . |
⚠️ Atenção: a ordem física dos quatro bornes varia entre lotes de fabricação. Nunca conecte a fonte confiando apenas na posição do terminal. Confirme a serigrafia gravada na PCB e, em caso de dúvida, execute o teste de continuidade descrito na seção de ligação antes de aplicar energia.
O módulo não possui LED indicador de estado, botão de reset, jumper de seleção de modo ou conector de sinal. Os únicos elementos de interface são o borne de potência e o potenciômetro, o que significa que todo o diagnóstico de funcionamento é feito por medição elétrica na carga.
Como fazer a ligação
Requisitos de instalação e alimentação
A instalação correta depende de três decisões de projeto tomadas antes da montagem: a fonte, a proteção e o condutor.
- Fonte de alimentação: utilize fonte estabilizada com tensão igual ou inferior a e corrente nominal no mínimo acima do consumo previsto do motor em carga. Para um motor de que consome , por exemplo, empregue fonte de ou superior. Fontes de bancada com limitação de corrente ajustável são ideais para a primeira energização, pois permitem detectar curto-circuito ou inversão de polaridade sem danificar o módulo.
- Proteção contra sobrecorrente: instale um fusível de ação rápida em série com o condutor positivo, dimensionado em a vezes a corrente nominal da carga (por exemplo, para cargas de ). O módulo não possui fusível interno, e um travamento mecânico do motor eleva a corrente até o limite da fonte, destruindo o MOSFET em poucos segundos.
- Bitola dos condutores: use cabos flexíveis de cobre de () para correntes de até e de () para correntes de até . Termine os condutores com ilhós tubular, evitando fios espetados diretamente sob o parafuso do borne, prática que reduz a área de contato e provoca aquecimento localizado.
- Fixação mecânica: o módulo deve ser fixado por meio dos furos de montagem da PCB, com espaçadores de nylon, de modo que o potenciômetro fique acessível no painel. Evite apoiar a face inferior da placa sobre superfícies metálicas, pois as soldas ficam expostas e energizadas.
- Ventilação: para correntes acima de , fixe um dissipador de alumínio sobre o encapsulamento DPAK com pasta térmica e adicione ventilação forçada. Mantenha no mínimo de espaço livre ao redor do módulo.
Diagrama de ligação elétrica

O diagrama representa a ligação mínima do módulo: a fonte DC entra pelos bornes 1 (V+) e 2 (V−), passando por um fusível no condutor positivo, e a carga é conectada entre os bornes 3 (M+) e 4 (M−). Observe que o diodo Schottky já está soldado na placa, em antiparalelo com a carga, e é ele que absorve a energia armazenada na indutância do motor no instante em que o MOSFET abre — sem esse diodo, a tensão induzida no enrolamento ultrapassaria em várias vezes a tensão da fonte e destruiria o transistor.
Como o chaveamento ocorre no ramo negativo, o borne 3 (M+) permanece permanentemente no potencial positivo da fonte, enquanto o borne 4 (M−) alterna entre e . Essa característica tem duas consequências práticas: a carga não pode ter o negativo ligado ao terra do sistema, e a medição de tensão sobre a carga deve ser feita entre os bornes 3 e 4, e não entre o borne 4 e o terra.
Tabela de conexões dos terminais
| Origem | Terminal do Módulo | Destino | Observação Técnica |
|---|---|---|---|
| Positivo da fonte DC () | Borne 1 (V+) | — | Passar obrigatoriamente por fusível de ação rápida em série |
| Negativo da fonte DC ( / GND) | Borne 2 (V−) | — | Referência de terra do módulo; não confundir com o borne 4 |
| — | Borne 3 (M+) | Positivo do motor ou da carga | Comum ao borne 1 no chaveamento em lado negativo |
| — | Borne 4 (M−) | Negativo do motor ou da carga | Nó chaveado em ; não aterrar |
| Fusível (saída) | — | Positivo da fonte DC | Instalar o mais próximo possível do borne 1 |
| Relé ou contator (opcional) | — | Em série com o borne 1 | Permite corte total do circuito, já que o módulo não desliga em |
Procedimento de identificação dos terminais (com o módulo desenergizado):
- Ajuste o multímetro na função de continuidade (ou resistência) e confirme a leitura de ao unir as pontas de prova.
- Meça entre os quatro bornes, dois a dois. O par que apresentar continuidade franca () é o ramo comum: se a continuidade aparecer entre o borne 1 e o borne 3, o positivo é comum e o chaveamento é no lado negativo (configuração padrão); se aparecer entre o borne 2 e o borne 4, o negativo é comum e o chaveamento é no lado positivo.
- Meça entre o ramo comum e o quarto borne. A leitura deve ser alta ou aberta em um sentido e apresentar a queda do diodo Schottky ( a ) no outro, quando medida na função diodo.
- Identifique o borne positivo do capacitor eletrolítico: ele é contínuo ao terminal positivo de entrada, o que confirma a polaridade da fonte.
💡 Dica: antes de conectar o motor, faça a primeira energização com uma carga fictícia de baixo custo — uma lâmpada incandescente de ou um resistor de potência — e gire o potenciômetro lentamente. Se a intensidade variar de forma progressiva, a ligação está correta e a carga real pode ser conectada com segurança.
Cuidados e observações de segurança
⛔ Perigo: este módulo opera exclusivamente em corrente contínua de até . Nunca conecte a saída a rede elétrica de ou , mesmo com o potenciômetro no mínimo: a tensão de pico ultrapassa em mais de dez vezes o limite do capacitor e do MOSFET, provocando explosão do componente e risco de incêndio.
⛔ Perigo: não utilize o módulo em cargas cujo terminal negativo seja ligado ao chassi ou ao terra do sistema, como a carroceria de um veículo. Com o chaveamento no ramo negativo, essa ligação curto-circuita o MOSFET e coloca a carga permanentemente energizada.
⚠️ Atenção: em caso de travamento mecânico do motor, a corrente sobe até o limite da fonte em menos de um segundo. O fusível em série é obrigatório; sem ele, o MOSFET entra em curto e a falha pode propagar para a fonte.
⚠️ Atenção: o potenciômetro no mínimo não desliga a carga, pois o ciclo de trabalho mínimo é de . Para parada total e segura, instale um interruptor ou relé em série com o borne 1, ou corte a alimentação da fonte.
⚠️ Atenção: a tensão de saída em vazio não deve ser medida esperando no mínimo do potenciômetro. Em motores pequenos, o resíduo de pode ser suficiente para manter uma rotação lenta perceptível, o que é normal e não indica defeito.
💡 Dica: em instalações com cabos longos entre o módulo e o motor, acrescente um capacitor de (cerâmico) diretamente nos terminais do motor e um eletrolítico de junto aos bornes 1 e 2. Isso reduz a emissão de ruído eletromagnético conduzido e evita falsos disparos em sensores e microcontroladores próximos.
Como usar
Guia de operação passo a passo
- Verifique a identificação dos bornes com o multímetro, conforme o procedimento da seção anterior, e confirme a polaridade da fonte.
- Gire o potenciômetro totalmente no sentido anti-horário, deixando o ciclo de trabalho no mínimo (). Nunca energize o conjunto com o ajuste no máximo e o motor travado.
- Conecte a fonte aos bornes 1 e 2, respeitando a polaridade e mantendo o fusível no condutor positivo.
- Conecte a carga entre os bornes 3 e 4. Se a carga tiver polaridade definida, como um motor DC, observe que a inversão dos dois fios apenas inverte o sentido de rotação.
- Energize a fonte e observe o consumo em repouso, que deve ficar próximo de sem carga. Consumo muito superior indica inversão de polaridade ou curto na saída.
- Gire o potenciômetro lentamente no sentido horário e acompanhe o comportamento da carga. A resposta deve ser progressiva e praticamente linear em relação ao ângulo do eixo.
- Meça a tensão média entre os bornes 3 e 4 com o multímetro em escala DC. Em de ciclo de trabalho, a leitura será aproximadamente metade da tensão de entrada; um multímetro true RMS indicará cerca de da tensão de entrada, pois mede o valor eficaz e não a média.
- Verifique a temperatura do MOSFET e do borne após dez minutos de operação contínua. Aquecimento confortável ao toque (até ) é aceitável; acima disso, reduza a corrente ou instale dissipador e ventilação.
- Para desligar, gire o potenciômetro até o mínimo e, em seguida, corte a alimentação. Em sistemas com inércia elevada, aguarde a parada completa antes de inverter a ligação do motor.
Modos de operação e ajustes
O módulo possui um único modo de operação — chaveamento PWM com ciclo de trabalho ajustável — e não oferece jumpers, trimpots auxiliares ou menus. Ainda assim, três ajustes são possíveis em bancada:
- Ajuste de faixa por tensão de alimentação: a velocidade máxima do motor é proporcional à tensão de entrada. Alimentar um motor de com reduz a rotação máxima à metade, o que pode ser útil para limitar mecanicamente a velocidade de um mecanismo sem alterar o curso do potenciômetro.
- Substituição do potenciômetro por controle remoto de painel: o potenciômetro da placa pode ser dessoldado e substituído por um potenciômetro linear de mesmo valor, instalado no painel e ligado por três fios. Para percursos longos, use cabo blindado com a malha aterrada no borne 2, pois o nó do wiper é sensível a ruído capacitivo.
- Controle digital por potenciômetro digital: é possível substituir o potenciômetro por um CI de potenciômetro digital, como o X9C103 (, interface up/down), acionado por Arduino ou ESP32. Antes de adotar essa modificação, meça a corrente que circula pelo wiper do potenciômetro original; se for superior a , o potenciômetro digital não suporta o circuito e a alteração deve ser descartada.
⚠️ Atenção: qualquer modificação na placa invalida a garantia do produto e exige instrumentação adequada. Em ambiente industrial ou em aplicações críticas, prefira um controlador com interface de controle remoto nativa, em vez de adaptar o potenciômetro.
A frequência de é fixa e não deve ser alterada: ela resulta do compromisso entre ruído audível (praticamente inaudível nessa faixa), ondulação de corrente no motor e perdas de chaveamento no MOSFET. Reduzir a frequência aumenta a ondulação e o ruído; aumentá-la eleva a dissipação no chaveamento sem ganho mecânico relevante.
Exemplos práticos de uso
Exemplo 1: esteira de bancada com ajuste manual e proteção de travamento
Nesta aplicação, o módulo RB0522 faz o ajuste de velocidade, enquanto um Arduino Uno supervisiona a rotação por meio de um encoder óptico de 20 fendas acoplado ao eixo do motor. Se a rotação cair abaixo de um limite mínimo com o conjunto energizado — situação típica de travamento mecânico, correia rompida ou objeto preso —, o microcontrolador corta a alimentação por meio de um relé, protegendo o MOSFET e a fonte.
| Ligação | Pino do Arduino | Destino |
|---|---|---|
| Sensor óptico (saída em coletor aberto) | D2 | Entrada de interrupção externa |
| Módulo relé (bobina) | D7 | Comando do relé em série com o borne 1 do RB0522 |
| LED ou buzzer de alarme | D8 | Sinalização de falha |
| Alimentação do Arduino | 5V / GND | Fonte auxiliar, independente da fonte do motor |
/*
* ============================================================
* Supervisao de rotacao e protecao de travamento
* Modulo: Controlador de Velocidade PWM 5A 5-35VCC (RB0522)
* Placa de teste: Arduino Uno / Nano (ATmega328P, 5 V)
* ------------------------------------------------------------
* O modulo RB0522 NAO recebe sinal do Arduino: a velocidade
* continua sendo ajustada pelo potenciometro da placa.
* O microcontrolador apenas mede a rotacao, detecta travamento
* e corta a alimentacao do estagio de potencia por rele.
* ============================================================
*/
#include <Arduino.h>
// ----- Mapeamento de hardware -----
const uint8_t PINO_SENSOR = 2; // encoder optico: 1 pulso por fenda
const uint8_t PINO_RELE = 7; // rele que alimenta o borne V+ do modulo
const uint8_t PINO_ALARME = 8; // LED ou buzzer de falha
// ----- Parametros de processo -----
const uint8_t FENDAS_POR_VOLTA = 20; // disco do encoder
const uint16_t JANELA_MS = 500; // janela de medicao (0,5 s)
const uint16_t RPM_MINIMO = 60; // abaixo disso = travamento
const uint8_t FALHAS_PARA_TRIP = 3; // 3 janelas seguidas = desliga
// ----- Estado do sistema -----
volatile uint32_t pulsos = 0; // incrementado pela interrupcao
uint32_t pulsosAnteriores = 0;
uint32_t instanteAnterior = 0;
uint8_t falhasSeguidas = 0;
bool motorLigado = false;
float rpmAtual = 0.0;
// Rotina de interrupcao: deve ser curta e sem Serial
void contarPulso() {
pulsos++;
}
// Liga ou desliga o estagio de potencia
void comandarMotor(bool ligar) {
digitalWrite(PINO_RELE, ligar ? HIGH : LOW);
motorLigado = ligar;
falhasSeguidas = 0;
Serial.print(F("Motor: "));
Serial.println(ligar ? F("LIGADO") : F("DESLIGADO"));
}
// Calcula a rotacao a partir da quantidade de pulsos na janela
float calcularRpm(uint32_t novosPulsos) {
// rpm = (voltas na janela / duracao da janela em minutos)
float voltas = (float)novosPulsos / (float)FENDAS_POR_VOLTA;
float minutos = (float)JANELA_MS / 60000.0;
return voltas / minutos;
}
void setup() {
Serial.begin(115200);
pinMode(PINO_RELE, OUTPUT);
digitalWrite(PINO_RELE, LOW); // carga desligada no boot
pinMode(PINO_ALARME, OUTPUT);
digitalWrite(PINO_ALARME, LOW);
// Entrada com pull-up: o sensor optico fecha para GND
pinMode(PINO_SENSOR, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(PINO_SENSOR), contarPulso, FALLING);
instanteAnterior = millis();
Serial.println(F("Supervisor RB0522 pronto."));
Serial.println(F("Comandos: L = ligar | D = desligar | S = status"));
}
void loop() {
// ---- Comandos pela serial ----
if (Serial.available() > 0) {
char comando = toupper(Serial.read());
if (comando == 'L') comandarMotor(true);
if (comando == 'D') comandarMotor(false);
if (comando == 'S') {
Serial.print(F("RPM atual: "));
Serial.println(rpmAtual, 1);
}
}
// ---- Janela de medicao nao bloqueante ----
uint32_t agora = millis();
if (agora - instanteAnterior < JANELA_MS) return;
// Le e zera o contador de forma atomica
noInterrupts();
uint32_t total = pulsos;
interrupts();
uint32_t novos = total - pulsosAnteriores;
pulsosAnteriores = total;
instanteAnterior = agora;
rpmAtual = calcularRpm(novos);
// ---- Deteccao de travamento ----
if (motorLigado) {
if (rpmAtual < RPM_MINIMO) {
falhasSeguidas++;
} else {
falhasSeguidas = 0;
}
if (falhasSeguidas >= FALHAS_PARA_TRIP) {
comandarMotor(false); // corta a potencia
digitalWrite(PINO_ALARME, HIGH); // sinaliza a falha
Serial.println(F("FALHA: travamento detectado. Potencia cortada."));
}
} else {
digitalWrite(PINO_ALARME, LOW);
}
// ---- Telemetria ----
Serial.print(F("pulsos="));
Serial.print(novos);
Serial.print(F(" rpm="));
Serial.print(rpmAtual, 1);
Serial.print(F(" estado="));
Serial.println(motorLigado ? F("ON") : F("OFF"));
}
O ponto central do firmware é a separação de responsabilidades: o ajuste fino de velocidade permanece manual, no potenciômetro, e o microcontrolador atua como supervisor, sem interferir no estágio de chaveamento. A janela de com fendas por volta fornece resolução de por pulso, suficiente para detectar travamento em motores de bancada. O corte por relé, e não por comando ao módulo, é intencional: como o RB0522 não aceita sinal de enable, a única forma de interromper a energia com segurança é atuar em série com a alimentação.
Exemplo 2: supervisão remota com ESP32 e interface web
Neste segundo exemplo, um ESP32 publica a rotação medida em uma página web servida pelo próprio microcontrolador e permite ligar ou desligar o estágio de potência por meio de um relé. A arquitetura é útil em bancadas de teste e em máquinas didáticas, nas quais se deseja acompanhar o comportamento do conjunto sem instrumentos adicionais.
/*
* ============================================================
* Supervisao remota do Controlador PWM 5A 5-35VCC (RB0522)
* Placa: ESP32 DevKit V1 (Wi-Fi integrado)
* ------------------------------------------------------------
* GPIO 26 -> rele em serie com o borne V+ do modulo
* GPIO 27 -> encoder optico do eixo do motor
* O ajuste de velocidade continua sendo manual (potenciometro).
* ============================================================
*/
#include <WiFi.h>
#include <WebServer.h>
// ----- Credenciais da rede local -----
const char* SSID = "SUA_REDE";
const char* SENHA = "SUA_SENHA";
// ----- Mapeamento de hardware -----
const uint8_t PINO_RELE = 26;
const uint8_t PINO_ENCODER = 27;
// ----- Parametros de processo -----
const uint8_t FENDAS_POR_VOLTA = 20;
const uint16_t JANELA_MS = 500;
WebServer servidor(80);
volatile uint32_t pulsos = 0;
uint32_t pulsosAnteriores = 0;
uint32_t instanteAnterior = 0;
float rpmAtual = 0.0;
bool motorLigado = false;
// Rotina de interrupcao: precisa estar na IRAM no ESP32
void IRAM_ATTR contarPulso() {
pulsos++;
}
// Converte pulsos da janela em rotacao por minuto
float calcularRpm(uint32_t novosPulsos) {
float voltas = (float)novosPulsos / (float)FENDAS_POR_VOLTA;
float minutos = (float)JANELA_MS / 60000.0;
return voltas / minutos;
}
// Pagina principal: exibe rotacao e oferece os comandos
void paginaRaiz() {
String html;
html.reserve(700);
html += F("<!DOCTYPE html><html lang=\"pt-BR\"><head><meta charset=\"utf-8\">");
html += F("<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">");
html += F("<title>Supervisor RB0522</title></head>");
html += F("<body style=\"font-family:Roboto,Arial,sans-serif;margin:24px\">");
html += F("<h1>Controlador PWM RB0522</h1>");
html += F("<p>Rotacao medida: <strong>");
html += String(rpmAtual, 0);
html += F(" RPM</strong></p><p>Estado do rele: <strong>");
html += motorLigado ? F("LIGADO") : F("DESLIGADO");
html += F("</strong></p><p><a href=\"/motor?on=1\">Ligar</a> | ");
html += F("<a href=\"/motor?on=0\">Desligar</a></p>");
html += F("</body></html>");
servidor.send(200, "text/html; charset=utf-8", html);
}
// Aciona o rele de potencia conforme o parametro ?on=0|1
void comandoMotor() {
if (!servidor.hasArg("on")) {
servidor.send(400, "text/plain", "Parametro 'on' ausente");
return;
}
motorLigado = (servidor.arg("on") == "1");
digitalWrite(PINO_RELE, motorLigado ? HIGH : LOW);
servidor.sendHeader("Location", "/"); // volta para a pagina principal
servidor.send(303, "text/plain", "");
}
void setup() {
Serial.begin(115200);
pinMode(PINO_RELE, OUTPUT);
digitalWrite(PINO_RELE, LOW); // potencia desligada no boot
pinMode(PINO_ENCODER, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(PINO_ENCODER), contarPulso, FALLING);
WiFi.mode(WIFI_STA);
WiFi.begin(SSID, SENHA);
Serial.print(F("Conectando ao Wi-Fi"));
uint8_t tentativas = 0;
while (WiFi.status() != WL_CONNECTED && tentativas < 40) {
delay(500);
Serial.print('.');
tentativas++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println();
Serial.print(F("Endereco IP: "));
Serial.println(WiFi.localIP());
} else {
Serial.println(F("\nFalha na conexao. Verifique SSID e senha."));
}
servidor.on("/", paginaRaiz);
servidor.on("/motor", comandoMotor);
servidor.begin();
instanteAnterior = millis();
}
void loop() {
servidor.handleClient(); // atende requisicoes HTTP
// Atualiza a rotacao a cada 500 ms, sem bloquear o servidor
uint32_t agora = millis();
if (agora - instanteAnterior < JANELA_MS) return;
noInterrupts();
uint32_t total = pulsos;
interrupts();
uint32_t novos = total - pulsosAnteriores;
pulsosAnteriores = total;
instanteAnterior = agora;
rpmAtual = calcularRpm(novos);
Serial.print(F("rpm="));
Serial.print(rpmAtual, 1);
Serial.print(F(" rele="));
Serial.println(motorLigado ? F("ON") : F("OFF"));
}
O servidor é assíncrono em relação à medição: servidor.handleClient() roda a cada iteração do laço e a atualização da rotação ocorre apenas quando a janela de expira, sem delay() bloqueante. O relé é comandado por um parâmetro de URL (/motor?on=1), o que mantém a interface compatível com qualquer navegador, inclusive de celular, sem a necessidade de bibliotecas JavaScript.
💡 Dica: alimente o ESP32 por uma fonte separada da usada no motor. Compartilhar a mesma fonte submete o regulador da placa a quedas de tensão durante a partida do motor e provoca reinicializações por subtensão — sintoma que aparece na serial como
rst:0x1 (POWERON_RESET).
Projetos
O acionamento de cargas DC por PWM é a base de diversos projetos práticos publicados no blog da RoboBuilders. Para levar a supervisão do RB0522 ao nível de aplicação completa, com interface web, telemetria e comando remoto, consulte:
- Painel Web de Diagnóstico para ESP32: projeto de código aberto com servidor web embarcado, no qual os canais PWM do ESP32 podem ser usados para comandar um estágio de potência externo e monitorar variáveis do sistema em tempo real pelo navegador — arquitetura que se integra diretamente ao exemplo 2 deste manual.
- CI L293D Ponte H Dupla para Motores DC: manual técnico do estágio de acionamento bidirecional, indicado quando a aplicação exige inversão de sentido de rotação, recurso que o RB0522 não oferece por ser um chaveador unidirecional.
Conclusão
Neste manual técnico do Controlador de Velocidade PWM 5A 5-35VCC (RB0522), foram apresentados os fundamentos elétricos, o mapeamento dos terminais e os procedimentos de instalação e operação do módulo:
- Arquitetura e princípio de funcionamento: chaveamento série por MOSFET de canal N em DPAK, operando a fixos, com ciclo de trabalho ajustável entre e por potenciômetro rotativo e diodo Schottky SS34 integrado para absorver a energia da carga indutiva.
- Limites elétricos e térmicos: operação de a , corrente nominal de sem dissipador, pico de com ventilação forçada e envelope máximo de , com consumo de repouso de apenas .
- Pinout e ligação: quatro bornes de potência em bloco único, com entrada nos bornes 1 e 2 e carga nos bornes 3 e 4, além do procedimento de identificação por continuidade que elimina o risco de inversão entre lotes.
- Segurança operacional: ausência de fusível e de proteção de polaridade, chaveamento no ramo negativo e impossibilidade de corte total pelo potenciômetro — três características que exigem proteção externa e atenção ao tipo de carga utilizada.
- Operação e supervisão: resposta linear entre ângulo do potenciômetro e tensão média aplicada, distinção entre valor médio e valor eficaz na medição, e dois firmwares comentados que adicionam detecção de travamento e interface web sem alterar o estágio de potência.
O RB0522 é, portanto, um estágio de potência simples e eficiente para ajuste manual de velocidade em cargas DC de pequeno e médio porte. Seu uso seguro depende menos do módulo e mais do dimensionamento externo: fonte adequada, fusível em série, ventilação acima de e supervisão de rotação em aplicações sujeitas a travamento mecânico.
Solução de problemas
Olá! Sou o assistente técnico da RoboBuilders. Descreva seu problema com o Controlador de Velocidade PWM 2A 5-35VCC: 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.