MThardPWM en détail
Génère un PWM avec un timer 16 bits.
Include à rajouter
#include "MThardPWM.h" // Voir http://arduino.dansetrad.fr/MTobjects
Je conseille fortement de laisser le commentaire, si une autre personne voulait essayer le programme, elle aurait directement un lien de téléchargement. C'est valable pour toutes les bibliothèques que vous utilisez.
Commentaires utiles
micro_seconde micro_secondes impulsion_de impulsions_de periode_de periodes_de, pour_cent
Ces commentaires sont des mots que l'on peut rajouter n'importe où et qui sont ignorés par le compilateur.
Constructeurs
MThardPWM(pin, pulseMicrosecond, periodMicrosecond); MThardPWM(pin, pulseMicrosecond); // periodMicrosecond = 20000 μs MThardPWM(pin); // periodMicrosecond = 20000 μs, pulseMicrosecond = 10000 μs
pin (uint8_t): broche Arduino Uno/Nano: 9, 10 Mega: 2, 3, 5, 6, 7, 8, 11, 12, 13, 44, 45, 46
pulseMicrosecond (float): durée de l'impulsion en millisecondes
periodMicrosecond (float): durée de la période en millisecondes, les sorties (9,10), (2, 3, 5), (6, 7, 8), (11, 12, 13), (44, 45,
46) ont la même fréquence, p.ex changer la fréquence de la broche 7 change aussi la fréquence des broches 6 et 8 si elles sont utilisées.
Fonctions utiles
void setPulse(float pulseMicrosecond); void setDutyCycle(float dutyCycle); void setPeriod(float periodMicrosecond); void detach(void); void attach(void);
setPulse change la durée de l'impulsion
setPulse sans paramètres choisi des impulsions de 10ms
setDutyCycle change la durée de l'impulsion grâce au rapport cyclique
setDutyCycle sans paramètres choisit un rapport cyclique de 50%
setPeriod change la période
setPeriod sans paramètres choisi une période de 20ms (50Hz)
detach -> déconnecte la broche, elle redevient "normale" en entrée (n'efface pas les temps
programmés)
attach -> reconnecte la broche, si elle a été "détached"
Fonctions bonus
float getPulse(void); float getPeriod(void); float getDutyCycle(void); float getResolution(void);
getPulse retourne la durée de l'impulsion
getPeriod retourne la durée de la période
getDutyCycle retourne la valeur du rapport cyclique
getResolution retourne la résolution en μs (entre 62,5ns à 64μs)
Exemples