Cours [Avancé] - 06/11/2021

Arduino : réglage de vitesse sur un moteur.

Informations :

  • Orateurs : Simon
  • Animateurs : 1
  • Nombre de participants : 3

Compte-rendu :

Nous n'étions pas nombreux pour cette séance.

Nous avons étudier en détails le pilotage d'un moteur pour pouvoir changer sa vitesse de rotation. Pour cela, nous avons utilisé :

  • Un potentiomètre : c'est lui qui va permettre de donner la consigne de vitesse de rotation.
  • Un transistor : c'est lui qui va s'occuper d'allumer / éteindre l'alimentation du moteur.
  • Un moteur : pour tester le changement de vitesse.
  • Une diode : dite "diode de roue libre", elle permet de protéger le circuit des injections de courant.

Le potentiomètre est branché sur une entrée analogique de l'Arduino. Le réglage du potentiomètre va donc donner une tension entre 0 V et 5 V. L'Arduino va coder cette valeur entre 0 et 1023. Cette valeur va nous servir de consigne de réglage de la vitesse du moteur.

Le transistor est utilisé dans ce cas comme "interface de puissance" : l'Arduino n'a pas la capacité de fournir assez d'énergie pour alimenter le moteur. Le transistor est utilisé comme un interrupteur (mode saturé), on le pilote par la "base". L'Arduino va lui envoyé un signal de type PWM (Pulse Width Modulation, ou Modulation de Largeur d'Impulsion). Le principe de ce type de signal, est de régler le ratio OFF/ON, c'est-à-dire, le temps où le signal est éteint (OFF) et le temps où il est allumé (ON). Ce rapport est directement piloté par l'Arduino sur une sortie de type PWM. La vvaleur réglée pour cette sortie varie entre 0 (0 % -> complètement éteint) et 255 (100 % complètement allumé). Si l'on souhaite un rapport de 50 %, on devra alors régler la valeur de 127 (au milieu).

Le schéma utilisé est disponible au format image PNG.

Le programme utilisé sur l'Arduino est le suivant :

// Numéro de broche où le potentiomètre est branchée
int potpin = A0;

// Variable pour la tension lue sur le potentiomètre
int value;

void setup() {
}

void loop() {
    // Lit la valeur réglée sur le potentiometre
    value = analogRead(potpin);

    // Mise à l'échelle de la valeur :
    //  - En entrée : 0..1023
    //  - En sortie : 0..255
    value = map(value, 0, 1023, 0, 255);

    // Ecrit la valeur sur la broche de sortie (en PWM sur la broche 9)
    analogWrite(9, value);
}
                    

Prochaines séances :

  • 13/11/2021 (10H00..12H00) : [Initiation] Pratique sur tablette.
  • 13/11/2021 (18H00..20H00) : [Open Hours] On discute, on explique, on répare !
  • 20/11/2021 (10H00..12H00) : [Avancé] Soudures !!
  • 20/11/2021 (18H00..20H00) : [Open Hours] On discute, on explique, on répare !