Diodo 1N4007 no Motor DC: Como Proteger o TIP120 com ESP32
Controle de Motor DC com ESP32, TIP120 e Potenciômetro: eletromagnetismo na prática
Introdução
Um motor de corrente contínua é um excelente exemplo para entender como a eletricidade e o eletromagnetismo trabalham juntos.
Neste projeto, o ESP32 controla a velocidade de um motor DC de 6 V utilizando um potenciômetro, um transistor TIP120 e um sinal PWM.
A ideia é simples:
Potenciômetro → ESP32 → PWM → TIP120 → Motor DC
Apesar de o circuito ser simples, ele permite estudar vários conceitos importantes de eletrônica: campo magnético, força eletromagnética, corrente elétrica, transistor, PWM, ADC e controle de potência.
1. O que é o eletromagnetismo?
O funcionamento do motor elétrico está diretamente relacionado ao eletromagnetismo.
Quando uma corrente elétrica passa por um fio, ela produz um campo magnético ao redor desse condutor.
Se enrolarmos o fio formando uma bobina, os campos magnéticos produzidos pelas várias voltas se somam. Dessa forma, podemos produzir um campo magnético muito mais intenso.
No motor DC, temos basicamente:
ímãs permanentes ou campo magnético;
bobinas;
corrente elétrica;
partes mecânicas móveis.
Quando a corrente passa pelas bobinas do motor, ocorre uma interação entre os campos magnéticos. Essa interação produz uma força que faz o rotor girar.
Portanto, podemos resumir:
Corrente elétrica → campo magnético → força eletromagnética → movimento
É justamente esse princípio que transforma energia elétrica em movimento mecânico.
2. Como o eletromagnetismo atua no Motor DIY de Corrente Contínua?
No Motor DIY de Corrente Contínua, o princípio é o mesmo de um motor comercial, embora a construção possa ser muito mais simples.
Imagine uma bobina de fio posicionada dentro de um campo magnético.
Quando uma corrente elétrica passa pela bobina, ela cria seu próprio campo magnético. Esse campo interage com o campo magnético produzido pelos ímãs.
Essa interação gera uma força sobre os condutores da bobina.
Como a bobina está montada de maneira que possa girar, essa força produz torque, fazendo o conjunto entrar em rotação.
Durante a rotação, é necessário continuar alterando o sentido da corrente nas bobinas para que o torque continue apontando na direção correta.
Nos motores DC comerciais isso é realizado pelo comutador e pelas escovas, ou por circuitos eletrônicos nos motores sem escovas.
Em resumo
O motor não gira simplesmente porque "recebe tensão".
Ele gira porque a corrente elétrica produz campos magnéticos que interagem e geram torque.
Essa é uma das demonstrações mais interessantes do eletromagnetismo na prática.
3. O que acontece quando controlamos a velocidade?
Neste projeto, não estamos simplesmente ligando e desligando o motor manualmente.
O ESP32 utiliza uma técnica chamada PWM — Pulse Width Modulation, ou modulação por largura de pulso.
O PWM faz o sinal alternar rapidamente entre ligado e desligado.
Por exemplo:
PWM baixo:
ON ──
OFF ───────────────
PWM alto:
ON ──────────
OFF ─────
O que muda é o tempo durante o qual o sinal permanece ligado.
Esse tempo é chamado de duty cycle.
Com um PWM de 8 bits, o ESP32 utiliza valores de:
0 a 255
Assim:
0→ 0% de duty cycle;64→ aproximadamente 25%;128→ aproximadamente 50%;192→ aproximadamente 75%;255→ 100%.
Quanto maior o duty cycle, maior é a energia média entregue ao motor.
Consequentemente, o motor tende a aumentar sua velocidade.
4. Por que utilizar o TIP120?
O GPIO do ESP32 é utilizado para gerar o sinal de controle, mas ele não deve alimentar diretamente o motor.
Um motor DC pode consumir uma corrente muito maior do que um GPIO do ESP32 pode fornecer com segurança.
É aí que entra o TIP120.
O TIP120 é um transistor do tipo Darlington NPN.
Ele funciona como uma espécie de chave eletrônica controlada pelo ESP32.
O ESP32 envia um pequeno sinal para a base do transistor e o TIP120 permite controlar uma corrente maior através do motor.
Podemos visualizar o princípio assim:
ESP32
│
│ PWM
▼
Base do TIP120
│
▼
TIP120
│
▼
Motor DC
│
▼
GND
O transistor, portanto, faz a interface entre o circuito de controle e o circuito de potência.
5. Como o TIP120 funciona no projeto?
O TIP120 possui três terminais:
Base (B)
Coletor (C)
Emissor (E)
A base recebe o sinal proveniente do ESP32.
Quando o ESP32 envia um nível adequado para a base, o transistor permite a passagem de corrente entre coletor e emissor.
Assim, podemos controlar a corrente que passa pelo motor.
No projeto, o PWM chega à base:
ESP32 GPIO25
│
│ PWM
▼
Base
TIP120
C │
│
Motor
│
6 V
O TIP120 funciona, portanto, como um estágio de acionamento de potência.
Um detalhe importante
O TIP120 é um transistor Darlington e possui uma queda de tensão relativamente elevada quando está conduzindo.
Isso significa que ele pode dissipar uma quantidade considerável de potência, principalmente quando a corrente do motor é alta.
Por isso, dependendo do motor utilizado, pode ser necessário utilizar dissipador de calor.
Para projetos novos, um MOSFET lógico adequado normalmente é uma alternativa mais eficiente para controlar motores.
6. E o diodo 1N4007?
O motor é uma carga indutiva.
Quando uma corrente passa pelas bobinas do motor, é criado um campo magnético.
Quando essa corrente é interrompida rapidamente, o campo magnético entra em colapso e pode produzir uma tensão de retorno, conhecida como força contraeletromotriz ou tensão induzida de retorno.
Essa tensão pode atingir valores elevados e causar problemas no transistor.
Por isso utilizamos um diodo de proteção, conectado em paralelo com o motor e polarizado para permanecer normalmente desligado.
Quando ocorre o pico de tensão provocado pela interrupção da corrente, o diodo fornece um caminho para essa energia.
O diodo atua como uma proteção contra os picos gerados pela característica indutiva do motor.
7. O potenciômetro
O potenciômetro de 10 kΩ funciona como um divisor de tensão.
Ele possui três terminais:
uma extremidade no 3,3 V;
outra extremidade no GND;
terminal central ligado ao ADC do ESP32.
Ao girar o eixo do potenciômetro, a tensão presente no terminal central varia.
Por exemplo:
3,3 V
│
│
[ POTENCIÔMETRO ]
│
├──────► GPIO34
│
GND
O ESP32 mede essa tensão através do seu ADC — conversor analógico-digital.
No código, essa leitura é realizada por:
int valorPot = analogRead(PINO_POTENCIOMETRO);
O resultado representa a posição do potenciômetro.
8. Como o ESP32 transforma a posição do potenciômetro em velocidade?
O ADC fornece uma leitura que pode variar aproximadamente de:
0 a 4095
Mas o PWM configurado no projeto utiliza 8 bits, portanto precisa de valores entre:
0 e 255
É por isso que o código utiliza:
int valorPWM = map(valorPot, 0, 4095, 0, 255);
Essa linha faz uma conversão de escala.
Podemos representar:
ADC PWM
0 ───────────────────► 0
1024 ───────────────────► 64
2048 ───────────────────► 128
3072 ───────────────────► 192
4095 ───────────────────► 255
Assim, quanto mais o potenciômetro é girado, maior será o valor enviado ao PWM.
9. Entendendo as principais partes do código
// ============================================================ // INÍCIO DO CÓDIGO // ============================================================ /* ============================================================ MOTOR DC 6V + ESP32 + TIP120 + POTENCIÔMETRO ============================================================ Projeto: Controle da velocidade de um motor DC com ESP32 Componentes: - ESP32 - Motor DC 6V - TIP120 - Potenciômetro de 10K - Diodo 1N4007 - Resistor para a base do TIP120 - Fonte externa de 6V para o motor Funcionamento: Potenciômetro ↓ Entrada ADC do ESP32 ↓ PWM ↓ TIP120 ↓ Motor DC Ao girar o potenciômetro, o ESP32 lê sua posição e altera o PWM enviado ao TIP120. IMPORTANTE: O motor NÃO deve ser alimentado diretamente pelo ESP32. Utilize uma fonte externa adequada para o motor. O GND da fonte do motor deve estar conectado ao GND do ESP32. ============================================================ */ // -------------------- PINOS -------------------- #define PINO_POTENCIOMETRO 34 // Entrada analógica do potenciômetro #define PINO_MOTOR 25 // Saída PWM para o TIP120 // -------------------- CONFIGURAÇÃO PWM -------------------- #define FREQUENCIA_PWM 5000 // Frequência do PWM: 5 kHz #define RESOLUCAO_PWM 8 // Resolução: 8 bits (0 a 255) // -------------------- SETUP -------------------- void setup() { // Configura o PWM no pino que controla o TIP120 ledcAttach(PINO_MOTOR, FREQUENCIA_PWM, RESOLUCAO_PWM); // Começa com o motor desligado ledcWrite(PINO_MOTOR, 0); } // -------------------- LOOP -------------------- void loop() { // Lê o valor do potenciômetro int valorPot = analogRead(PINO_POTENCIOMETRO); // Converte a leitura do ADC para o valor do PWM int valorPWM = map(valorPot, 0, 4095, 0, 255); // Envia o PWM para o TIP120 ledcWrite(PINO_MOTOR, valorPWM); // Pequena pausa para estabilizar a leitura delay(10); } // ============================================================ // FIM DO CÓDIGO // ============================================================
Definição dos pinos
#define PINO_POTENCIOMETRO 34
#define PINO_MOTOR 25
Aqui são definidos os GPIOs utilizados.
O:
GPIO34
é utilizado para ler o potenciômetro.
O:
GPIO25
gera o PWM que controla o TIP120.
Configuração da frequência PWM
#define FREQUENCIA_PWM 5000
Aqui definimos uma frequência de:
5 kHz
Isso significa que o sinal PWM realiza milhares de ciclos por segundo.
O motor não precisa receber uma tensão analógica verdadeira. Ele recebe pulsos rápidos, e o que interessa para o controle de potência é principalmente a proporção entre o tempo ligado e desligado.
Resolução do PWM
#define RESOLUCAO_PWM 8
A resolução de 8 bits permite utilizar:
0 até 255
Quanto maior a resolução, maior a quantidade de níveis disponíveis para controlar o duty cycle.
Configuração do PWM
ledcAttach(PINO_MOTOR, FREQUENCIA_PWM, RESOLUCAO_PWM);
Essa instrução configura o PWM do ESP32.
Ela informa:
qual pino será utilizado;
qual será a frequência;
qual será a resolução.
Neste caso:
GPIO25
5 kHz
8 bits
Motor inicialmente desligado
ledcWrite(PINO_MOTOR, 0);
O valor 0 significa que o duty cycle começa em zero.
Portanto, ao iniciar o programa, o motor permanece desligado.
Leitura do potenciômetro
int valorPot = analogRead(PINO_POTENCIOMETRO);
Aqui o ESP32 realiza uma conversão da tensão presente no GPIO34 para um valor numérico.
Esse número representa a posição do potenciômetro.
Conversão para PWM
int valorPWM = map(valorPot, 0, 4095, 0, 255);
Essa é uma das partes mais importantes do programa.
Ela cria uma relação direta:
posição do potenciômetro → valor do PWM
Envio do PWM
ledcWrite(PINO_MOTOR, valorPWM);
Agora o valor calculado é enviado ao PWM do GPIO25.
Esse sinal controla a base do TIP120 através do resistor.
O transistor controla a corrente do motor.
Dessa forma:
potenciômetro → ADC → PWM → TIP120 → motor
Pequena pausa
delay(10);
O programa espera 10 milissegundos antes de realizar uma nova leitura.
Isso evita que o programa fique realizando leituras extremamente rápidas sem necessidade e ajuda a deixar o controle mais estável.
10. O que acontece eletricamente quando aumentamos o PWM?
Quando aumentamos o duty cycle, o motor recebe pulsos de energia durante uma parcela maior do tempo.
Por exemplo, considere aproximadamente:
25%
ON ██
OFF ██████
50%
ON ████
OFF ████
75%
ON ██████
OFF ██
100%
ON ████████
OFF
Isso altera a energia média entregue ao motor.
Entretanto, a relação entre PWM e velocidade não é perfeitamente linear.
O motor possui características próprias, como resistência dos enrolamentos, força contraeletromotriz, atrito e carga mecânica.
Além disso, existe uma região inicial em que o motor pode receber PWM, mas ainda não possuir torque suficiente para começar a girar.
11. O motor também gera eletricidade
Um detalhe muito interessante é que o motor DC pode funcionar também como gerador.
Quando aplicamos energia elétrica:
energia elétrica → movimento
Mas, quando giramos o motor externamente:
movimento → energia elétrica
Isso acontece porque o movimento dos condutores dentro do campo magnético produz uma tensão elétrica.
Durante o funcionamento normal, o motor também gera uma tensão chamada força contraeletromotriz (FCEM).
Essa tensão se opõe à tensão aplicada e ajuda a determinar a corrente que circula pelo motor.
Por isso, um motor DC é um excelente exemplo prático da relação entre eletricidade, magnetismo e movimento.
12. Cuidados importantes na montagem
O motor deve utilizar uma fonte externa de 6 V adequada à corrente exigida pelo motor.
Não devemos alimentar o motor diretamente pelo ESP32.
Além disso:
GND da fonte do motor e GND do ESP32 devem estar em comum, para que o sinal de controle tenha uma referência elétrica correta.
Também é importante utilizar:
resistor entre o GPIO e a base do TIP120;
diodo de proteção em paralelo com o motor;
fonte adequada para o motor;
dissipação de calor para o TIP120 quando necessário.
Outro ponto importante é lembrar que o GPIO34 é somente entrada no ESP32 clássico, o que é perfeito para o potenciômetro.
13. O que este projeto realmente demonstra?
Este pequeno projeto reúne vários conceitos importantes de eletrônica:
1. Potenciômetro
Transforma a posição mecânica em uma tensão variável.
2. ADC
O ESP32 transforma essa tensão em um número.
3. PWM
O ESP32 transforma esse número em um sinal de controle.
4. Transistor
O TIP120 permite controlar uma carga que exige mais corrente do que o GPIO deve fornecer.
5. Motor
A corrente elétrica produz campos magnéticos que interagem e geram torque.
6. Diodo
Protege o circuito contra os picos produzidos pela carga indutiva.
Assim, um simples controle de velocidade de motor acaba se transformando em uma verdadeira aula prática de eletrônica, eletromagnetismo e programação.
Conclusão
O projeto mostra de maneira bastante visual como um comando eletrônico pode controlar um movimento mecânico.
Ao girar o potenciômetro, o ESP32 mede uma tensão através do ADC. Essa leitura é convertida em um valor de PWM. O PWM controla o TIP120, que por sua vez controla a corrente fornecida ao motor pela fonte externa.
No interior do motor, a corrente elétrica produz campos magnéticos. A interação desses campos gera torque e transforma a energia elétrica em movimento.
Portanto, podemos resumir todo o projeto em uma única sequência:
Movimento do potenciômetro → tensão elétrica → ADC → processamento → PWM → transistor → corrente no motor → campo magnético → força eletromagnética → rotação.
É justamente essa cadeia que torna o projeto interessante para demonstrar, na prática, como programação, eletrônica e eletromagnetismo podem trabalhar juntos.
🔧 Acompanhe o RodRobot
Projetos maker com ESP32, Arduino, eletrônica e programação.
RodRobot – Projetos maker, eletrônica e programação na prática.




Comentários
Postar um comentário