Voyons ce qui se cache derrière l'acronyme PWM, comment il fonctionne, à quoi il sert et comment nous pouvons l'utiliser pour travailler avec Arduino.
Nécessaire
- -Arduino;
- - Diode électro-luminescente;
- - une résistance d'une résistance de 200 Ohm;
- - ordinateur.
Instructions
Étape 1
Les broches numériques Arduino ne peuvent donner que deux valeurs: logique 0 (LOW) et logique 1 (HIGH). C'est pourquoi ils sont numériques. Mais Arduino a des conclusions "spéciales", qui sont désignées PWM. Ils sont parfois signalés par une ligne ondulée "~" ou encerclés ou distingués des autres. PWM signifie "Pulse-width modulation" ou Pulse Width Modulation, PWM.
Un signal modulé en largeur d'impulsion est un signal d'impulsion d'une fréquence constante, mais d'un rapport cyclique variable (le rapport de la durée d'impulsion à sa période de répétition). En raison du fait que la plupart des processus physiques dans la nature ont une certaine inertie, les chutes de tension brusques de 1 à 0 seront lissées, en prenant une valeur moyenne. En définissant le cycle de service, vous pouvez modifier la tension moyenne à la sortie PWM.
Si le cycle de service est de 100%, alors tout le temps à la sortie numérique de l'Arduino, il y aura une tension logique de "1" ou 5 volts. Si vous réglez le rapport cyclique sur 50 %, la moitié du temps à la sortie sera un "1" logique et l'autre moitié un "0" logique et la tension moyenne sera de 2,5 volts. Etc.
Dans le programme, le rapport cyclique n'est pas défini en pourcentage, mais en nombre de 0 à 255. Par exemple, la commande "analogWrite (10, 64)" indiquera au microcontrôleur d'envoyer un signal avec un rapport cyclique de 25 % à la sortie numérique PWM # 10.
Les broches Arduino avec fonction de modulation de largeur d'impulsion fonctionnent à une fréquence d'environ 500 Hz. Cela signifie que la période de répétition des impulsions est d'environ 2 millisecondes, ce qui est mesuré par les traits verticaux verts sur la figure.
Il s'avère que nous pouvons simuler un signal analogique à la sortie numérique ! Intéressant, non ?!
Comment pouvons-nous utiliser cela? Il y a beaucoup d'applications ! Par exemple, ce sont le contrôle de la luminosité des LED, le contrôle de la vitesse du moteur, le contrôle du courant du transistor, l'extraction du son d'un émetteur piézo…
Étape 2
Jetons un coup d'œil à l'exemple le plus basique - contrôler la luminosité d'une LED à l'aide de PWM. Mettons en place un schéma classique.
Étape 3
Ouvrons le sketch "Fade" à partir des exemples: File -> Samples -> 01. Basics -> Fade.
Étape 4
Modifions-le un peu et chargeons-le dans la mémoire Arduino.
Étape 5
Nous mettons le courant. La LED augmente progressivement de luminosité puis diminue progressivement. Nous avons simulé un signal analogique à la sortie numérique en utilisant la modulation de largeur d'impulsion.