Search Code

H-Bridge 1: Construirea unui driver de motor H-bridge pe o placă de testare folosind tranzistori Darlington TIP120 și TIP125

H-Bridge 1: Construirea unui driver de motor H-bridge pe o placă de testare folosind tranzistori Darlington TIP120 și TIP125

Acest tutorial te va ghida în construirea unui driver de motor H-bridge folosind tranzistoare Darlington TIP120 și TIP125 pe o placă de testare. Această configurație este ideală pentru controlul direcției și vitezei unui motor CC, ceea ce este esențial pentru diverse proiecte de robotică și automatizare. La finalul acestui tutorial, vei putea controla un motor cu rotații atât în sensul acelor de ceasornic, cât și în sens invers, împreună cu modularea vitezei.

În acest ghid, vom utiliza un Arduino pentru a controla motorul. Configurația H-bridge permite inversarea direcției motorului prin controlul semnalelor de intrare trimise către tranzistori. Acesta este un aspect crucial pentru multe aplicații, cum ar fi brațele robotice sau roboții mobili care necesită un control precis al motorului. Pentru o clarificare suplimentară, vă rugăm să consultați videoclipul (în videoclip la :00).

Hardware explicat

Principalele componente ale acestui proiect includ tranzistoarele TIP120 și TIP125, care sunt folosite ca comutatoare pentru a controla funcționarea motorului. TIP120 este un tranzistor Darlington NPN, iar TIP125 este un tranzistor Darlington PNP. Împreună, ele formează configurația H-bridge, permițându-ne să controlăm direcția curentului care trece prin motor.

În această configurație, semnalul PWM (Modulația lățimii impulsului) este folosit pentru a controla viteza motorului. Transistoarele se comută rapid între on și off pentru a crea o tensiune medie care determină viteza motorului. Pinii EN activează sau dezactivează transistoarele, asigurându-se că motorul funcționează doar atunci când este necesar.

Detalii fișă tehnică

Producător Texas Instruments
Număr de parte TIP120
Tensiune logică/IO 5-15 V
Tensiune de alimentare 60 V
Curent de ieșire (pe canal) 5 A
Curent de vârf (pe canal) 30 A
Ghid pentru frecvența PWM 1 kHz max
Praguri logici de intrare 2.5 V (mare), 0.8 V (mică)
Cădere de tensiune / RDS(on)/ saturație 1.2 V
Limite termice 175 °C
Pachet TO-220
Note / variante Disponibil ca TIP125

  • Asigurați o disipare adecvată a căldurii pentru aplicații cu curent mare.
  • Utilizați semnale PWM pentru a controla eficient viteza motorului.
  • Verifica orientarea tranzistorului pentru a preveni deteriorarea circuitului.
  • Acordați atenție la valorile de tensiune pentru a evita depășirea limitelor.
  • Utilizați condensatoare de decuplare pentru a stabiliza alimentarea cu tensiune.

Instrucțiuni de cablare

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

Pentru a conecta driverul de motor H-bridge, mai întâi conectați pinul VCC de la TIP120 și TIP125 la sursa de 5V de pe Arduino-ul dumneavoastră. Conectați pinul GND la masă. Pinurile de control PWM,PWM1șiPWM2, ar trebui să fie conectate la pini digitali 9 și 3 pe Arduino, respectiv. Pinii de activare,EN1șiEN2se va conecta la pini digitali 8 și 2.

Apoi, conectați terminalele motorului la pini colectori ai tranzistoarelor TIP120 și TIP125. Asigurați-vă că motorul este compatibil cu sursa dumneavoastră de alimentare. Dacă folosiți componente suplimentare, cum ar fi diode pentru protecția la revenire, plasați-le în paralel cu terminalele motorului pentru a preveni deteriorarea din cauza EMF-ului invers. Dacă utilizați modele diferite de Arduino, verificați hărțile pinilor pentru semnalele PWM și de activare.

Exemple de cod și ghiduri

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

În configurare, definim pini de control pentru semnalele PWM și pini de activare.pinModefuncția setează acești pini ca ieșire pentru a controla tranzistorii care conduc motorul.

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

Această funcție de buclă demonstrează funcționarea motorului. Mai întâi, pornește motorul în direcția orară la 50% din viteză timp de 5 secunde, apoi se oprește timp de 2 secunde.Motorfuncția este apelată cu parametrii de direcție și viteză, controlând comportamentul motorului pe baza acestor intrări.

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
  }
}

TheMotorfuncția ia o direcție booleană și o viteză întreagă. Aceasta mapează procentajul de viteză la o valoare PWM și foloseșteanalogWritepentru a seta pinul corespunzător pentru controlul motorului. Această funcție este crucială pentru a schimba direcția și viteza motorului în mod dinamic.

Demonstrație / Ce să aștepți

După finalizarea cablării și încărcarea codului, ar trebui să observați motorul rotind în sensul acelor de ceasornic la 50% din viteză timp de 5 secunde, urmat de o oprire. După o întârziere, va roti în sens invers acelor de ceasornic la 80% din viteză timp de încă 5 secunde. Capcanele comune includ cablarea incorectă și depășirea valorilor de tensiune, care pot deteriora tranzistoarele sau motorul.

Marcaje temporal video

  • 00:00- Introducere
  • 01:30- Prezentare generală a hardware-ului
  • 03:15- Instrucțiuni de cablare
  • 05:00- Prezentare cod
  • 08:45- Demonstrație

Imagini

H-Bridge Project with TIP120 TIP125 Wiring diagram
H-Bridge Project with TIP120 TIP125 Wiring diagram
Schematic for TIP120, TIP125 H-bridge
schematic for TIP120 TIP125 H-Bridge
H-Bridge Project with TIP120 TIP125 3
H-Bridge Project with 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
Limba: 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); 
  }
 
}

Fișiere📁

Gerber files

  • H-Bridge-TIP120-TIP125 Gerber file for PCBX
    Includes H-Bridge-TIP120-TIP125.zip, H-Bridge-TIP120-TIP125-BOM.xls and H-Bridge-TIP120-TIP125-coor.xls files to place order easily.
    H-Bridge-TIP120-TIP125 Gerber file.zip 0.05 MB