Modulation de la largeur d'impulsion dans Arduino

Modulation de la largeur d'impulsion dans Arduino
La modulation de largeur d'impulsion également connue sous le nom de PWM est une technique qui implique l'altération de la largeur de l'impulsion du signal généré en conséquence le cycle de service du signal est modifié, ce qui donnera le signal variable. Cette entrée variable peut être utilisée dans de nombreuses applications telles que le contrôle de la luminosité des LED, contrôlant la vitesse des moteurs et où la sortie analogique est requise en utilisant des sources numériques.

Modulation de la largeur d'impulsion avec Arduino

La modulation de largeur d'impulsion peut être effectuée dans Arduino en utilisant le analogwrite () fonction. La fonction analogwrite () elle-même génère le signal d'onde carré qui peut être varié de la fonction.

Le analogwrite () La fonction utilise deux arguments, l'un est un broche qui spécifiera le numéro de port auquel le signal modulé générera et l'autre valeur qui spécifie la valeur du cycle de service du signal modulé.Pour utiliser la fonction analogique dans la programmation Arduino, la syntaxe suivante doit être suivie

Analogwrite (numéro de broche, valeur du cycle de service);

Le nombre de broches est de type de données entier tandis que la valeur du cycle de service a la forme de zéro à 255.La largeur d'impulsion est la partie de l'impulsion dans laquelle sa valeur est élevée. De même, la durée du cycle de l'impulsion est la durée de ses valeurs élevées et faibles. De plus, le pourcentage du rapport de la durée de la largeur d'impulsion à la durée du cycle est appelé le cycle de service. Il y a des cycles de service différents pour une plus grande compréhension du sujet. Les graphiques tracés ont du temps sur l'axe horizontal tandis que la tension est sur l'axe vertical. Ce sont les pourcentages pour le temps que la tension était élevée. Le cycle de service est le temps pour lequel la tension était élevée.

Exemple

Le code de la modulation de largeur d'impulsion est donné ci-dessous.

int ledpin = 6; // Arduino UNO PWM Pins: 3, 5, 6, 9, 10
luminosité int = 0;
int fadevalue = 5;
void setup()
PinMode (LEDPin, sortie);

VOID LOOP ()
Analogwrite (LEDPin, luminosité);
luminosité = luminosité + fadevalue;
if (luminosité = 255)
fadeValue = -fadeValue;

retard (10);

Premièrement la ledpin la variable est déclarée à laquelle la lumière LED est connectée puis pour stocker la valeur analogique luminosité est déclaré. La valeur va faire du vélo entre 0 et 255. Pour contrôler la frontation de la LED une variable appelée fadevalue est utilisé.

En venant à la section de configuration, le numéro de broche attribué à la LED est déclaré et dans la section de boucle, le signal de modulation de largeur d'impulsion est généré à l'aide de la fonction analogwrite (). La luminosité de la LED est contrôlée avec l'altération de la largeur de l'impulsion. La broche LED et la luminosité sont considérées comme des arguments de la fonction analogique. Après cela, la variable de luminosité et de fadevalue est ajoutée. Pour augmenter la luminosité de cinq fois à chaque fois que la boucle fonctionne, c'est pourquoi la fadevalue reçoit la valeur 5.

La condition IF est utilisée pour exécuter le code uniquement si la luminosité est inférieure à zéro ou supérieure à l'égal à 255.

Ainsi, au début, la valeur de la luminosité est nul et la fadevalue est 5. Ainsi, dans la première déclaration, la quantité de fondu est ajoutée à la luminosité et maintenant la luminosité a une valeur de cinq. Puis en venant à l'instruction if, la condition est fausse car la luminosité n'est pas inférieure à zéro ou la luminosité est supérieure à l'égal à 255. La boucle continuera donc à fonctionner jusqu'à ce que la valeur de luminosité atteigne 255. Donc, si la condition IF est vraie, une valeur de cinq négatifs 5 est ajoutée au montant de la fondu.

Alors maintenant à chaque itération, la valeur diminuera de 5 jusqu'à ce qu'elle atteigne zéro et la LED s'éteindra.

Conclusion

Il existe un large éventail de projets qui peuvent être réalisés en utilisant Arduino. L'utilisation d'arduino un peu facilite le travail sur les projets. Dans cet article, la modulation de largeur d'impulsion (PWM) est discutée et l'une de ses applications est décrite pour donner plus de détails sur la façon dont la modulation de la largeur d'impulsion (PWM) peut être utilisée pour des tâches spécifiques dans la programmation Arduino.