Code de recherche

Pont H 1 : Construire un pilote de moteur en pont H sur une plaque d'essai en utilisant des transistors Darlington TIP120 et TIP125

Pont H 1 : Construire un pilote de moteur en pont H sur une plaque d'essai en utilisant des transistors Darlington TIP120 et TIP125

Ce tutoriel vous guidera dans la construction d'un pilote de moteur en pont H utilisant des transistors Darlington TIP120 et TIP125 sur une plaque d'essai. Cette configuration est idéale pour contrôler la direction et la vitesse d'un moteur à courant continu, ce qui est essentiel pour divers projets de robotique et d'automatisation. À la fin de ce tutoriel, vous serez en mesure de contrôler un moteur avec des rotations à la fois dans le sens horaire et antihoraire, ainsi qu'avec une modulation de la vitesse.

Dans ce guide, nous utiliserons un Arduino pour contrôler le moteur. La configuration en H permet d'inverser la direction du moteur en contrôlant les signaux d'entrée envoyés aux transistors. C'est un aspect crucial pour de nombreuses applications, telles que les bras robotiques ou les robots mobiles qui nécessitent un contrôle précis du moteur. Pour plus de précisions, veuillez vous référer à la vidéo (dans la vidéo à 00:00).

Matériel expliqué

Les principaux composants de ce projet incluent les transistors TIP120 et TIP125, qui sont utilisés comme interrupteurs pour contrôler le fonctionnement du moteur. Le TIP120 est un transistor Darlington NPN, et le TIP125 est un transistor Darlington PNP. Ensemble, ils forment la configuration en pont en H, ce qui nous permet de contrôler la direction du courant circulant à travers le moteur.

Dans cette configuration, le signal PWM (Modulation de Largeur d'Impulsion) est utilisé pour contrôler la vitesse du moteur. Les transistors s'allument et s'éteignent rapidement pour créer une tension moyenne qui détermine la vitesse du moteur. Les broches EN activent ou désactivent les transistors, garantissant que le moteur fonctionne uniquement lorsque cela est nécessaire.

Détails de la fiche technique

Fabricant Texas Instruments
Numéro de pièce TIP120
Tension logique/IO 5-15 V
Tension d'alimentation 60 V
Courant de sortie (par canal) 5 A
Courant de crête (par canal) 30 A
Directives sur la fréquence PWM 1 kHz max
Seuils de logique d'entrée 2,5 V (haut), 0,8 V (bas)
Chute de tension / RDS(on)/ saturation 1,2 V
Limites thermiques 175 °C
Paquet TO-220
Remarques / variantes Disponible en tant que TIP125

  • Assurez un bon refroidissement pour les applications à courant élevé.
  • Utilisez des signaux PWM pour contrôler efficacement la vitesse du moteur.
  • Vérifiez l'orientation du transistor pour éviter d'endommager le circuit.
  • Faites attention aux tensions nominales pour éviter de dépasser les limites.
  • Utilisez des condensateurs de découplage pour stabiliser l'alimentation en tension.

Instructions de câblage

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

Pour câbler le pilote de moteur H-bridge, commencez par connecter la broche VCC du TIP120 et du TIP125 à l'alimentation 5V de votre Arduino. Connectez la broche GND à la terre. Les broches de contrôle PWM,PWM1etPWM2, doivent être connectés aux broches numériques 9 et 3 sur l'Arduino, respectivement. Les broches d'activation,EN1etEN2, se connectera aux broches numériques 8 et 2.

Ensuite, connectez les bornes de votre moteur aux broches collectrices des transistors TIP120 et TIP125. Assurez-vous que le moteur est compatible avec votre alimentation. Si vous utilisez des composants supplémentaires tels que des diodes pour la protection contre les retours de courant, placez-les en parallèle avec les bornes du moteur pour éviter d'endommager à cause de l'EMF inverse. Si vous utilisez différents modèles d'Arduino, vérifiez les correspondances des broches pour les signaux PWM et d'activation.

Exemples de code et guide étape par étape

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

Dans la configuration, nous définissons les broches de contrôle pour les signaux PWM et les broches d'activation. LepinModela fonction définit ces broches comme sorties pour contrôler les transistors qui entraînent le moteur.

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

Cette fonction de boucle démontre le fonctionnement du moteur. Elle fait d'abord tourner le moteur dans le sens des aiguilles d'une montre à 50 % de la vitesse pendant 5 secondes, puis s'arrête pendant 2 secondes.Motorla fonction est appelée avec des paramètres de direction et de vitesse, contrôlant le comportement du moteur en fonction de ces entrées.

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

LeMotorla fonction prend une direction booléenne et une vitesse entière. Elle mappe le pourcentage de vitesse à une valeur PWM et utiliseanalogWritepour définir la broche appropriée pour le contrôle du moteur. Cette fonction est cruciale pour modifier dynamiquement la direction et la vitesse du moteur.

Démonstration / À quoi s'attendre

Une fois le câblage terminé et le code téléchargé, vous devriez observer le moteur tourner dans le sens des aiguilles d'une montre à 50 % de sa vitesse pendant 5 secondes, suivi d'un arrêt. Après un délai, il tournera dans le sens inverse des aiguilles d'une montre à 80 % de sa vitesse pendant encore 5 secondes. Les pièges courants incluent un câblage incorrect et le dépassement des limites de tension, ce qui peut endommager les transistors ou le moteur.

Horodatages vidéo

  • 00:00- Introduction
  • 01:30- Aperçu du matériel
  • 03:15- Instructions de câblage
  • 05:00- Présentation du code
  • 08:45- Démonstration

Images

Projet H-Bridge avec TIP120 TIP125 Schéma de câblage
Projet H-Bridge avec TIP120 TIP125 Schéma de câblage
schéma pour TIP120 TIP125 H-Pont
schéma pour TIP120 TIP125 H-Pont
Projet H-Bridge avec TIP120 TIP125 3
Projet H-Bridge avec 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
Langue: 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); 
  }
 
}

Fichiers📁

Autres fichiers

  • Fichier Gerber H-Bridge-TIP120-TIP125 pour PCBX
    Comprend les fichiers H-Bridge-TIP120-TIP125.zip, H-Bridge-TIP120-TIP125-BOM.xls et H-Bridge-TIP120-TIP125-coor.xls pour faciliter la commande.
    H-Bridge-TIP120-TIP125 Gerber file.zip 0.05 MB