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 type unsigned char. Doit avoir été initialisé en utilisant préalablement la fonction InitializePwmOutput() {FR}.

  • value: La valeur à assigner au port, de type signed 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

#include <CrcLib.h> void setup() { CrcLib::Initialize(); CrcLib::InitializePwmOutput(CRC_PWM_5); CrcLib::SetPwmOutput(CRC_PWM_5,127); /* Reste du code d'initialisation ... */ } void loop() { CrcLib::Update(); /* Reste de la boucle principale ... */ }
#include <CrcLib.h> void setup() { CrcLib::Initialize(); CrcLib::InitializePwmOutput(CRC_PWM_12, 500, 2500); /* Reste du code d'initialisation ... */ } void loop() { CrcLib::Update(); signed char valeurJoystick = CrcLib::ReadAnalogChannel(ANALOG::JOYSTICK1_X); CrcLib::SetPwmOutput(CRC_PWM_12, valeurJoystick); /* Reste de la boucle principale ... */ }

 

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).

Articles reliés