SetPwmOutput() {FR}
Objectif
Contrôler la sortie d’un port PWM
Quand l’utiliser
Dès que vous voulez contrôler la sortie d’un port PWM
Où l’utiliser
Fort probablement dans la section void loop()
de votre fichier .ino
réagir aux commandes de la manette. Peut aussi être utilisé au début de l’exécution, dans la partie void setup()
, pour que le port ait une valeur connue au début du programme
Cliquer ici pour en apprendre plus sur les sorties PWM du CRCduino. L’article explique entre autres pourquoi les ports PWM #1 à #4 ne peut être utilisés qu’avec des contrôleurs de moteur de puissance.
C’est fonction requiert l’utilisation des fonctions suivantes dans votre programme:
Valeur de retour
Aucune
Prototype principal
static void CrcLib::SetPwmOutput(unsigned char pin, char value)
Les paramètres suivants sont requis par la fonction:
pin
: Le nom du port PWM à contrôler, de typeunsigned char
. Doit avoir été initialisé en utilisant préalablement la fonction InitializePwmOutput() {FR}.value
: La valeur à assigner au port, de typesigned char
(donc entre -128 et 127).Un port à
-128
aura la longueur de pulsation minimum tel que déterminé par InitializePwmOutput() {FR} . En pratique, c’est pleine marche arrière, ou position minimum du servo.Un port à
127
aura la longueur de pulsation maximum tel que déterminé par InitializePwmOutput() {FR}. En pratique, c’est pleine marche avant, ou position maximum du servo.Une valeur entre ces deux extrêmes suivra un gradient linéaire entre les positions max et min.
Overloads
Cette fonction n’a pas d’overloads, elle ne peut être utilisée qu’avec le prototype principal.
Exemples
En apprendre plus
Est-ce que je peux utiliser la fonction Arduino analogWrite() pour contrôler les sorties PWM ?
Bien que ce serait techniquement possible, nous recommandons fortement de ne pas l’utiliser. La fonction analogWrite() utilise un autre mode de fonctionnement pour le PWM que les servos et contrôleurs standards. Dans la plupart des cas, pour la CRC, puisque les équipes utilisent typiquement exclusivement des moteurs, analogWrite() n’est pas la bonne solution. Pour en apprendre un peu plus, lisez ceci (en anglais).