Search Code

H-Bridge 1: Budowanie sterownika silnika H-bridge na płytce stykowej z użyciem tranzystorów Darlington TIP120 i TIP125

H-Bridge 1: Budowanie sterownika silnika H-bridge na płytce stykowej z użyciem tranzystorów Darlington TIP120 i TIP125

Ten samouczek poprowadzi Cię przez budowę sterownika silnika H-bridge z użyciem tranzystorów Darlington TIP120 i TIP125 na płytce stykowej. Ta konfiguracja jest idealna do kontrolowania kierunku i prędkości silnika prądu stałego, co jest niezbędne w różnych projektach robotyki i automatyzacji. Na koniec tego samouczka będziesz w stanie kontrolować silnik zarówno w kierunku zgodnym, jak i przeciwnym do ruchu wskazówek zegara, wraz z modulacją prędkości.

W tym przewodniku wykorzystamy Arduino do sterowania silnikiem. Konfiguracja mostka H umożliwia odwrócenie kierunku silnika poprzez kontrolowanie sygnałów wejściowych wysyłanych do tranzystorów. Jest to kluczowy aspekt w wielu zastosowaniach, takich jak ramiona robotyczne czy roboty mobilne, które wymagają precyzyjnego sterowania silnikiem. W celu dalszego wyjaśnienia proszę odwołać się do wideo (w wideo o 00:00).

Wyjaśnienie sprzętu

Główne komponenty tego projektu to tranzystory TIP120 i TIP125, które są używane jako przełączniki do kontrolowania pracy silnika. TIP120 to tranzystor NPN Darlington, a TIP125 to tranzystor PNP Darlington. Razem tworzą konfigurację mostka H, co pozwala nam kontrolować kierunek prądu płynącego przez silnik.

W tej konfiguracji sygnał PWM (modulacja szerokości impulsu) jest używany do kontrolowania prędkości silnika. Tranzystory włączają się i wyłączają szybko, aby stworzyć średnie napięcie, które określa prędkość silnika. Piny EN włączają lub wyłączają tranzystory, zapewniając, że silnik działa tylko wtedy, gdy jest to konieczne.

Szczegóły karty katalogowej

Producent Texas Instruments
Numer części TIP120
Napięcie logiczne/IO 5-15 V
Napięcie zasilania 60 V
Prąd wyjściowy (na kanał) 5 A
Prąd szczytowy (na kanał) 30 A
Wskazówki dotyczące częstotliwości PWM 1 kHz max
Progi logiki wejściowej 2,5 V (wysoki), 0,8 V (niski)
Spadek napięcia / RDS(on)/ nasycenie 1,2 V
Limity termiczne 175 °C
Pakiet TO-220
Notatki / warianty Dostępny jako TIP125

  • Zapewnij odpowiednie odprowadzanie ciepła w aplikacjach o dużym prądzie.
  • Użyj sygnałów PWM, aby skutecznie kontrolować prędkość silnika.
  • Sprawdź orientację tranzystora, aby zapobiec uszkodzeniu obwodu.
  • Zwróć uwagę na wartości napięcia, aby nie przekroczyć limitów.
  • Użyj kondensatorów odsprzęgających, aby ustabilizować zasilanie napięciem.

Instrukcje dotyczące okablowania

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

Aby podłączyć sterownik silnika H-bridge, najpierw podłącz pin VCC z TIP120 i TIP125 do zasilania 5V na swoim Arduino. Podłącz pin GND do masy. Piny sterujące PWM,PWM1iPWM2, powinny być podłączone do cyfrowych pinów 9 i 3 na Arduino, odpowiednio. Piny enable,EN1iEN2, połączy się z cyfrowymi pinami 8 i 2.

Następnie podłącz terminale silnika do pinów kolektora tranzystorów TIP120 i TIP125. Upewnij się, że silnik jest kompatybilny z twoim zasilaczem. Jeśli używasz dodatkowych komponentów, takich jak diody do ochrony przed przepięciami, umieść je równolegle z terminalami silnika, aby zapobiec uszkodzeniom spowodowanym przez odwrotną EMF. Jeśli używasz różnych modeli Arduino, sprawdź mapowanie pinów dla sygnałów PWM i włączających.

Przykłady kodu i przewodnik

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

W konfiguracji definiujemy piny sterujące dla sygnałów PWM oraz piny włączające.pinModefunkcja ustawia te piny jako wyjście do sterowania tranzystorami, które napędzają silnik.

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

Ta funkcja pętli demonstruje działanie silnika. Najpierw uruchamia silnik w kierunku zgodnym z ruchem wskazówek zegara z prędkością 50% przez 5 sekund, a następnie zatrzymuje się na 2 sekundy.Motorfunkcja jest wywoływana z parametrami kierunku i prędkości, kontrolując zachowanie silnika na podstawie tych danych wejściowych.

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

TheMotorfunkcja przyjmuje wartość logiczną kierunku i liczbę całkowitą prędkości. Mapuje procent prędkości na wartość PWM i używaanalogWriteustawić odpowiedni pin do sterowania silnikiem. Ta funkcja jest kluczowa dla dynamicznej zmiany kierunku i prędkości silnika.

Demonstracja / Czego się spodziewać

Po zakończeniu okablowania i przesłaniu kodu powinieneś zaobserwować, że silnik obraca się zgodnie z ruchem wskazówek zegara z prędkością 50% przez 5 sekund, a następnie zatrzymuje się. Po opóźnieniu obróci się w kierunku przeciwnym do ruchu wskazówek zegara z prędkością 80% przez kolejne 5 sekund. Do powszechnych pułapek należy niewłaściwe okablowanie oraz przekroczenie wartości napięcia, co może uszkodzić tranzystory lub silnik.

Znaczniki czasowe wideo

  • 00:00- Wprowadzenie
  • 01:30- Przegląd sprzętu
  • 03:15- Instrukcje dotyczące okablowania
  • 05:00- Przegląd kodu
  • 08:45- Demonstracja

Obrazy

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
Język: 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); 
  }
 
}

Pliki📁

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