Arduino : PWM V01, 13/08/2018 PWM: Pulse Width Modulation • Le WPM est un signal très connu en électronique. Il permet par exemple de commander un servomoteur. • Le principe est de faire varier (moduler) la durer / la largeur (width) d’une impulsion de 5v (Pulse). • C’est pourquoi on parle de Pulse Width Modulation. Rapport cyclique: c’est le rapport en % entre le (+5v) et le (0v): 2 PWM: conversion numérique / analogique • Avec un signal PWM on peut commander un composant électronique: – Avec un rapport cyclique de 100%, le composant voit une tension en entrée de 5v. – Avec un rapport cyclique de 50%, le composant voit une tension en entrée de 2.5v. La variation du rapport cyclique, permet la variation de la tension ( la consigne) -> Conversion numérique / Analogique 3 PWM sur arduino uno R3 • Le microcontrôleur de l’arduino peut générer un signal PWM. • Mais, on ne peut utiliser que certaines broches: 3,5,6,9,10 ,11 et les 6 pins analogiques. • Le rapport cyclique est exprimé en un chiffre entre 0 et 255 ( 50% correspond à 127): codage sur 8 bits. 4 AnalogueWrite • On peut utiliser analogueWrite pour envoyer un signal PWM. • Il faut donner le numéro de la broche et la valeur du rapport cyclique entre 0 et 255). 5 Exercice 1: LED RGB • On a 3 « LED » en une seule: Red – Green – Blue. • On fait varier la tension sur chaque LED. • Les différentes proportions permettent de générer la couleur désirée: Ne pas oublier 3 résistances 220 Ohm. 6 Exercice 02: Servo • Le servo prend une impulsion qui varie entre 1 et 2ms. • Ceci lui permet tourner entre 0 et 180°. • À 1.5ms le servo est à micourses. • La fréquence est de 50Hz. • Ces valeurs peuvent changer en fonction des constructeurs (en particulier le min/max) 7 <Servo.h> • On utilise la bibliothèque servo.h pour pouvoir commander le servo avec un PWM. 8 Exemple: • On peut (option), préciser les limites de fonctionnement dans la déclaration. On peut écrire la valeur en angle ou en durée; 9 Câblage • Le fil orangé comporte le signal de commande -> vers la pin PWM de l’arduino. • Alimentation 5v: Pour un petit servo, on peut utiliser l’arduino, sinon, prévoir une alimentation externe (et mettre les masses en commun). 10 Commander un ESC • Un ESC prend la même consigne qu’un servo. • On peut donc le commander avec le même principe. • L’alimentation du moteur est assurée par une Lipo. • Attention: mettre les masse en commun. 11