Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
fr:informatics:piloter_les_moteurs [29/01/2025 09:54]
Keuronde [Initialisation des moteurs]
fr:informatics:piloter_les_moteurs [10/01/2026 18:54] (Version actuelle)
Keuronde [Structure du code]
Ligne 26: Ligne 26:
   * **La fréquence :** trop faible, le moteur s’arrête et redémarre. Moins visibles, les forts appels de courants liés à ces redémarrages peuvent créer des perturbations. Trop élevée, elle crée un grand nombre de commutations qui font chauffer le composant.    * **La fréquence :** trop faible, le moteur s’arrête et redémarre. Moins visibles, les forts appels de courants liés à ces redémarrages peuvent créer des perturbations. Trop élevée, elle crée un grand nombre de commutations qui font chauffer le composant. 
   * **Le rapport cyclique :** défini comme le rapport entre le temps où le signal est à l’état haut et la période du signal. C’est ce paramètre qui impacte directement et relativement linéairement la vitesse du moteur.   * **Le rapport cyclique :** défini comme le rapport entre le temps où le signal est à l’état haut et la période du signal. C’est ce paramètre qui impacte directement et relativement linéairement la vitesse du moteur.
-Le fonctionnement exact du module PWM va dépendre de votre microcontrôleur. Nous vous conseillons fortement de lire le chapitre associé dans la fiche technique de votre microcontrôleur (ici celle du RP2040) et le SDK en C (ici celui du RP2040). Lisez bien les documents dans cet ordre !+Le fonctionnement exact du module PWM va dépendre de votre microcontrôleur. Nous vous conseillons fortement de lire le chapitre associé dans la fiche technique de votre microcontrôleur ({{ :fr:informatics:rp2040-datasheet.pdf |ici celle du RP2040}}) et le SDK en C ({{ :fr:informatics:raspberry-pi-pico-c-sdk.pdf |ici celui du RP2040}}). Lisez bien les documents dans cet ordre !
  
 ==== Initialisation des moteurs ==== ==== Initialisation des moteurs ====
Ligne 47: Ligne 47:
 ^ Vitesse souhaitée ^ Commande ^ ^ Vitesse souhaitée ^ Commande ^
 | 0 % | 0 | | 0 % | 0 |
-| 10 % | 312 +| 10 % | 2500 
-| 50 % | 1562 +| 50 % | 12500 
-| 90 % | 2812 +| 90 % | 22500 
-| 100 % | 3125 |+| 100 % | 25000 |
 Voici qui est vrai pour le module PWM, mais pour notre fonction qui gère la commande de la vitesse du moteur, nous souhaitons gérer une subtilité supplémentaire : le sens du moteur. Voici qui est vrai pour le module PWM, mais pour notre fonction qui gère la commande de la vitesse du moteur, nous souhaitons gérer une subtilité supplémentaire : le sens du moteur.
 ===== Structure du code ===== ===== Structure du code =====
Ligne 60: Ligne 60:
 La fonction pour envoyer une commande de vitesse. Cette fonction comporte plusieurs subtilités : La fonction pour envoyer une commande de vitesse. Cette fonction comporte plusieurs subtilités :
  
-  * L’argument vitesse, est un entier de 32 bits signé et nous envoyons au module PWM un entier de 16bits non signé. Le signe doit commande le sens de rotation de moteurs. La valeur absolue de la vitesse doit être saturée à la valeur maximale acceptable par le module PWM avant de lui être envoyé.+  * L’argument vitesse, est un entier de 32 bits signé et nous envoyons au module PWM un entier de 16bits non signé. Le signe doit commander le sens de rotation de moteurs. La valeur absolue de la vitesse doit être saturée à la valeur maximale acceptable par le module PWM avant de lui être envoyé.
   * Nous voulons que cette fonction prenne en argument le moteur à piloter. Ceci afin de simplifier le code qui utilisera cette fonction.   * Nous voulons que cette fonction prenne en argument le moteur à piloter. Ceci afin de simplifier le code qui utilisera cette fonction.
  
Ligne 67: Ligne 67:
 Attention, pour utiliser le module PWM, vous devez éditer votre fichier CMakeLists.txt pour ajouter hardware_pwm dans « target_ling_libraries », comme ceci : Attention, pour utiliser le module PWM, vous devez éditer votre fichier CMakeLists.txt pour ajouter hardware_pwm dans « target_ling_libraries », comme ceci :
   target_link_libraries(PAMI_Cours_Moteurs   target_link_libraries(PAMI_Cours_Moteurs
-  ... +      ... 
-  hardware_pwm  +      hardware_pwm  
-  ...+      ...
   )   )