Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Bibliothèque Arduino haute performance pour contrôle de moteur DC

Composants et fournitures

Arduino UNO × 1
Transistor NPN usage général × 2
Transistor PNP usage général × 2
Résistance 1k ohms × 2
Diode 1N4007 – Haute tension, fort courant × 4

Applications et services en ligne

À propos de ce projet

Bibliothèque Arduino haute performance pour contrôle de moteur DC
Bibliothèque Arduino haute performance pour contrôle de moteur DC
Bibliothèque Arduino haute performance pour contrôle de moteur DC
Bibliothèque Arduino haute performance pour contrôle de moteur DC

Voici une bibliothèque Arduino pour contrôler les moteurs DC. Elle offre de nombreuses fonctionnalités et une grande flexibilité pour contrôler tout moteur DC selon les besoins. La bibliothèque est conçue selon les exigences du contrôle de mouvement industriel. Elle propose 16 fonctionnalités différentes pour un contrôle polyvalent :

  1. Contrôle du sens de rotation
  2. Contrôle de la vitesse de 0 à 100%
  3. Démarrage progressif (soft start) en temps spécifié – la vitesse augmente de 0% au niveau désiré en temps donné
  4. Arrêt progressif (smooth stop) en temps spécifié – la vitesse diminue de la vitesse actuelle à 0% en temps donné
  5. Contrôle par à-coups (jog control) dans les deux sens – le moteur fait un à-coups dans le sens spécifié
  6. Freinage DC (arrêt immédiat ou d'urgence)

Les descriptions brèves de toutes les fonctions sont données ci-dessous, suivies d'exemples montrant comment contrôler le moteur. Trois vidéos démontrent ces exemples. À la fin, le circuit suggéré utilise un pont en H largement utilisé pour contrôler les moteurs DC.

Pour utiliser cette bibliothèque dans votre sketch Arduino, copiez simplement le dossier DC_Motor dans le répertoire racine des bibliothèques Arduino, par exemple C:\arduino-1.6.7\libraries.

Description des fonctions de la bibliothèque

  1. DC_Motor(int pin1, int pin2): déclare les broches Arduino qui pilotent le moteur DC
  2. DC_Motor(int pin1, int pin2, int speed_flag): déclare les broches de sortie analogique Arduino qui pilotent le moteur DC
  3. start_motor(int dir): démarre la rotation du moteur dans le sens spécifié. Si direction = 1 → avant, sinon arrière
  4. forward(): démarre la rotation en avant
  5. reverse(): démarre la rotation en arrière
  6. dc_break(): arrête instantanément la rotation du moteur*
  7. stop_motor(): arrête la rotation du moteur
  8. jogg_full_speed(int dir): applique un à-coups au moteur pendant 5 secondes à pleine vitesse dans le sens requis
  9. *Note : cette fonction ne fonctionne que si le moteur DC a des dispositions internes pour le freinage DC. Un circuit de pilotage approprié avec résistances de freinage dynamique (DBR) doit être conçu avec toutes les précautions pour ne pas endommager le moteur ou le circuit.
  10. Toutes les fonctions ci-dessus offrent un contrôle simple. Elles ne contrôlent pas la vitesse. Les 8 fonctions suivantes contrôlent la vitesse et le sens, mais nécessitent de sélectionner les broches de sortie analogique de l'Arduino pour les utiliser. Le moteur DC doit être initialisé avec la 2ème fonction avec le drapeau de vitesse (speed_flag) à 1.

  11. set_speed(int speed): règle la vitesse du moteur DC entre 0 et 100%
  12. forward_with_set_speed(): démarre le moteur en avant à la vitesse définie
  13. reverse_with_set_speed(): démarre le moteur en arrière à la vitesse définie
  14. run_motor(int dir, int speed): fait tourner le moteur dans un sens à la vitesse définie
  15. jogg_set_speed(int dir, int speed): applique un à-coups dans un sens à la vitesse définie
  16. motor_speed_zero()*: réduit la vitesse du moteur à 0 – l'arrête
  17. soft_start(int dir, int speed, int time_in_sec): augmente la vitesse de 0 au niveau désiré en temps spécifié (en secondes) dans un sens donné
  18. smooth_stop(int time_in_sec): réduit la vitesse du moteur de la vitesse courante à 0 en temps spécifié (en secondes)
  19. *Note : on ne peut pas utiliser stop_motor() ici car il donne une sortie numérique alors que cette fonction donne une sortie analogique minimale pour rendre la vitesse du moteur nulle. Quand on contrôle un moteur DC avec la vitesse, ne l'arrêtez pas brutalement mais ramenez sa vitesse à zéro.

Exemples

1) Faire tourner le moteur DC en avant et arrière à pleine vitesse (sans contrôle de vitesse)

