start:arduino:pwm
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| start:arduino:pwm [2022/12/20 14:42] – [Changé les frequences Timer 0] gerardadmin | start:arduino:pwm [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | =====Comment changer la fréquence PWM d' | + | ========Comment changer la fréquence PWM d' |
| : Guide épique | : Guide épique | ||
| + | |||
| + | [[https:// | ||
| Le microcontrôleur possède plusieurs temporisateurs qui peuvent exécuter différentes fonctions, telles que la génération d'un signal PWM . Pour que le temporisateur génère un signal PWM, il doit être préconfiguré en éditant le registre du temporisateur. Lorsque nous travaillons dans l'IDE Arduino, les minuteries sont configurées à notre insu dans la bibliothèque Arduino.h et obtiennent en fait les paramètres souhaités par les développeurs. Et ces paramètres ne sont pas très bons : la fréquence PWM par défaut est faible et les minuteries ne sont pas utilisées à leur plein potentiel. Regardons le PWM standard de l' | Le microcontrôleur possède plusieurs temporisateurs qui peuvent exécuter différentes fonctions, telles que la génération d'un signal PWM . Pour que le temporisateur génère un signal PWM, il doit être préconfiguré en éditant le registre du temporisateur. Lorsque nous travaillons dans l'IDE Arduino, les minuteries sont configurées à notre insu dans la bibliothèque Arduino.h et obtiennent en fait les paramètres souhaités par les développeurs. Et ces paramètres ne sont pas très bons : la fréquence PWM par défaut est faible et les minuteries ne sont pas utilisées à leur plein potentiel. Regardons le PWM standard de l' | ||
| ^Minuteur^ Épingles^ Fréquence^ Résolution^ | ^Minuteur^ Épingles^ Fréquence^ Résolution^ | ||
| - | |Minuterie 0| D5 et D6| 976Hz| 8 bits (0-255)| | + | |Minuterie 0| D5 et D6| **976Hz**| 8 bits (0-255)| |
| - | |Minuterie 1| D9 et D10| 488Hz| 8 bits (0-255)| | + | |Minuterie 1| D9 et D10| **488Hz**| 8 bits (0-255)| |
| - | |Minuterie 2| D3 et D11| 488Hz| 8 bits (0-255)| | + | |Minuterie 2| D3 et D11| **488Hz**| 8 bits (0-255)| |
| En fait, tous les temporisateurs peuvent facilement émettre un signal PWM de 64 kHz , et le temporisateur 1 – c'est même 16 bits, et à la fréquence qui lui a été donnée Arduino, pourrait fonctionner avec une résolution de 15 bits au lieu de 8, et cela, soit dit en passant, 32768 gradations de remplissage au lieu de 256 ! Alors pourquoi cette injustice ? La minuterie 0 est en charge de la synchronisation et est réglée de manière à ce que les millisecondes s' | En fait, tous les temporisateurs peuvent facilement émettre un signal PWM de 64 kHz , et le temporisateur 1 – c'est même 16 bits, et à la fréquence qui lui a été donnée Arduino, pourrait fonctionner avec une résolution de 15 bits au lieu de 8, et cela, soit dit en passant, 32768 gradations de remplissage au lieu de 256 ! Alors pourquoi cette injustice ? La minuterie 0 est en charge de la synchronisation et est réglée de manière à ce que les millisecondes s' | ||
| Ligne 236: | Ligne 238: | ||
| En plus de jouer manuellement avec les registres, il existe des bibliothèques prêtes à l' | En plus de jouer manuellement avec les registres, il existe des bibliothèques prêtes à l' | ||
| - | PWM library | + | **PWM library** ( [[https:// |
| + | |||
| + | *Vous permet de définir n' | ||
| + | *Un seul canal est disponible lorsque vous travaillez avec des minuteries 8 bits (par exemple, sur l' | ||
| + | *Permet de travailler avec des temporisateurs 16 bits à une résolution plus élevée (16 bits au lieu du standard 8) | ||
| + | *La bibliothèque est très compliquée, | ||
| + | *Voir exemples dans le dossier avec la bibliothèque ! | ||
| + | |||
| + | **GyverPWM library**( [[https:// | ||
| - | Vous permet de définir n' | + | |
| - | Un seul canal est disponible lorsque vous travaillez avec des minuteries 8 bits (par exemple, sur l'ATmega328, uniquement D3, D5, D9 et D10) | + | *Sélection de bits : 4-8 bits pour les temporisateurs 8 bits, 4-16 bits pour les temporisateurs 16 bits (à 4 bits, la fréquence PWM est de 1 MHz) |
| - | | + | *Sélection du mode PWM : Fast PWM ou Phase-correct PWM (favorable aux moteurs) |
| - | La bibliothèque est très compliquée, elle ne peut donc pas être déchiquetée | + | *Génération de fréquences de méandres de 2 Hz à 8 MHz sur la broche D9 avec une précision maximale |
| - | Voir exemples dans le dossier avec la bibliothèque ! | + | |
| + | | ||
| + | | ||
| + | | ||
| - | Bibliothèque GyverPWM ( GitHub ) - la bibliothèque que nous avons écrite avec mon ami. La bibliothèque permet un travail très flexible avec PWM sur le microcontrôleur ATmega328 (nous ajouterons Mega plus tard): | ||
/home/chanteri/www/fablab37110/data/attic/start/arduino/pwm.1671543776.txt.gz · Dernière modification : (modification externe)
