6.10.c PWM (Internal) |
Sous Flowcode pour gérer une sortie en mode MLI, il faut ajouter au "Panneau tableau de bord" un composant de type "PWM"
Pulse Width Modulation, a versitile way of generating a digital pulse using mark / space modulation. Uses the capture compare peripherals onboard most Microcontrollers to generate accurate waveforms without any intervention from the processor.Useful for generating audio, controlling the speed of motors, brightness of LED etc. |
Modulation de largeur d'impulsion, un moyen de générer une impulsion numérique à rapport cyclique variable. Utile pour générer de l'audio, contrôler la vitesse des moteurs, la luminosité de DEL etc... |
Sous Arduino |
La fonction en langage C permettant de piloter une sortie en MLI (PWM) du microcontrôleur est: analogWrite()
Description
Writes an analog value (PWM wave) to a pin. Can be used to light a LED at varying brightnesses or drive a motor at various speeds. After a call to analogWrite(), the pin will generate a steady rectangular wave of the specified duty cycle until the next call to analogWrite() (or a call to digitalRead() or digitalWrite()) on the same pin.
Syntax
analogWrite(pin, value)
Parameters
pin: the Arduino pin to write to. Allowed data types: int.
value: the duty cycle: between 0 (always off) and 255 (always on). Allowed data types: int.
Returns
Nothing
See also: analogWriteResolution()
Exemple
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Fade
/*
Cet exemple montre comment faire varier la luminosité d'une DEL sur la broche 9 à l'aide de la fonction analogWrite().
La fonction analogWrite() utilise le PWM, donc si vous voulez changer de broche assurez-vous d'utiliser une autre
broche compatible PWM.
Sur la plupart des Arduino, les broches PWM sont identifiés par un signe "~", comme ~3, ~5, ~6, ~9, ~10 et ~11.
Cet exemple de code est dans le domaine public.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Fade
*/
int led = 9; // la broche PWM à laquelle la DEL est reliée
int brightness = 0; // luminosité de la DEL
int fadeAmount = 5; // de combien de points estomper la DEL
// la routine de configuration s'exécute une fois lors du Reset
void setup() {
pinMode(led, OUTPUT); // configure la broche 9 comme une sortie :
}
// boucle principale:
void loop() {
analogWrite(led, brightness); // régler la luminosité de la broche 9 :
brightness = brightness + fadeAmount; // changer la luminosité pour la prochaine fois dans la boucle :
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount; // inverser le sens du fondu aux extrémités du fondu :
}
delay(50); // attendre 50 millisecondes pour voir l'effet
}
Circuit
Connect the anode (the longer, positive leg) of your LED to digital output pin 9 on your board through a 220 ohm resistor. Connect the cathode (the shorter, negative leg) directly to ground.
Simulation sous Proteus 8
Téléchargement du schéma structurel sous Proteus 8: Arduino 328_fade.pdsprj
Créé avec HelpNDoc Personal Edition: Rationalisez votre processus de documentation avec le modèle HTML5 de HelpNDoc