Ignorer la navigation

II. Fonctionnement des ports de la carte Arduino

Information : La carte Arduino commande chaque moteur par l’intermédiaire de 2 ports : DIR qui détermine le sens et PWM la vitesse

 

Fonction DIR : (ressource : board_overview.pdf )

12

         

 DIR A

         

A digital signal to control the rotation direction of motor A (e.g. HIGH=CW, LOW=CCW).
13

         

 DIR B

          

A digital signal to control the rotation direction of motor B (e.g. HIGH=CW, LOW=CCW).

 

 

Fonction PWM : Lire document « La génération d'impulsion modulée en largeur (ou PWM - Pulse Width Modulation) »


L'exemple montre comment utiliser une sortie "analogique" (PWM) pour atténuer la luminosité d'une LED ou la vitesse d’un moteur.
La modulation de la largeur d'impulsion (MLI ou PWM), est une technique pour obtenir des effets d'allure analogique avec des broches numériques. Le contrôle numérique est utilisé pour créer une onde carrée, un signal basculant entre un niveau HAUT et BAS, 0V et 5V. Cette succession de niveaux HAUT/BAS peut simuler des tensions entre le niveau HAUT (5 Volts) et le niveau BAS (0 Volts) en faisant varier la proportion du temps où le signal est HAUT sur la proportion de temps où le signal est BAS. La durée du temps du niveau HAUT est appelé largeur d'impulsion, ou encore "duty cycle" (cycle de travail en français). Pour obtenir une variation analogique, il suffit de changer ou de modifier cette largeur d'impulsion. En répétant la succession de niveaux HAUT/BAS assez rapidement avec une LED par exemple, le résultat est semblable à celui que l'on obtiendrait en contrôlant la luminosité de la LED avec une tension régulière entre 0 et 5V.


Dans le graphique ci-contre, les lignes vertes représentent une période de temps régulière. Cette durée, ou période, est l'inverse de la fréquence du signal PWM (qui est une onde carrée). En d'autres termes, avec une fréquence PWM générée par la carte Arduino de l'ordre de 500hz, l'espace entre 2 lignes mesure 2 millisecondes.


Un appel de la fonction analogWrite(valeur) utilise une valeur comprise entre 0 et 255, tel que analogWrite(255) utilise 100% du cycle (toujours au niveau HAUT), . La valeur 0 correspond ainsi à 0% du cycle de travail (duty cycle).

1. Déterminer la valeur de la fonction analogWrite si l’on souhaite une « vitesse moteur » à N/2 (la moitié de la vitesse max possible).

2. Quel est dans ce cas l’allure du cycle (complétez le cycle vide ci-dessous)?


       

  

Soit le cycle de PWM suivant:



3. Déterminer le contenu de la fonction analogWrite :    analogWrite( N°PIN, ..…….)

4. Déterminer la valeur de la tension moyenne envoyée :  ……….....

5. Quel est la vitesse du moteur dans ce cas:       N/4?        N/2?        3N/4 ?