H-көпір 1: TIP120 және TIP125 Дарлингтон транзисторларын пайдаланып, нан тақтасында H-көпір мотор драйверін құру
Бұл оқулық сізді TIP120 және TIP125 Дарлингтон транзисторларын пайдаланып, H-көпір мотор драйверін құруға бағыттайды. Бұл конфигурация DC моторының бағытын және жылдамдығын басқару үшін өте қолайлы, бұл әртүрлі робототехника және автоматтандыру жобалары үшін маңызды. Бұл оқулықтың соңында сіз моторды сағат тілімен және сағат тіліне қарсы айналдырумен, сондай-ақ жылдамдықты модуляциялаумен басқаруға қабілетті боласыз.
Бұл нұсқаулықта біз моторды басқару үшін Arduino қолданамыз. H-көпір конфигурациясы транзисторларға жіберілетін кіріс сигналдарын басқару арқылы мотордың бағытын өзгертуге мүмкіндік береді. Бұл дәл мотор басқаруды талап ететін көптеген қолданбалар, мысалы, роботтық қолдар немесе мобильді роботтар үшін маңызды аспект. Қосымша түсініктеме алу үшін, видеоны қараңыз (видеода 00:00).
Аппараттық құралдар түсіндірілді
Бұл жобаның негізгі компоненттері TIP120 және TIP125 транзисторлары болып табылады, олар мотордың жұмысын басқару үшін қосқыш ретінде пайдаланылады. TIP120 - NPN Дарлингтон транзисторы, ал TIP125 - PNP Дарлингтон транзисторы. Олар бірге H-көпір конфигурациясын құрайды, бұл мотор арқылы өтетін токтың бағытын басқаруға мүмкіндік береді.
Бұл конфигурацияда PWM (Импульс ені модуляциясы) сигналы мотордың жылдамдығын басқару үшін қолданылады. Транзисторлар жылдам қосылып-өшіп, мотор жылдамдығын анықтайтын орташа кернеуді жасайды. EN пиндері транзисторларды қосып немесе өшіріп, мотор тек қажет болғанда жұмыс істейтінін қамтамасыз етеді.
Техникалық сипаттама мәліметтері
| Өндіруші | Texas Instruments |
|---|---|
| Бөлшек нөмірі | TIP120 |
| Логика/Кернеу | 5-15 В |
| Жабдықтау кернеуі | 60 В |
| Шығыс токы (арна бойынша) | 5 A |
| Шың ток (арна бойынша) | 30 A |
| PWM жиілігі бойынша нұсқаулық | 1 кГц макс |
| Кіріс логика шектер | 2.5 В (жоғары), 0.8 В (төмен) |
| Кернеу түсуі / RDS(қосулы)жарқындық | 1.2 В |
| Жылу шектеулері | 175 °C |
| Пакет | TO-220 |
| Ескертпелер / нұсқалар | TIP125 ретінде қолжетімді |
- Жоғары токты қолданбалар үшін дұрыс жылу таратуын қамтамасыз етіңіз.
- PWM сигналдарын мотор жылдамдығын тиімді басқару үшін пайдаланыңыз.
- Транзистордың бағытын тексеріңіз, схеманың зақымдалуын болдырмау үшін.
- Кернеу рейтингтеріне назар аударыңыз, шектерді асып кетуден сақтаныңыз.
- Кернеуді тұрақтандыру үшін декуплирующие конденсаторларды пайдаланыңыз.
Сымдарды қосу нұсқаулары

H-көпір мотор драйверін қосу үшін, алдымен TIP120 және TIP125-тің VCC пинін Arduino-ның 5V қуат көзіне қосыңыз. GND пинін жерге қосыңыз. PWM басқару пиндері,PWM1жәнеPWM2, тиісінше Arduino-ның 9 және 3 сандық пиндеріне қосылуы керек. Қосымша пиндер,EN1жәнеEN2, цифрлық 8 және 2 пиндеріне қосылады.
Келесі, мотордың терминалдарын TIP120 және TIP125 транзисторларының коллектор пиндеріне қосыңыз. Мотордың қуат көзімен үйлесімді екеніне көз жеткізіңіз. Егер флайбэк қорғау үшін диодтар сияқты қосымша компоненттерді пайдалансаңыз, оларды мотор терминалдарымен параллель қосыңыз, кері ЭМҚ-дан зақымдануды болдырмау үшін. Егер сіз әртүрлі Arduino модельдерін пайдалансаңыз, PWM және қосу сигналдары үшін пин карталарын тексеріңіз.
Код мысалдары мен нұсқаулықтар
const int PWM1= 9; //pin with ~
const int EN1= 8;
const int PWM2= 3; //pin with ~
const int EN2= 2;
Орнатуда біз PWM сигналдары мен қосу пиндерін анықтаймыз.pinModeфункция осы пиндерді моторды басқаруға арналған транзисторларды басқару үшін шығыс ретінде орнатады.
void loop() {
Motor(CW, 50); //in CW at 50% speed
delay(5000);
stop(); // stops the motor
delay(2000);
}
Бұл цикл функциясы мотордың жұмысын көрсетеді. Ол алдымен моторды сағат тілімен 50% жылдамдықпен 5 секунд жұмыс істетеді, содан кейін 2 секундқа тоқтайды.Motorфункция бағыт және жылдамдық параметрлерімен шақырылады, мотордың осы кірістерге негізделген мінез-құлқын басқару.
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
}
}
БасқаMotorфункция логикалық бағыт пен бүтін сан жылдамдығын қабылдайды. Ол жылдамдық пайызын PWM мәніне карталайды және пайдаланадыanalogWriteмоторды басқару үшін тиісті пинді орнату. Бұл функция мотордың бағытын және жылдамдығын динамикалық түрде өзгерту үшін маңызды.
Көрсетілім / Не күту керек
Сымдарды қосып, кодты жүктегеннен кейін, сіз мотордың 50% жылдамдықпен 5 секунд бойы сағат тілімен айналатынын байқауыңыз керек, содан кейін тоқтайды. Біраз кідірістен кейін, ол 80% жылдамдықпен 5 секунд бойы сағат тіліне қарсы айналады. Жиі кездесетін қателіктерге дұрыс емес сымдарды қосу және кернеу рейтингтерін асыра пайдалану жатады, бұл транзисторларға немесе моторға зақым келтіруі мүмкін.
Бейне уақыт белгілері
- 00:00- Кіріспе
- 01:30- Аппараттық шолу
- 03:15- Сымдарды қосу нұсқаулары
- 05:00- Кодты қарау
- 08:45- Көрсету
/*
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);
}
}
Ресурстар мен сілтемелер
-
Сыртқы
-
Сыртқы
-
Сыртқы
-
Сыртқы
Файлдар📁
Gerber files
-
H-Bridge-TIP120-TIP125 Gerber файлы PCBX үшінH-Bridge-TIP120-TIP125.zip, H-Bridge-TIP120-TIP125-BOM.xls және H-Bridge-TIP120-TIP125-coor.xls файлдары тапсырыс беруді жеңілдету үшін қосылған.
H-Bridge-TIP120-TIP125 Gerber file.zip0.05 MB