Código de Pesquisa

H-Bridge 1: Construindo um driver de motor H-bridge em uma placa de ensaio usando transistores Darlington TIP120 e TIP125

H-Bridge 1: Construindo um driver de motor H-bridge em uma placa de ensaio usando transistores Darlington TIP120 e TIP125

Este tutorial irá guiá-lo na construção de um driver de motor H-bridge usando transistores Darlington TIP120 e TIP125 em uma placa de ensaio. Esta configuração é ideal para controlar a direção e a velocidade de um motor DC, o que é essencial para vários projetos de robótica e automação. Ao final deste tutorial, você será capaz de controlar um motor com rotações tanto no sentido horário quanto anti-horário, juntamente com a modulação de velocidade.

Neste guia, utilizaremos um Arduino para controlar o motor. A configuração em H permite inverter a direção do motor controlando os sinais de entrada enviados aos transistores. Este é um aspecto crucial para muitas aplicações, como braços robóticos ou robôs móveis que requerem controle preciso do motor. Para mais esclarecimentos, consulte o vídeo (no vídeo em 00:00).

Hardware Explicado

Os principais componentes deste projeto incluem os transistores TIP120 e TIP125, que são usados como interruptores para controlar a operação do motor. O TIP120 é um transistor Darlington NPN, e o TIP125 é um transistor Darlington PNP. Juntos, eles formam a configuração em H, permitindo-nos controlar a direção da corrente que flui através do motor.

Neste arranjo, o sinal PWM (Modulação por Largura de Pulso) é utilizado para controlar a velocidade do motor. Os transistores ligam e desligam rapidamente para criar uma tensão média que determina a velocidade do motor. Os pinos EN ativam ou desativam os transistores, garantindo que o motor opere apenas quando necessário.

Detalhes da Ficha Técnica

Fabricante Texas Instruments
Número da peça TIP120
Tensão de lógica/IO 5-15 V
Tensão de alimentação 60 V
Corrente de saída (por canal) 5 A
Corrente de pico (por canal) 30 A
Orientação sobre a frequência PWM 1 kHz máx
Limiares de lógica de entrada 2,5 V (alto), 0,8 V (baixo)
Queda de tensão / RDS(on)saturação 1,2 V
Limites térmicos 175 °C
Pacote TO-220
Notas / variantes Disponível como TIP125

  • Garanta um dissipador de calor adequado para aplicações de alta corrente.
  • Use sinais PWM para controlar a velocidade do motor de forma eficaz.
  • Verifique a orientação do transistor para evitar danos ao circuito.
  • Preste atenção às classificações de tensão para evitar exceder os limites.
  • Use capacitores de desacoplamento para estabilizar a fonte de tensão.

Instruções de Fiação

555 Relay Timer of 20A 0-10 minutest on breadboard wiring
555 Relay Timer of 20A 0-10 minutest on breadboard wiring

Para conectar o driver de motor H-bridge, primeiro conecte o pino VCC do TIP120 e TIP125 à fonte de 5V no seu Arduino. Conecte o pino GND ao terra. Os pinos de controle PWM,PWM1ePWM2, devem ser conectados aos pinos digitais 9 e 3 no Arduino, respectivamente. Os pinos de habilitação,EN1eEN2, irá conectar aos pinos digitais 8 e 2.

Em seguida, conecte os terminais do seu motor aos pinos do coletor dos transistores TIP120 e TIP125. Certifique-se de que o motor é compatível com sua fonte de alimentação. Se estiver usando componentes adicionais, como diodos para proteção contra retorno, coloque-os em paralelo com os terminais do motor para evitar danos devido ao back EMF. Se você estiver usando diferentes modelos de Arduino, verifique os mapeamentos dos pinos para os sinais PWM e de habilitação.

Exemplos de Código e Passo a Passo

const int PWM1= 9; //pin with ~
const int EN1= 8;
const int PWM2= 3; //pin with ~
const int EN2= 2;

Na configuração, definimos os pinos de controle para os sinais PWM e os pinos de habilitação. OpinModea função define esses pinos como saída para controlar os transistores que acionam o motor.

void loop() {
  Motor(CW, 50); //in CW at 50% speed
  delay(5000);
  stop(); // stops the motor
  delay(2000);
}

Esta função de loop demonstra a operação do motor. Primeiro, ela faz o motor funcionar na direção horária a 50% da velocidade por 5 segundos, depois para por 2 segundos. OMotora função é chamada com parâmetros de direção e velocidade, controlando o comportamento do motor com base nessas entradas.

void Motor(boolean direction, int speed=0) {
  int speedPWM = map(speed, 0, 100, 0, 255);
  if(direction) {
    analogWrite(PWM1, speedPWM); // Set speed for CW
  } else {
    analogWrite(PWM2, speedPWM); // Set speed for CCW
  }
}

