Atelier n°3 – Servomoteurs et interfaces de puissance

Programme de l’atelier

    • Questions sur le MOOC
    • Les servomoteurs (PWM)
    • Les interfaces de puissance (Transistors)
  • Questions diverses

Le support de l’atelier est disponible dans le tableau en bas de page (Ressources)
Les servomoteurs sont abordés dans la partie 8 (page 102-107).
Les interfaces de puissances dans la partie 3 (pages 61-76).

Les trois premiers codes ont été abordés lors de cet atelier.

Schémas Arduino

Commande de la luminosité d’une LED (PWM) Visualiser le schéma
Commande d’un servomoteur Visualiser le schéma
Commande d’un transistor (MOSFET) Visualiser le schéma
Utilisation des interruptions externes Visualiser le schéma

Code pour la commande de la luminosité d’une LED (PWM)

Pour ceux qui utilisent un ESP8266 via l’éditeur Arduino, il faut mettre `pin_led = 2` et câbler sur la broche D4 !
  const int pin_led = 11; //Selection d'une broche PWM

  float duty_cyle[11] = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0};//Création d'un tableau avec les différents rapports cycliques
  
  void setup() {
  
      pinMode(pin_led, OUTPUT);  //Mise en sortie de la broche LED
  
  }//Fin setup
  
  void loop() {
  
      for(int i=0;i<11;i++) 
      {
          int value_r = duty_cyle[i]*255.0; //Conversion d'une valeur entre 0 et 1 en une valeur entre 0 et 255
          analogWrite(pin_led, value_r); //Change le rapport cyclique pendant 3 s
          delay(600);        //Attend 0.6s
      }
      
  
  }//Fin loop

Code pour la commande d’un servomoteur

  #include       //Inclusion de la bibliothèque Servo
  Servo myservo;  // Création d'un objet Servo
  int pos = 0;    //Angle du servomoteur
  
  void setup() {

    myservo.attach(11);  //Choix de la broche du servo moteur

  }
  
  void loop() {

    for (pos = 0; pos <= 180; pos += 1) { //Parcours la plage angulaire [0-180] degré par degré

      myservo.write(pos);              //Actualise la position 
      delay(15);                       //Attend 15 ms avant l'actualisation

    }//Fin for

    for (pos = 180; pos >= 0; pos -= 1) {     //Parcours la plage angulaire [0-180] degré par degré

      myservo.write(pos);              //Actualise la position 
      delay(15);                       //Attend 15 ms avant l'actualisation

    }//Fin for
  }//Fin loop

Code pour le contrôle d’un transistor

  #define PIN 11     //GATE du transistor
 
  void setup() {
  
    pinMode(PIN, OUTPUT); //Mise en sortie de la broche
  
  }//Fin setup
  
  void loop() {
  
    digitalWrite(PIN, HIGH);    //Mise en route du transistor
    delay(5000);               //Délai de 5s
    digitalWrite(PIN, LOW);     //Arret du transistor
    delay(5000);               //Délai de 5s
  
  }//Fin loop

Ressources

Support de l’atelier PDF Télécharger le support au format PDF
Documentation transistor IRF520 IRF520