MTsoftPWM en détail
Gestion par événements pour UNO, Nano, Mega

Ce PWM est géré soft, donc utilisable sur toutes broches indépendamment. Périodes possibles de 200µs à 5 jours.

Include à rajouter

#include <MTobjects.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
niveau_et_arret
niveaux_et_arret
on_commence_par

Ces commentaires sont des mots que l'on peut rajouter n'importe où et qui sont ignorés par le compilateur.

Constructeur

MTsoftPWM(pin, 
          pulseMicrosecond = 10000 µs,
          periodMicrosecond = 20000 µs,
          depart = HIGH,
          numberOfLevels = MT_INFINI,
          onStopFunction = PAS_D_ACTION,
          active = MT_ON);

Fonctions utiles

void setPulse(float pulseMicrosecond);
void setDutyCycle(float dutyCycle);
void setPeriod(float periodMicrosecond);
void detach(void);
void attach(void);
void onStop(void);

setPulse: change la durée de l'impulsion
setPulse: sans paramètres choisit 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 choisit 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"
onStop: fonction à surcharger appelée quand on vient de finir tous les niveaux

Fonctions bonus

float getPulse(void);
float getPeriod(void);
float getDutyCycle(void);
float getResolution(void);
void setNumberOfLevels(unsigned long numberOfLevels);
unsigned long getNumberOfLevels(void);
unsigned long getNumberOfLevelsRemains(void);
void stop(void);
void start(void);
boolean getActive(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)
setNumberOfLevels: impose un nombre de niveaux avant de s'arrêter
getNumberOfLevels: retourne le nombre programmé
getNumberOfLevelsRemains: retourne le nombre de niveaux qu'il reste à faire
stop: suspend l'activité
start: reprend l'activité
getActive: retourne true si actif

Exemples