H-Bridge 1: Dhisida darawalka mishiinka H-bridge ee ku yaal breadboard adigoo isticmaalaya TIP120 iyo TIP125 transistors Darlington
Casharkanani waxay ku hagi doontaa dhisidda darawalka matoorka H-bridge adigoo isticmaalaya TIP120 iyo TIP125 transistors Darlington ah oo ku yaal breadboard. Qalabkan ayaa ku habboon in lagu xakameeyo jihada iyo xawaaraha matoorka DC, taas oo muhiim u ah mashaariicda kala duwan ee robotics iyo otomaatiga. Dhamaadka casharkan, waxaad awoodi doontaa inaad xakameyso matoor leh labadaba wareegyo toosan iyo kuwa ka soo horjeeda, oo ay weheliso xakameynta xawaaraha.
Hagahan halkan, waxaanu isticmaali doonaa Arduino si aan u xakameyno mishiinka. Qaabka H-bridge wuxuu u oggolaanayaa in la beddelo jihada mishiinka iyadoo la xakameynayo calaamadaha gelinta ee loo diro transistors. Tani waa arrin muhiim ah oo loogu talagalay codsiyo badan, sida gacmaha robotka ama robotyada moobaylka ee u baahan xakameyn sax ah oo mishiinka ah. Si faahfaahin dheeraad ah, fadlan tixraac fiidiyowga (fiidiyowga ku jira 00:00).
Qalabka La Sharxay
Mashruucan wuxuu ka kooban yahay qaybaha ugu muhiimsan ee TIP120 iyo TIP125 transistors, kuwaas oo loo isticmaalo sidii switches si loo xakameeyo hawlgalka mishiinka. TIP120 waa NPN Darlington transistor, halka TIP125 uu yahay PNP Darlington transistor. Isku darkooduna waxay sameeyaan qaab dhismeedka H-bridge, taasoo noo oggolaaneysa inaan xakameyno jihada korontada ee ku socota mishiinka.
Habkanan, calaamadda PWM (Isku-dhafka Ballaca Dardargelinta) waxaa loo isticmaalaa in lagu xakameeyo xawaaraha matoorka. Transistors-ka ayaa si degdeg ah u shidan oo damiya si ay u abuuraan koronto celcelis ah oo go'aamisa xawaaraha matoorka. Pins-ka EN waxay awood u siinayaan ama damiyaan transistors-ka, iyagoo hubinaya in matoorku uu shaqeeyo kaliya marka loo baahdo.
Faahfaahinta Warqadda Data
| Soosaar | Texas Instruments |
|---|---|
| Lambarka qaybta | TIP120 |
| Xisaab/IO danab | 5-15 V |
| Koronto sahayada | 60 V |
| Hawada hadda (kanaal kasta) | 5 A |
| Culayska ugu sarreeya (kanaal kasta) | 30 A |
| Hagaha soo noqnoqoshada PWM | 1 kHz ugu badnaan |
| Xadka loogaga talagalay gelinta | 2.5 V (sare), 0.8 V (hoose) |
| Hoos u dhaca koronto / RDS(on)/ buuxin | 1.2 V |
| Xadidaheeda kulaylka | 175 °C |
| Baakidhka | TO-220 |
| Xusuusin / noocyo | Lagu sida TIP125 |
- Hubi in siigga kuleylka si habboon loogu talagalay codsiyada hadda sare.
- Isticmaal calaamadaha PWM si aad si hufan u xakameyso xawaaraha matoorka.
- Hubi jihada transistor-ka si looga hortago waxyeelada circuit-ka.
- Dhiirrig geli darajada korontada si aad uga fogaato in la dhaafo xuduudaha.
- Isticmaal capacitors-ka kala soocida si aad u xasilloonayso korontada.
Tilmaamaha Xadhigga

