Pretraži kod

H-most 1: Izgradnja H-most motor vozača na probnoj ploči koristeći TIP120 i TIP125 Darlingtonove tranzistore

H-most 1: Izgradnja H-most motor vozača na probnoj ploči koristeći TIP120 i TIP125 Darlingtonove tranzistore

Ovaj vodič će vas provesti kroz izradu H-bridge vozača motora koristeći TIP120 i TIP125 Darlingtonove tranzistore na probnoj ploči. Ova postavka je idealna za kontrolu pravca i brzine DC motora, što je bitno za razne projekte robotike i automatizacije. Na kraju ovog vodiča, moći ćete kontrolisati motor sa obrtanjem u smeru kazaljke na satu i suprotnom smeru, zajedno sa modulacijom brzine.

U ovom vodiču ćemo koristiti Arduino za kontrolu motora. H-most konfiguracija omogućava promjenu smjera motora kontroliranjem ulaznih signala poslanih na tranzistore. Ovo je ključni aspekt za mnoge primjene, kao što su robotske ruke ili mobilni roboti koji zahtijevaju preciznu kontrolu motora. Za daljnje pojašnjenje, molimo vas da se obratite videu (u videu na 00:00).

Objašnjena oprema

Glavni sastavni dijelovi ovog projekta uključuju TIP120 i TIP125 tranzistore, koji se koriste kao prekidači za kontrolu rada motora. TIP120 je NPN Darlington tranzistor, a TIP125 je PNP Darlington tranzistor. Zajedno čine H-most konfiguraciju, što nam omogućava da kontroliramo smjer struje koja prolazi kroz motor.

U ovom podešavanju, PWM (Modulacija širine impulsa) signal se koristi za kontrolu brzine motora. Tranzistori se brzo uključuju i isključuju kako bi stvorili prosečan napon koji određuje brzinu motora. EN pinovi omogućavaju ili onemogućavaju tranzistore, osiguravajući da motor radi samo kada je to potrebno.

Tehnički podaci

Proizvođač Texas Instruments
Broj dijela TIP120
Logika/IO napon 5-15 V
Napon napajanja 60 V
Izlazna struja (po kanalu) 5 A
Vrhunska struja (po kanalu) 30 A
Upute za PWM frekvenciju 1 kHz max
Ulazni logički pragovi 2.5 V (visoko), 0.8 V (nisko)
Napon pada / RDS(on)/ zasićenje 1.2 V
Termalne granice 175 °C
Pakovanje TO-220
Napomene / varijante Dostupno kao TIP125

  • Osigurajte pravilno odvođenje topline za aplikacije s visokim strujama.
  • Koristite PWM signale za efikasnu kontrolu brzine motora.
  • Provjerite orijentaciju tranzistora kako biste spriječili oštećenje kola.
  • Obratite pažnju na naponske ocjene kako biste izbjegli prekoračenje limita.
  • Koristite dekopling kondenzatore za stabilizaciju napajanja.

Uputstva za povezivanje

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

Da biste povezali H-bridge motorni drajver, prvo povežite VCC pin sa TIP120 i TIP125 na 5V napajanje na vašem Arduinu. Povežite GND pin na masu. PWM kontrolni pinovi,PWM1iPWM2, trebaju biti povezani na digitalne pinove 9 i 3 na Arduinu, redom. Pinovi za omogućavanje,EN1iEN2, će se povezati na digitalne pinove 8 i 2.

Sljedeće, povežite terminale vašeg motora s kolektorskim pinovima TIP120 i TIP125 tranzistora. Osigurajte da je motor kompatibilan s vašim napajanjem. Ako koristite dodatne komponente poput dioda za zaštitu od povratnog EMF-a, postavite ih paralelno s terminalima motora kako biste spriječili oštećenje. Ako koristite različite modele Arduina, provjerite raspored pinova za PWM i enable signale.

Primjeri koda i vodič

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

U postavci definišemo kontrolne pinove za PWM signale i pinove za omogućavanje.pinModefunkcija postavlja ove pinove kao izlaz za kontrolu tranzistora koji pokreću motor.

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

Ova funkcija petlje demonstrira rad motora. Prvo pokreće motor u smjeru kazaljke na satu brzinom od 50% tokom 5 sekundi, zatim se zaustavlja na 2 sekunde.Motorfunkcija se poziva s parametrima smjera i brzine, kontrolirajući ponašanje motora na temelju tih ulaza.

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

TheMotorfunkcija uzima boolean pravac i cijeli broj brzinu. Mapira postotak brzine na PWM vrijednost i koristianalogWritepostaviti odgovarajući pin za kontrolu motora. Ova funkcija je ključna za dinamičku promjenu smjera i brzine motora.

Demonstracija / Šta očekivati

Nakon završetka povezivanja i učitavanja koda, trebali biste primijetiti da motor rotira u smjeru kazaljke na satu brzinom od 50% tokom 5 sekundi, nakon čega se zaustavlja. Nakon kašnjenja, rotirat će u suprotnom smjeru brzinom od 80% još 5 sekundi. Uobičajene greške uključuju pogrešno povezivanje i prekoračenje naponskih ocjena, što može oštetiti tranzistore ili motor.

Video vremenski oznaci

  • 00:00- Uvod
  • 01:30- Pregled hardvera
  • 03:15- Uputstva za ožičenje
  • 05:00- Prikaz koda
  • 08:45- Demonstracija

Slike

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
Jezik: 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); 
  }
 
}

Datoteke📁

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