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