Différences
Ci-dessous, les différences entre deux révisions de la page.
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 [28/01/2025 14:54] Keuronde [Structure du code] |
fr:informatics:piloter_les_moteurs [29/01/2025 09:56] (Version actuelle) Keuronde [Module PWM et Raspberry Pi Pico] |
||
---|---|---|---|
Ligne 32: | Ligne 32: | ||
Initialisez les broches de sens en sortie, configurez la broche « Enable » en PWM. | Initialisez les broches de sens en sortie, configurez la broche « Enable » en PWM. | ||
- | Configurez la fonction PWM à une fréquence de 40kHz. Pour cela, vous avez en général deux paramètres sur lesquels jouer : | + | Idéalement nous aimerions configurer notre fonction PWM à une fréquence comprise entre 20 kHz et 40 kHz, ce qui limite les sifflements du moteur. Seulement, notre pont en H est un peu vieux et le fabriquant conseille de ne pas dépasser 5 kHz. |
* Un diviseur de fréquence en entrée du bloc PWM | * Un diviseur de fréquence en entrée du bloc PWM | ||
* La valeur de rebouclage du module PWM | * La valeur de rebouclage du module PWM | ||
Ligne 39: | Ligne 40: | ||
Si votre valeur de rebouclage est plus grande que celle admise par votre microcontrôleur, | Si votre valeur de rebouclage est plus grande que celle admise par votre microcontrôleur, | ||
- | Dans notre cas, F_microcontrôleur = 125 MHz, F_désirée = 40 kHz. Nous trouvons une valeur de rebouclage à 3 125. cette valeur est admissible par le module PWM qui est sur 16 bits (max 65 535). | + | Dans notre cas, F_microcontrôleur = 125 MHz, F_désirée = 5 kHz. Nous trouvons une valeur de rebouclage à 25 000. cette valeur est admissible par le module PWM qui est sur 16 bits (max 65 535). |
==== Commande en vitesse ==== | ==== Commande en vitesse ==== | ||
Ligne 46: | 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 : | 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 : | ||
===== Structure du code ===== | ===== Structure du code ===== | ||
Ligne 66: | Ligne 67: | ||
Attention, pour utiliser le module PWM, vous devez éditer votre fichier CMakeLists.txt pour ajouter hardware_pwm dans « target_ling_libraries », | Attention, pour utiliser le module PWM, vous devez éditer votre fichier CMakeLists.txt pour ajouter hardware_pwm dans « target_ling_libraries », | ||
target_link_libraries(PAMI_Cours_Moteurs | target_link_libraries(PAMI_Cours_Moteurs | ||
- | | + | |
- | hardware_pwm | + | hardware_pwm |
- | ... | + | ... |
) | ) | ||
Ligne 98: | Ligne 99: | ||
Avec ce bout de code, votre robot avance et recule comme s’il accélérait progressivement. | Avec ce bout de code, votre robot avance et recule comme s’il accélérait progressivement. | ||
+ | |||
+ | Voir la branche [[https:// | ||
Aller, courage ! Encore une étape et nous pourrons entrer dans le vif du sujet. | Aller, courage ! Encore une étape et nous pourrons entrer dans le vif du sujet. |