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 |