Aller au contenu

Principe de commande des servomoteurs et des moteurs CC. PWM, PPM, MLI, kezako?

Principe de commande des servomoteurs et des moteurs CC. PWM, PPM, MLI, kezako?

PWM PPM, MLI c'est quoi tout ce charabia ? 

Le PWM :

Où utilise-t-on un signal PWM ? 

Ce type de signal peut avoir beaucoup d'utilités diverses, il permet par exemple de piloter la vitesse d'un moteur à courant continu comme dans ce tutoriel sur l'utilisation d'un driver de moteur à courant continu, il peut aussi être utilisé pour contrôler la luminosité d'une led ou encore être transformé en signal analogique en ajoutant un filtre. 

PWM qu'est-ce que ça signifie ?

PWM et l'acronyme de Pulse Width Modulation, ou traduit en français " Modulation par Largeur d'Impulsion" = MLI que vous pouvez aussi retrouver sous cette dénomination dans la littérature. 

Qu'est-ce que le PWM ? 

Un signal PWM ou MLI est un signal périodique (= qui se répète) et forme un "créneau" avec l'alternance d'état "HAUT" et d'état "BAS". On parle parfois de signal "haché" .  

Qu'est-ce qui caractérise un signal PWM ? 

Ce qui caractérise un signal PWM c'est:

  • Sa fréquence F, c'est à dire le nombre de fois que le créneau se répète par seconde. L'unité est l'Hertz (Hz). 

En définissant la fréquence du signal on définit aussi la période T du signal PWM, c'est à dire le temps que met un créneau à se répéter. 
En effet mathématiquement on a : F = 1/T   et donc T = 1/F, avec T exprimé en secondes.

NB : Ce qui est intéressant à remarquer c'est que l'unité de Hertz est homogène à l'inverse de l'unité du temps : [s]^-1

  • Son rapport cyclique, qui est le pourcentage de temps du signal à l'état HAUT sur la période du signal. 

Voilà comment on se représente le PWM : 

Signal PWM

Comment génère t-on un signal PWM ? 

Le plus simple : utiliser la fonction, analogWrite(pin,ratio); du core arduino. Elle permet de générer un signal PWM dont le rapport cyclique sera défini par la valeur de "ratio" . Cette valeur est un entier codé sur 8 bits. On met la valeur ratio à 0 dans la fonction pour définir un signal de rapport cyclique de 0% et 255 pour un rapport cyclique de 100%. 

Cette fonction fonctionne sur les pin 3, 5, 6, 9, 10, et 11 sur la plus part des petites cartes arduino (uno, nano, pro mini, leonardo ...) et de base la fréquence est alors d'environ 980 Hz sur le pins 5 et 6 et de 490 Hz sur les pins 3, 9 , 10 et 11  ( Sauf sur la leonardo ou la fréquence du PWM est de base aussi à 980 Hz sur les pins 3 et 11) . 

Cette fonction fonctionne sur plus des pins sur les plus grandes cartes arduino ou plus puissantes (mega, due, zero etc...) 

Les fréquences peuvent se changer et il est même possible de générer des PWM avec un rapport cyclique codable avec une résolution supérieur.  Il est aussi possible de faire un PWM en changeant rapidement l'état de n'importe quel pin de votre microcontrôleur...

Cependant nous allons nous arrêter là sur ce sujet et un autre article sera là pour répondre à vos questions sur cette partie ! 

Le PPM : 

Où utilise-t-on un signal PPM ? 

C'est un signal très utilisé dans le monde du modélisme pour piloter la position d'un servomoteur  ainsi que les variateurs des moteurs brushless des drones pour contrôler leur vitesse de rotation. 

PPM qu'est-ce que ça signifie ?

PPM en science, c'est l'acronyme de Partie Par Million pour quantifier la quantité de particules dans un volume par exemple,  cependant ce n'as pas du tout ce qui nous intéresse ici ! En effet en robotique et en radio-amateurisme, PPM est l'acronyme de l'anglais Pulse Position Modulation.  

Qu'est-ce que le PPM ? 

