Contrôler un moteur à courant continu à l'aide d'un driver de moteur L293D avec PWM Arduino

Contrôler un moteur à courant continu à l'aide d'un driver de moteur L293D avec PWM Arduino

Ce projet démontre comment contrôler la vitesse et la direction d'un moteur à courant continu en utilisant une puce de moteur L293D et les capacités de modulation de largeur d'impulsion (PWM) d'Arduino. Cette configuration permet un contrôle précis du moteur, ce qui la rend adaptée à une variété d'applications.

Voici quelques idées de projet utilisant cette configuration :

  • Robotique :Contrôlez le mouvement des roues d'un petit robot.
  • Dispositifs automatisés :Créez des rideaux automatiques, des stores ou un petit convoyeur.
  • Contrôle du ventilateur :Ajustez la vitesse d'un ventilateur de refroidissement en fonction des relevés de température.
  • Suiveurs solaires :Placez de petits panneaux solaires pour suivre le soleil tout au long de la journée.

Matériel/Composants

  • Arduino Uno (ou carte compatible)
  • L293D Driver de moteur IC
  • Moteur CC (classé pour les limites de tension et de courant du L293D, jusqu'à 600 mA)
  • Alimentation 9V (pour le moteur)
  • Fils de connexion
  • Plaque de prototypage (recommandée)

Guide de câblage

La puce L293D agit comme une interface entre l'Arduino et le moteur à courant continu. Elle permet à l'Arduino de contrôler à la fois la vitesse et la direction du moteur. La puce nécessite une alimentation séparée pour le moteur car l'Arduino ne peut pas fournir suffisamment de courant pour la plupart des moteurs. (dans la vidéo à 04:04)

%%CÂBLAGE%%

Explication du code

Le code Arduino contrôle le pilote L293D, qui à son tour contrôle le moteur DC. Le code utilise la PWM pour faire varier la vitesse du moteur et des signaux numériques pour changer de direction.

Voici les principaux paramètres configurables dans le code :


#define P1A 10 // Arduino pin connected to L293D input 1A
#define P2A 11 // Arduino pin connected to L293D input 2A
#define EN12 9 // Arduino pin connected to L293D enable pin (1,2EN)

const int speedStep = 15; // Increment for speed changes
const int speedDelay = 1000; // Delay between speed steps (in milliseconds)

LeL293D()La fonction contrôle la direction et la vitesse du moteur. 'L' fait tourner le moteur dans le sens des aiguilles d'une montre, 'R' le fait tourner dans le sens inverse.spdle paramètre contrôle la vitesse (0-255) etenactive (1) ou désactive (0) le moteur. (dans la vidéo à 09:24)


void L293D(char dir,int spd, int en)
{
  if(dir =='L') // Clockwise rotation
  {
    // ...
    analogWrite(P1A,spd); // Set speed using PWM
    digitalWrite(P2A,LOW); 
  }else{ // Counter-clockwise rotation
    // ...
    digitalWrite(P1A,LOW);
    analogWrite(P2A,spd); // Set speed using PWM
  }
}

Projet vivant/Démonstration

La vidéo démontre le projet en action, montrant les changements de vitesse et de direction du moteur. Les lectures de l'oscilloscope visualisent les signaux PWM contrôlant le moteur. (dans la vidéo à 11:07)

Chapitres

  • Introduction au contrôle de moteur DC avec L293D
  • [00:30] Démonstration et explication du projet
  • [01:12] Aperçu du pilote de moteur L293D
  • [02:08] Spécifications du moteur à courant continu
  • [02:30] Explication de la fiche technique du L293D
  • [04:40] Explication et démonstration du câblage
  • [07:05] Explication du code Arduino
  • [11:07] Démonstration du projet et lectures de l'oscilloscope
144-Arduino source for L293D motor driver (loop)
Langue: C++
145-Source for a simple L293D motor controller using Arduino (CW, CCW, and STOP)
Langue: C++
Copié !

Fichiers📁

Aucun fichier disponible.