Si aad u xidhid H-bridge motor driver-ka, marka hore ku xidh pin-ka VCC ee TIP120 iyo TIP125 korontada 5V ee Arduino-gaaga. Ku xidh pin-ka GND dhulka. Pins-ka xakamaynta PWM,PWM1iyoPWM2, waa in lagu xiraa pins-ka dijitaalka ah 9 iyo 3 ee Arduino, siday u kala horeeyaan. Pins-ka awoodda,EN1iyoEN2, waxay ku xiran doontaa pins-ka dijitaalka ah 8 iyo 2.
Marka xigta, isku xidh dhammaan xargaha matoorkaaga pins-ka ururiyaha ee TIP120 iyo TIP125 transistors. Hubi in matoorku uu la jaanqaadayo korontadaada. Haddii aad isticmaalayso qaybaha dheeraadka ah sida diodes si aad u ilaaliso ka-hortagga, dhig iyaga si toos ah matoorka xargaha si aad uga hortagto waxyeelo ka timaadda EMF dib u soo noqoshada. Haddii aad isticmaalayso noocyo kala duwan oo Arduino ah, xaqiiji khariidadda pins-ka ee PWM iyo calaamadaha awoodsiinta.
Tusaalooyinka Koodhka & Socodka
const int PWM1= 9; //pin with ~
const int EN1= 8;
const int PWM2= 3; //pin with ~
const int EN2= 2;
Dejinta, waxaan qeexeynaa pins-ka xakameynta ee calaamadaha PWM iyo pins-ka awoodda.pinModehawshu waxay dejinaysaa pins-kan sidii wax soo saarka si ay u xakameyso transistors-ka kaxeeya matoorka.
void loop() {
Motor(CW, 50); //in CW at 50% speed
delay(5000);
stop(); // stops the motor
delay(2000);
}
Hawsha loop-kan waxay muujinaysaa hawlgalka matoorka. Marka hore waxay matoorka ka shaqeysaa jihada saacadda tooska ah xawaare 50% ah muddo 5 ilbiriqsi ah, ka dibna waxay joojisaa 2 ilbiriqsi.Motorhawlgalka waxaa lagu magacaabaa iyadoo la adeegsanayo jihada iyo xawaaraha, taasoo xakameysa dhaqanka matoorka iyadoo lagu saleynayo xogtaas.
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
}
}
TheMotorhawlku wuxuu qaataa jihada boolean iyo xawaare integer. Waxay khariidaynaysaa boqolkiiba xawaaraha qiimaha PWM waxayna isticmaashaaanalogWritein lagu in pin ku habboon xakameynta matoorka. Hawshan waxay muhiim u tahay isbeddelka jihada iyo xawaaraha matoorka si firfircoon.
Muuqaal / Waxa La Filan Karaa
Marka la dhammeeyo xargaha iyo soo gelinta koodhka, waa inaad aragtaa mishiinka oo ku wareegaya jiho saacadda saacadda ah 50% xawaare ah muddo 5 ilbiriqsi ah, ka dibna wuu istaagi doonaa. Kadib dib u dhac, wuxuu ku wareegi doonaa jiho ka soo horjeeda saacadda 80% xawaare ah muddo 5 ilbiriqsi ah. Khaladaadka caadiga ah waxaa ka mid ah xargaha khaldan iyo ka badnaanta qiimaha korontada, taasoo dhaawici karta transistors ama mishiinka.
Video Timestamps
- 00:00- Hordhac
- 01:30- Guud ahaan Qalabka
- 03:15- Tilmaamaha Xadhigga
- 05:00- Socodka Socodka
- 08:45- Muuqaal
/*
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);
}
}
Kheyraadka & Tixraacyada
-
Dibedda
-
Dibedda
-
Dibedda
-
Dibedda
Faylasha📁
Gerber files
-
H-Bridge-TIP120-TIP125 Gerber file for PCBXWaxaa ku jira H-Bridge-TIP120-TIP125.zip, H-Bridge-TIP120-TIP125-BOM.xls iyo H-Bridge-TIP120-TIP125-coor.xls faylasha si fudud loo dalbado.
H-Bridge-TIP120-TIP125 Gerber file.zip0.05 MB