/* Ce programme fait tourner le moteur DC en avant pendant 5 sec
puis l'arrête pendant 2 sec, puis en arrière pendant 5 sec,
arrêt 2 sec, en continu
créé par A M Bhatt (+91-9998476150), Gujarat, INDIA
le 12/10/2016
*/
#include 

DC_Motor motor(8, 12);

void setup() {}

void loop() {
  motor.forward();
  delay(5000);
  motor.stop_motor();
  delay(2000);
  motor.reverse();
  delay(5000);
  motor.stop_motor();
  delay(2000);
}

2) Faire tourner le moteur DC en avant et arrière à vitesse définie (avec contrôle de vitesse)

/* Ce programme fait tourner le moteur DC en avant pendant 5 sec
à 40% de vitesse, puis arrête 2 sec, puis en arrière pendant 5 sec à 80% vitesse
créé par A M Bhatt (+91-9998476150), Gujarat, INDIA
le 12/10/2016
*/
#include 

DC_Motor motor2(9, 10, 1);

void setup() {}

void loop() {
  motor2.set_speed(40);
  motor2.forward_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
  motor2.set_speed(80);
  motor2.reverse_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
}

3) Appliquer un à-coups (jog) au moteur dans les deux sens avec et sans contrôle de vitesse

/* Ce programme applique un jog à deux moteurs DC différents
* jog à pleine vitesse dans les deux sens pour le 1er moteur
* et jog à 80% vitesse en arrière et 30% en avant pour le 2e moteur
* créé par Ashutosh M Bhatt (+91-9998476150), Gujarat (INDIA)
* le 22/10/2016
*/
#include 

DC_Motor motor(8, 12);
DC_Motor motor2(9, 10, 1);

void setup() {}

void loop() {
  motor.jogg_full_speed(1);
  motor.jogg_full_speed(0);
  motor2.jogg_set_speed(0, 80);
  motor2.jogg_set_speed(1, 30);
}

4) Appliquer démarrage progressif et arrêt progressif au moteur

/* Ce programme donne un démarrage progressif au moteur et augmente sa vitesse
de 0 à 90% en 10 sec en avant
puis arrêt progressif de 90% à 0 en 5 sec
nouveau démarrage progressif de 0 à 50% en 6 sec en arrière
et enfin arrêt progressif de 50% à 0 en 3 sec
créé par A M Bhatt (+91-9998476150), Gujarat, INDIA
le 12/10/2016
*/
#include 

DC_Motor motor2(9, 10, 1);

void setup() {}

void loop() {
  motor2.soft_start(1, 90, 10);
  delay(3000);
  motor2.smooth_stop(5);
  motor2.soft_start(0, 50, 6);
  delay(3000);
  motor2.smooth_stop(3);
}

Processus de fabrication

  1. Créer des effets audio pilotés par capteurs avec le kit Satellite CCRMA
  2. Construire sa propre machine à écrire les devoirs à la maison (Traceur à stylo)
  3. Robot de détection humaine basé sur Arduino Uno : Intégration capteurs étape par étape
  4. Bibliothèque Complète pour Moteur Pas à Pas Bipolaire Arduino
  5. Véhicule Télécommandé par Android avec Raspberry Pi et Shield Moteur
  6. Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
  7. Créez un robot suiveur de ligne autonome avec Arduino UNO
  8. Contrôlez votre Roomba Create 2 avec Arduino et Android – Guide pas à pas
  9. Kit de robot de navigation intérieure intelligente pour projets Arduino