Search Code

H-Brug 1: Een H-brug motorstuurprogramma bouwen op een breadboard met behulp van TIP120 en TIP125 Darlington-transistors

H-Brug 1: Een H-brug motorstuurprogramma bouwen op een breadboard met behulp van TIP120 en TIP125 Darlington-transistors

Deze tutorial begeleidt je bij het bouwen van een H-brug motorstuurprogramma met behulp van TIP120 en TIP125 Darlington-transistors op een breadboard. Deze opstelling is ideaal voor het regelen van de richting en snelheid van een gelijkstroommotor, wat essentieel is voor verschillende robotica- en automatiseringsprojecten. Aan het einde van deze tutorial ben je in staat om een motor te bedienen met zowel klok- als tegen de klok in draaiingen, samen met snelheidsmodulatie.

In deze gids zullen we een Arduino gebruiken om de motor te besturen. De H-brugconfiguratie maakt het mogelijk om de draairichting van de motor te veranderen door de ingangs-signalen die naar de transistors worden gestuurd te regelen. Dit is een cruciaal aspect voor veel toepassingen, zoals robotarmen of mobiele robots die nauwkeurige motorbesturing vereisen. Voor verdere verduidelijking, raadpleeg de video (in video om 00:00).

Hardware Uitleg

De belangrijkste componenten van dit project zijn de TIP120 en TIP125 transistors, die worden gebruikt als schakelaars om de werking van de motor te regelen. De TIP120 is een NPN Darlington transistor, en de TIP125 is een PNP Darlington transistor. Samen vormen ze de H-brugconfiguratie, waarmee we de richting van de stroom die door de motor vloeit, kunnen regelen.

In deze opstelling wordt het PWM (Pulse Width Modulation) signaal gebruikt om de snelheid van de motor te regelen. De transistors schakelen snel aan en uit om een gemiddelde spanning te creëren die de motorsnelheid bepaalt. De EN-pinnen schakelen de transistors in of uit, zodat de motor alleen werkt wanneer dat nodig is.

Datasheet Gegevens

Fabrikant Texas Instruments
Onderdeelnummer TIP120
Logica/IO spanning 5-15 V
Voedingsspanning 60 V
Uitgangsstroom (per kanaal) 5 A
Piekstroom (per kanaal) 30 A
PWM frequentie richtlijnen 1 kHz max
Ingangslogische drempels 2,5 V (hoog), 0,8 V (laag)
Spanningsval / RDS(on)/ verzadiging 1,2 V
Thermische limieten 175 °C
Pakket TO-220
Notities / varianten Beschikbaar als TIP125

  • Zorg voor een goede warmteafvoer voor toepassingen met hoge stromen.
  • Gebruik PWM-signalen om de motorsnelheid effectief te regelen.
  • Controleer de oriëntatie van de transistor om circuitschade te voorkomen.
  • Let op de spanningswaarden om te voorkomen dat de limieten worden overschreden.
  • Gebruik decoupling condensatoren om de spanningsvoorziening te stabiliseren.

Bedradinginstructies

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

Om de H-brug motorstuurder aan te sluiten, verbind eerst de VCC-pin van de TIP120 en TIP125 met de 5V-voeding op je Arduino. Verbind de GND-pin met de aarde. De PWM-bestuurpins,PWM1enPWM2, moeten respectievelijk worden aangesloten op digitale pinnen 9 en 3 op de Arduino. De inschakelpinnen,EN1enEN2, zal verbinding maken met digitale pinnen 8 en 2.

Verbind vervolgens de terminals van je motor met de collector-pinnen van de TIP120 en TIP125 transistors. Zorg ervoor dat de motor compatibel is met je voeding. Als je extra componenten zoals diodes voor terugslagbescherming gebruikt, plaats deze dan parallel aan de motor terminals om schade door terug EMF te voorkomen. Als je verschillende Arduino-modellen gebruikt, controleer dan de pin-mapping voor PWM- en inschakelsignalen.

Codevoorbeelden en Stappenplan

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

In de setup definiëren we de controlepinnen voor de PWM-signalen en de inschakelpinnen. DepinModefunctie stelt deze pinnen in als uitgang om de transistors te bedienen die de motor aandrijven.

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

Deze lusfunctie demonstreert de werking van de motor. Eerst draait de motor met 50% snelheid met de klok mee gedurende 5 seconden, daarna stopt hij gedurende 2 seconden. DeMotorde functie wordt aangeroepen met richting- en snelheidsparameters, die het gedrag van de motor op basis van die invoer regelen.

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

DeMotorfunctie neemt een boolean richting en een gehele snelheid. Het koppelt het snelheidspercentage aan een PWM-waarde en gebruiktanalogWritede juiste pin in te stellen voor motorbesturing. Deze functie is cruciaal voor het dynamisch veranderen van de motorrichting en -snelheid.

Demonstratie / Wat te Verwachten

Na het voltooien van de bedrading en het uploaden van de code, zou je moeten zien dat de motor met de klok mee draait op 50% snelheid gedurende 5 seconden, gevolgd door een stop. Na een vertraging zal hij tegen de klok in draaien op 80% snelheid voor nog eens 5 seconden. Veelvoorkomende valkuilen zijn onjuiste bedrading en het overschrijden van spanningswaarden, wat de transistors of motor kan beschadigen.

Videotijdstempels

  • 00:00- Inleiding
  • 01:30- Hardware Overzicht
  • 03:15- Bedradinginstructies
  • 05:00- Code Doorloop
  • 08:45- Demonstratie

Afbeeldingen

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

Bestanden📁

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