Une fois qu'on a bien compris ce qu'est un signal PWM il est très simple d'expliquer le signal PPM, puisqu'il s'agit d'un signal PWM particulier, de fréquence fixée à environ 50 Hz; ce qui  donne une période d'environ 20ms; avec un temps à l'état Haut qui doit être entre 0,7ms et 2.1 ms environ, c'est à dire un rapport cyclique compris entre environ 3.5% et 10.5%.  

Signal PPM

Maintenant vous comprenez mieux pourquoi certains parlent de PWM pour parler du signal pilotant un servomoteur...  

Qu'est-ce qui caractérise un signal PPM ?

Ayant sa fréquence imposée à 50 Hz, la seule chose qui caractérise le signal c'est tout simplement la valeur du temps à l'état Haut. Et c'est cette valeur qui va transmettre l'information généralement de vitesse ou de position que nous souhaitons transmettre. 

Comment génère t-on un signal PPM ? 

Le plus simple est d'ouvrir l'exemple Servo/Knob dans l'IDE arduino. 
Avec un simple potentiomètre à brancher sur votre arduino vous avez alors un véritable " testeur de servo " 

Vous pouvez aussi regarder le code de test fournis sur le test du servomoteur 9G 


Le CPPM (ou PPMSUM)

Où utilise-t-on un signal CPPM ? 

C'est un signal utilisé dans le monde du modélisme pour piloter un drone permettant de diminuer le nombre de fil nécessaire par rapport à l'usage du PPM. Cependant c'est du moins pour le moment un peu moins répandu que le PPM. 

CPPM qu'est-ce que ça signifie ?

CPPM = Combined PPM ou PPMSUM qui se traduit en PPM Sommé.  Pourquoi j'en parle ici, alors que le but de l'article est de parler de PWM et de PPM ? C'est que outre le fait que le CPPM soit une extension du PPM, le problème c'est que souvent les gens se trompent et utilisent le terme de PPM lorsqu'ils parlent du CPPM, d'où les confusions récurrentes ...  D'où la nécessité d'aussi parler du CPPM.

Qu'est-ce que le CPPM ? 

Une fois qu'on a bien compris ce qu'est un signal PPM il est très simple d'expliquer le signal CPPM, puisqu'il s'agit  d'une combinaison /superposition/somme de plusieurs signaux PPM à la suite!

En effet si on reprends la définition du PPM on voit qu'il a une période de 20ms mais que le temps haut est au maximum de 2.1ms environ ... Soit beaucoup de temps à l'état bas qui sert pas à grand-chose ...
Un petit malin a eu l'idée géniale de transformer ce temps qui sert à rien pour transmettre 7 PPM supplémentaire sur le même fil permettant ainsi de transmettre 8 informations différentes en 20ms sur un seul fil là où il faudrait 8 fils avec 8 signaux PPM sinon ! 
La grande astuce étant de remarquer que 8 * 2.5ms ça permet de garder la période de 20ms, et on a bien 2,5ms qui est un temps suffisamment long pour y faire un signal de temps haut de 2,1ms ou moins ! On peut ainsi avoir 8 canaux sur un seul fil grâce au CPPM!

 signal CPPM

Les 8 valeurs de temps ainsi codée pouvant alors être toute différentes,  CPPM n'est donc plus un signal PWM, mais il reste un signal périodique de période 20ms et donc de fréquence 50 Hz.

Qu'est ce qui caractérise un signal CPPM ?

C'est tout simplement les 8 valeurs de temps à l'état haut de chacune des 8 valeurs que nous souhaitons transmettre. 

Comment génère t'on un signal CPPM ? 

Le plus simple est de se rendre sur cette page et d'utiliser la librairie et les exemples donnés. 

 

Le mot de la fin :


J'espère que ceci éclaircira les notions de PWM et PPM, ainsi que de CPPM. Cependant sachez qu'il existe d'autres types de signaux et de protocoles et que dans le monde du modélisme chaque marque y va un peu du sien...
En effet on a le  SBUS de futaba, le SUND de graupner, le  DSM2 et DSMX de spectrum et d'autres encore ... 

 

Cet article vous a plu ? Laissez-nous un commentaire !

Tous les champs sont obligatoires

Nom:
E-mail: (ne sera pas publié)
Commentaire:
Recopier le code