Utilisation du moteur pas à pas 28BYJ-48 avec un driver ULN2003 et Arduino
Dans ce tutoriel, nous allons apprendre à contrôler un moteur pas à pas 28BYJ-48 à l'aide d'un driver ULN2003 avec un Arduino. Cette configuration permet un contrôle précis de la position et de la vitesse du moteur. À la fin de ce projet, vous serez en mesure de faire tourner le moteur dans les deux directions et de contrôler efficacement ses pas.
Nous utiliserons le moteur pas à pas 28BYJ-48, qui est un choix populaire pour divers projets de robotique et d'automatisation en raison de son faible coût et de sa facilité d'utilisation. La carte de pilote ULN2003 interface le moteur pas à pas avec l'Arduino, nous permettant d'envoyer des signaux de pas qui contrôlent le mouvement du moteur. Ce tutoriel vous guidera à travers le câblage et le code nécessaires pour faire tourner votre moteur.
Pour plus de précisions, veuillez vous référer à la vidéo associée à ce tutoriel (dans la vidéo à 0:45).
Matériel expliqué
Les composants clés de ce projet incluent le moteur pas à pas 28BYJ-48 et la carte de pilote ULN2003. Le moteur pas à pas se compose de plusieurs bobines qui peuvent être alimentées dans une séquence spécifique pour créer une rotation. Le pilote ULN2003 agit comme un interrupteur, permettant à l'Arduino de contrôler l'alimentation fournie à chaque bobine.
Le pilote ULN2003 utilise un réseau de transistors Darlington pour gérer le courant plus élevé requis par le moteur pas à pas. Lorsqu'une broche de l'Arduino émet un signal HAUT, cela permet au courant de circuler vers la bobine correspondante dans le moteur, provoquant son mouvement. Cela permet un contrôle précis de l'angle de rotation et de la vitesse du moteur.
Détails de la fiche technique
| Fabricant | ULN2003 |
|---|---|
| Numéro de pièce | ULN2003 |
| Tension logique/IO | 5 V |
| Tension d'alimentation | 5-30 V (max) |
| Courant de sortie (par canal) | 500 mA max |
| Courant de crête (par canal) | 2 A max |
| Directives sur la fréquence PWM | N/A |
| Seuils de logique d'entrée | 0,8 V (bas), 2,4 V (haut) |
| Chute de tension / RDS(on)/ saturation | 1,5 V max |
| Limites thermiques | 70 °C max |
| Paquet | DIP-16 |
| Remarques / variantes | Utilisé couramment avec des moteurs pas à pas de 5V. |
- Assurez-vous que le pilote peut gérer les exigences actuelles de votre moteur.
- Utilisez des dissipateurs thermiques si nécessaire pour gérer les limites thermiques.
- Vérifiez que toutes les connexions sont sécurisées pour éviter les entrées flottantes.
- Testez le moteur en exécutant des séquences d'étapes simples avant de l'intégrer dans des projets plus importants.
- Assurez-vous d'alimenter le moteur avec une tension d'alimentation adéquate.
Instructions de câblage
Pour câbler le moteur pas à pas 28BYJ-48 au driver ULN2003 et à l'Arduino, suivez ces étapes :
Tout d'abord, connectez le moteur au driver ULN2003. Le moteur a quatre fils, généralement codés par couleur en orange, jaune, rose et bleu. Connectez ces fils aux broches de sortie correspondantes sur le driver ULN2003. Les connexions sont les suivantes :
Orangefil àOUT1Yellowfil àOUT2Pinkfil àOUT3Bluefil àOUT4
Ensuite, connectez le driver ULN2003 à l'Arduino. Les broches d'entrée du driver correspondent à quatre broches numériques sur l'Arduino. Par exemple :
IN1àPin 10IN2àPin 11IN3àPin 12IN4àPin 13
Enfin, connectez les broches d'alimentation et de masse du pilote ULN2003 à l'Arduino. Connectez leVCCbroche à la sortie 5V de l'Arduino et leGNDpincez au sol de l'Arduino. Assurez-vous que toutes les connexions sont sécurisées avant d'alimenter le système.
Exemples de code et guide étape par étape
Dans la section de configuration du code Arduino, nous définissons les broches connectées au pilote ULN2003 :
int Pin1 = 10;
int Pin2 = 11;
int Pin3 = 12;
int Pin4 = 13;
Ici, nous déclarons quatre variables entières :Pin1,Pin2,Pin3, etPin4, qui correspondent aux broches numériques sur l'Arduino. Ces broches contrôleront le mouvement du moteur pas à pas.
Dans lesetup()fonction, nous configurons ces broches en tant que sorties :
void setup() {
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
}
Cette configuration garantit que l'Arduino peut envoyer des signaux au driver ULN2003 pour contrôler le moteur. LepinModela fonction définit chaque broche en mode SORTIE, leur permettant d'envoyer des signaux.
Enfin, dans la boucle principale, nous créons un switch case pour contrôler les étapes du moteur en fonction de la variable._step:
switch(_step){
case 0:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
// Additional cases follow
}
Dans cet extrait, nous utilisonsdigitalWriteenvoyer des signaux HAUT ou BAS à chaque broche en fonction du courant_step. Cela contrôle quelles bobines sont alimentées, permettant au moteur de tourner. Le code complet qui intègre ces extraits sera chargé en dessous de l'article.
Démonstration / À quoi s'attendre
Une fois que tout est câblé correctement et que le code est téléchargé, le moteur pas à pas devrait tourner en réponse aux signaux de l'Arduino. Vous pouvez tester le moteur en modifiant le délai dans la boucle ou en changeant les étapes pour voir comment il réagit. Soyez conscient que si le moteur n'est pas alimenté correctement, il peut ne pas bouger ou se comporter de manière erratique.
Chapitres
- Introduction - 0:00
- Matériel expliqué - 1:30
- Instructions de câblage - 3:15
- Exemples de code et guide - 5:00
- Démonstration / À quoi s'attendre - 7:45
Ce dont vous pourriez avoir besoin
-
AliExpressPurchase 5 pcs 28BYJ-48 stepper motors from AliExpresss.click.aliexpress.com
-
AliExpress
Ressources et références
-
ExternePurchase 5 pcs 28BYJ-48 stepper motors from AliExpresss.click.aliexpress.com
-
Externe
-
Externe
-
Externe
-
Externe
-
Externe
-
Externe
-
Externe
-
Externe
Fichiers📁
Aucun fichier disponible.