Bibliothèque de moteurs pas à pas bipolaires
Composants et fournitures
| × | 1 | ||||
| × | 1 |
Applications et services en ligne
|
À propos de ce projet
Auparavant, j'ai fourni une bibliothèque Arduino pour les moteurs pas à pas de type unipolaire. Il contrôle parfaitement la vitesse, la direction, le nombre de tours, l'angle du moteur, etc. tous les paramètres des moteurs pas à pas de type unipolaire. Mais c'était uniquement pour les moteurs pas à pas de type unipolaire. Comme nous le savons, le moteur pas à pas peut également être de type bipolaire. Mais cette bibliothèque ne peut pas contrôler le moteur pas à pas de type bipolaire. J'ai donc décidé de développer une autre bibliothèque arduino pour contrôler le moteur pas à pas de type bipolaire
Donc, ici, je présente la bibliothèque de moteurs pas à pas bipolaires dans Arduino pour tous les moteurs pas à pas de type bipolaire. La bibliothèque dispose de 9 fonctions différentes qui peuvent être utilisées pour faire tourner et contrôler le moteur selon les exigences. La bibliothèque est conçue selon le contrôle de mouvement industriel exigences. Voici quelques-unes des fonctionnalités de cette bibliothèque
1. Contrôle n'importe quel moteur pas à pas bipolaire
2. Contrôle le sens de rotation du moteur
3. Contrôle avec précision le nombre de tours du moteur comme 1, 2, 3, 4, .....
4. Contrôle avec précision la vitesse du moteur en tr/min avec une précision de 95%
5. Fait tourner le moteur avec précision pour obtenir un angle compris entre 0 et 360o avec une précision de 80 à 100 %
6. Compatible avec toutes les cartes arduino
Les brèves descriptions de toutes les fonctions de la bibliothèque sont données ici. Quelques exemples sont donnés par la suite qui expliquent comment le moteur est contrôlé à l'aide de cette bibliothèque. Une vidéo est également donnée qui montre la démonstration de ces exemples. Enfin, il est suggéré que le circuit utilise la puce L293D - largement utilisée comme pilote de pont en H pour les moteurs à courant continu ainsi que les moteurs pas à pas bipolaires.
Pour utiliser cette bibliothèque dans votre sketch arduino, copiez simplement le bi_polar_Stepper dossier dans le répertoire racine du dossier de la bibliothèque arduino comme C:\arduino-1.6.7\libraries
Description des fonctions de la bibliothèque :
1) bi_polar_Stepper(intpin1, int pin2, int pin3, int pin4) - cela créera une instance de bi_polar_Stepper dans l'esquisse arduino avec des broches de pilote de moteur pas à pas. Signifie qu'il faut spécifier les broches de la carte arduino qui sont utilisées pour piloter le moteur pas à pas
2) set_step_per_rev(intsteps)- cette fonction définira le nombre de pas requis par le moteur pas à pas pour effectuer 1 tour. Cela signifie qu'il définira l'angle de pas (résolution de pas) du moteur. Il faut entrer l'angle de pas du moteur pour un contrôle précis
3) set_RPM(int rpm) – cette fonction définira la vitesse du moteur en tr/min et le moteur tournera à la vitesse sélectionnée avec une précision allant jusqu'à 95%
4) rotation_CW() - cette fonction commencera à faire tourner le moteur dans le sens des aiguilles d'une montre. Pour faire tourner le moteur dans le sens des aiguilles d'une montre en continu, il faut utiliser cette fonction en boucle continue
5) rotate_CCW() - cette fonction commencera à faire tourner le moteur dans le sens inverse des aiguilles d'une montre. Pour faire tourner le moteur dans le sens inverse des aiguilles d'une montre en continu, il faut utiliser cette fonction en boucle continue
6) rotation(int dir)- cette fonction fera tourner le moteur selon la direction sélectionnée. Si la direction est donnée comme 1 alors le moteur tournera dans le sens des aiguilles d'une montre et vice versa
7) rotate_one_rev(intdir)- cette fonction fera tourner le moteur exactement 1 tour dans la direction sélectionnée
8) rotate_n_rev(int dir, intnum)- cette fonction fera tourner le moteur du nombre de tours requis dans les directions sélectionnées
9) rotate_x_deg(int deg) – cette fonction fera tourner le moteur pour obtenir un angle de 0 à 360o dans les deux sens avec une précision d'angle de 80 à 100 %
Exemples :
1) Faire tourner le moteur en continu dans n'importe quelle direction à 60 tr/min
/*ce programme fera tourner en continu le moteur pas à pas bipolaire
* avec un angle de pas de 1,8 degrés (200 pas/tour) à 60 tr/min
* créé par Ashutosh Bhatt le 12/12/16
*/
#include
#define steps 200 // changez ces pas en fonction du moteur
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int tr/min =60 ;
configuration vide()
{
// mettez votre code de configuration ici, à exécuter une fois :
Serial.begin(9600);
Serial.println("programme de test de bibliothèque de moteurs pas à pas bipolaires");
my_step_motor.set_step_per_rev(steps);
my_step_motor.set_RPM(rpm);
Serial.println("le moteur tourne dans le sens des aiguilles d'une montre");
}
boucle vide()
{
mon_moteur_pas.rotate_CW();
}
2) Faire tourner le moteur d'un tour dans le sens des aiguilles d'une montre et d'un tour dans le sens inverse des aiguilles d'une montre en continu
/*ce programme fera tourner le moteur pas à pas bipolaire
* avec un angle de pas de 1,8 degrés (200 pas/tour)
* comme 1 tour dans le sens des aiguilles d'une montre (CW) et un tour
* dans le sens antihoraire (CCW) à 30 RPM en continu
* créé par Ashutosh Bhatt le 12/12/16
*/
#include
#définir les étapes 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int tr/min =30 ;
configuration vide()
{
// mettez votre code de configuration ici, à exécuter une fois :
Serial.begin(9600);
Serial.println ("programme de test de bibliothèque de moteurs pas à pas bipolaire créé par Ashutosh Bhatt");
my_step_motor.set_step_per_rev(steps);
mon_moteur_pas.set_RPM(rpm);
}
boucle vide()
{
Serial.println("le moteur tourne dans le sens des aiguilles d'une montre");
my_step_motor.rotate_one_rev(1) ;
retard(1000);
Serial.println("le moteur tourne dans le sens inverse des aiguilles d'une montre");
my_step_motor.rotate_one_rev(0) ;
retard(1000);
}
3) Faire tourner le moteur dans le sens des aiguilles d'une montre à 100 tr/min et dans le sens inverse des aiguilles d'une montre à 50 tr/min en continu
/*ce programme fera d'abord tourner le moteur pas à pas bipolaire
* avec un angle de pas de 1,8 degrés (200 pas/tour)
* dans le sens horaire (CW) pendant 2 tours à 100 RPM puis
* dans le sens antihoraire (CCW) pour 2 tours à 50 RPM
*en continu
* créé par Ashutosh Bhatt le 12/12/16
*/
#include
#définir les étapes 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;
configuration vide()
{
Serial.begin(9600);
Serial.println ("Programme de test de bibliothèque de moteurs pas à pas bipolaire créé par Ashutosh Bhatt");
my_step_motor.set_step_per_rev(steps);
}
boucle vide()
{
my_step_motor.set_RPM(100);
for(i=0;i<100;i++) mon_moteur_pas.rotate(1);
retard (2000);
my_step_motor.set_RPM(50);
for(i=0;i<100;i++) my_step_motor.rotate(0);
retard (2000);
}
4) Faites tourner le moteur de 4 tours dans le sens des aiguilles d'une montre à 20 tr/min et de 2 tours dans le sens inverse des aiguilles d'une montre à 10 tr/min en continu
/*ce programme fera d'abord tourner le moteur pas à pas bipolaire
* avec un angle de pas de 1,8 degrés (200 pas/tour)
* 4 tours dans le sens horaire (CW) à 20 RPM puis
* 2 tours dans le sens antihoraire (CCW) à 10 RPM
*en continu
* créé par Ashutosh Bhatt le 12/12/16
*/
#include
#définir les étapes 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;
configuration vide()
{
Serial.begin(9600);
Serial.println("Programme de test de bibliothèque de moteur pas à pas unipolaire créé par Ashutosh Bhatt");
my_step_motor.set_step_per_rev(steps);
}
boucle vide()
{
my_step_motor.set_RPM(20);
mon_moteur_pas.rotate_n_rev(1, 4);
retard (2000);
my_step_motor.set_RPM(10) ;
mon_moteur_pas.rotate_n_rev(0, 2);
retard (2000);
}
5) Tournez le moteur à 90o dans le sens des aiguilles d'une montre et à 90o dans le sens inverse des aiguilles d'une montre en continu à 30 tr/min
/*ce programme fera tourner le moteur bipolaire
* avec un angle de pas de 1,8 degrés (200 pas/tour) à 30 tr/min à
* 90 deg CW et 90 deg CCW en continu
* créé par Ashutosh Bhatt le 22/10/16
*/
#include
#define motor_steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int tr/min =30 ;
configuration vide()
{
// mettez votre code de configuration ici, à exécuter une fois :
Serial.begin(9600);
Serial.println("programme de test de bibliothèque de moteurs pas à pas bipolaires");
my_step_motor.set_step_per_rev(motor_steps);
my_step_motor.set_RPM(rpm);
Serial.println("le moteur tourne à 90 degrés d'avant en arrière");
}
boucle vide()
{
my_step_motor.rotate_x_deg(90);
retard (2000);
mon_moteur_pas.rotate_x_deg (270);
retard (2000);
}
Remarque :- Si le moteur pas à pas a des valeurs nominales de courant et de tension plus élevées, alors au lieu de la puce L293D, nous pouvons utiliser une puce L298 ou un ensemble de 4 transistors Darlington séparés comme TIP122, TIP142, etc. peuvent être utilisés pour piloter des moteurs pas à pas.
La bibliothèque donnée et les exemples de programmes ainsi que le circuit ci-dessus sont testés avec les moteurs pas à pas suivants
1) Moteur bipolaire biphasé avec 5V, 100 RPM (MAX), 200 pas/tour (angle de pas de 1,8o)
2) Moteur bipolaire biphasé avec 5V, 60 RPM (MAX), 200 pas/tour (angle de pas de 1,8o)
Code
- Bibliothèque Arduino pour moteur pas à pas bipolaire
Bibliothèque Arduino pour moteur pas à pas bipolaire C/C++
La bibliothèque contrôle le régime, la direction, les révolutions, l'angle de rotation de tous les types de moteurs pas à pas bipolaires avec une précision de 95 %Aucun aperçu (téléchargement uniquement).
Schémas
Ce circuit entraîne et contrôle le régime, la direction, l'angle de rotation, le nombre de tours du moteur pas à pas bipolaireProcessus de fabrication
- Moteur à réluctance
- Moteurs pas à pas
- Les pilotes intégrés facilitent la conception des moteurs pas à pas
- Télémétrie du capteur 2.0.1
- Prototype Raspoulette
- Tourelle de sentinelle Nerf autonome
- La zone grise entre les servomoteurs et les moteurs pas à pas
- Qu'est-ce qu'un moteur linéaire ?
- Qu'est-ce qu'un servomoteur ?