OMotora função recebe uma direção booleana e uma velocidade inteira. Ela mapeia a porcentagem de velocidade para um valor PWM e usaanalogWritedefinir o pino apropriado para o controle do motor. Esta função é crucial para alterar a direção e a velocidade do motor dinamicamente.

Demonstração / O que Esperar

Após a conclusão da fiação e o upload do código, você deve observar o motor girando no sentido horário a 50% da velocidade por 5 segundos, seguido de uma parada. Após um atraso, ele girará no sentido anti-horário a 80% da velocidade por mais 5 segundos. Armadilhas comuns incluem fiação incorreta e exceder as classificações de voltagem, o que pode danificar os transistores ou o motor.

Marcas de Tempo do Vídeo

  • 00:00- Introdução
  • 01:30- Visão Geral do Hardware
  • 03:15- Instruções de Fiação
  • 05:00- Demonstração de Código
  • 08:45- Demonstração

Imagens

Projeto de Ponte H com diagrama de fiação TIP120 TIP125
Projeto de Ponte H com diagrama de fiação TIP120 TIP125
esquemático para TIP120 TIP125 Ponte H
esquemático para TIP120 TIP125 Ponte H
Projeto H-Bridge com TIP120 TIP125 3
Projeto H-Bridge com TIP120 TIP125 3
555 Relay Timer of 20A 0-10 minutest on breadboard wiring
555 Relay Timer of 20A 0-10 minutest on breadboard wiring
371-Arduino code for H-Bridge Project with TIP120/TIP125 Transistors
Idioma: C++
/*
This code is for:
Building an H-Bridge Motor driver using TIP120 and TIP125 on a breadboard and full PCB Design with Arduino
https://youtu.be/6ugrL5ziPn8

This code has been downloaded from Robojax.com
You can access the resources page and download the Gerber file to produce
the PCB or a fully assembled PCB from PCBX.com
Visit https://robojax.com/tutorial_view.php?id=392
to control a DC motor using TIP120 and TIP125 as an
H bridge
Written by Ahmad Shamshiri
26 Aug 2024
*/
const int PWM1= 9;//pin with ~
const int EN1= 8;

const int PWM2= 3;//pin with ~
const int EN2= 2;

const boolean CW =1;
const boolean CCW =0;

void Motor(boolean, int);//prototype
void brake();//prototype

void setup() {
  Serial.begin(9600);
  Serial.println("TIP120 H Bridge by Robojax");
  pinMode(PWM1, OUTPUT);
  pinMode(EN1, OUTPUT);

  pinMode(PWM2, OUTPUT);
  pinMode(EN2, OUTPUT);   

}

void loop() {
  Motor(CW, 50);//in CW at 50% speed
  delay(5000);

  stop();
  delay(2000);

  Motor(CCW, 80);//in CCW at 80% speed
  delay(5000);

  brake();
  delay(2000);

  for (int i=0; i<=100; i++)
  {
   Motor(CCW, i);
   delay(25);
  }
    delay(5000);

  brake();
  delay(2000);
}

/*
stop()
stops the output
*/
void stop()
{
    Serial.println ("=== Stop"); 
  digitalWrite(PWM1, LOW);
  digitalWrite(EN1, LOW);
  digitalWrite(PWM2, LOW);
  digitalWrite(EN2, LOW);  
}

/*
brake()
*/
void brake()
{
    Serial.println ("=== Brake"); 
  digitalWrite(PWM1, HIGH);
  digitalWrite(EN1, LOW);
  digitalWrite(PWM2, HIGH);
  digitalWrite(EN2, LOW);   
}

void Motor(boolean direction, int speed=0)
{
  int speedPWM = map(speed, 0, 100, 0, 255);
  Serial.print("Speed: "); Serial.print (speedPWM);
  Serial.print ("(");Serial.print (speed);Serial.print ("%)");


  if(direction){
    Serial.print(" dir: ");Serial.println ("CW");   
      analogWrite(PWM1, speedPWM);
    digitalWrite(EN1, HIGH);
    digitalWrite(PWM2, LOW);
    digitalWrite(EN2, LOW); 
  }else{
    Serial.print(" dir: ");Serial.println ("CCW");  
    digitalWrite(PWM1, LOW);
    digitalWrite(EN1, LOW);    
      analogWrite(PWM2, speedPWM);
    digitalWrite(EN2, HIGH); 
  }
 
}

Arquivos📁

Outros arquivos

  • Arquivo Gerber H-Bridge-TIP120-TIP125 para PCBX
    Inclui os arquivos H-Bridge-TIP120-TIP125.zip, H-Bridge-TIP120-TIP125-BOM.xls e H-Bridge-TIP120-TIP125-coor.xls para facilitar o pedido.
    H-Bridge-TIP120-TIP125 Gerber file.zip 0.05 MB