Sur la uno, les broches 5 et 6 correspondent au timer 0!
On peut changer le prescaler si les fonctions micros(), delay(), et millis() ne sont pas utilisées, sinon il faut aussi ajuster tous leurs paramètres.
Deux cas, le timer 2 est utilisé pour faire autre chose, auquel cas ceci n'est pas utilisable, soit le timer 2 n'est pas utilisé par ailleurs et un simple
void setup()
{
// prescaller for 31.372KHz
TCCR2B = B11111001;
}
suffirait. Bon, mais ici, c'est le timer 0 qui est utilisé.
Pour changer la fréquence du hachage dans le cas présent, il faut savoir si micros() et millis() sont utilisées. delay() n'est pas forcément un gros problème, on peut la remplacer par _delay_ms(). On peut donc éventuellement changer la fréquence.
Sinon, si il est possible d'utiliser un autre timer (broches 9 et 10 pour le timer 1 ou 3 et 11 pour le timer2, ce serait une solution. A condition que ces timers ne soient pas utilisés. Par exemple Servo utilise le timer 1 sans le crier sur les toits.
L'intérêt du hachage c'est que le module de puissance ait un bon rendement. Si le filtrage se fait avec self et condensateur, cela ne change quasiment rien au rendement de l'ensemble.