Contrôle précis de moteur pas à pas : 28BYJ-48 avec Arduino UNO et joystick
Composants et fournitures
| Arduino UNO | × | 1 |
| Moteur pas à pas 28BYJ-48 5 V CC | × | 1 |
| Pilote moteur pas à pas ULN2003 | × | 1 |
| Plaque d'essai (breadboard) | × | 1 |
| Fils de connexion (genériques) | × | 1 |
| Joystick analogique (générique) | × | 1 |
À propos de ce projet
Matériel requis :
- Carte Arduino UNO
- Moteur pas à pas 28BYJ-48 (avec carte pilote ULN2003A)
- Joystick
- Source d'alimentation 5 V
- Plaque d'essai
- Fils de connexion
Schéma du circuit de contrôle du moteur pas à pas avec Arduino et joystick : le schéma de circuit du projet est présenté ci-dessous (toutes les bornes de masse sont connectées ensemble).
L'image suivante montre le circuit Fritzing :
Le moteur pas à pas est connecté à la carte ULN2003A qui est alimentée par une source externe de 5 V. Les lignes de commande (IN1, IN2, IN3 et IN4) de cette carte sont connectées à l'Arduino comme suit :
- IN1 → Broche Arduino 11
- IN2 → Broche Arduino 10
- IN3 → Broche Arduino 9
- IN4 → Broche Arduino 8
La carte joystick a 5 broches : GND, +5 V, VRX, VRY et SW où :
- GND et +5 V sont les broches d'alimentation
- VRX est la sortie du potentiomètre de l'axe X
- VRY est la sortie du potentiomètre de l'axe Y
- SW est la borne du bouton poussoir (l'autre borne est connectée à GND)
La sortie du potentiomètre de l'axe X (VRX) est connectée à la broche analogique A0 de l'Arduino. La sortie de l'axe Y (VRY) peut également être utilisée. La broche du commutateur (SW) n'est pas utilisée dans cet exemple. En utilisant les potentiomètres des axes X et Y, nous pouvons contrôler deux moteurs pas à pas indépendamment.
« Alors les gars, si vous aimez le projet, n'oubliez pas de suivre et de liker »
Code
CODE : (C/C++)
// Ce projet est réalisé par BEASTIDREES62
// https://id.arduino.cc/?code=MTxqeHweG6vL2cur&state=amxEcTB2bnNiYjluTUxmRExWaWZnOXIzUk1BLWRqZTZYUGtJNGtxODB%2Bdg%3D%3D
// Inclure la bibliothèque Arduino pour moteur pas à pas
#include <Stepper.h>
// Définir le nombre de pas par révolution
#define STEPS 32
// Définir les broches de contrôle du moteur pas à pas
#define IN1 11
#define IN2 10
#define IN3 9
#define IN4 8
// Initialiser la bibliothèque stepper
Stepper stepper(STEPS, IN4, IN2, IN3, IN1);
// La sortie du potentiomètre du joystick est connectée à Arduino A0
#define joystick A0
void setup() { }
void loop() {
// Lire la valeur analogique du potentiomètre
int val = analogRead(joystick);
// Si le joystick est au milieu ===> arrêter le moteur
if ((val > 500) && (val < 523)) {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
} else {
// Mouvoir le moteur dans la première direction
while (val >= 523) {
// Mapper la vitesse entre 5 et 500 tr/min
int speed_ = map(val, 523, 1023, 5, 500);
// Définir la vitesse du moteur
stepper.setSpeed(speed_);
// Mouvoir le moteur (1 pas)
stepper.step(1);
val = analogRead(joystick);
}
// Mouvoir le moteur dans l'autre direction
while (val <= 500) {
// Mapper la vitesse entre 5 et 500 tr/min
int speed_ = map(val, 500, 0, 5, 500);
// Définir la vitesse du moteur
stepper.setSpeed(speed_);
// Mouvoir le moteur (1 pas)
stepper.step(-1);
val = analogRead(joystick);
}
}
}
Schématiques
Processus de fabrication
- Circuits de commande moteur avancés : verrouillage, arrêt et techniques à temporisation
- Moteurs pas à pas : types, caractéristiques et applications pratiques
- Contrôle orienté champ : la clé d'une performance moteur VE fluide et efficace
- Système de contrôle d'accès intégré QR, RFID et vérification de température
- Tourelle Nerf Autonome DIY – Construire un Canon Nerf Intelligent avec Moteurs Pas-à-Pas, Caméra et Arduino
- Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
- Bibliothèque Complète pour Moteur Pas à Pas Bipolaire Arduino
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- Tour CNC Millport SmartLathez 1740 – Précision et puissance