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 |