0% ont trouvé ce document utile (0 vote)
317 vues4 pages

TP Arduino N3

Ce document décrit un TP utilisant un servomoteur et Arduino. Le TP comporte deux parties, la première présente le fonctionnement d'un servomoteur et le montage avec Arduino, la seconde décrit la réalisation d'une barrière commandée par un bouton et un feu bicolore à l'aide d'un servomoteur.

Transféré par

Salah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
317 vues4 pages

TP Arduino N3

Ce document décrit un TP utilisant un servomoteur et Arduino. Le TP comporte deux parties, la première présente le fonctionnement d'un servomoteur et le montage avec Arduino, la seconde décrit la réalisation d'une barrière commandée par un bouton et un feu bicolore à l'aide d'un servomoteur.

Transféré par

Salah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 4

TP U2

TP Arduino N°3 : SERVOMOTEUR


Partie I :
Un servomoteur (souvent abrégé en « servo ») est un moteur capable de maintenir une opposition à
un effort statique et dont la position est vérifiée en continu et corrigée en fonction de la mesure.
C'est donc un système asservi. Un servomoteur est un système motorisé capable d'atteindre des
positions prédéterminées, puis de les maintenir.

Un servomoteur (souvent abrégé en « servo ») est un moteur capable de maintenir une opposition à
un effort statique et dont la position est vérifiée en continu et corrigée en fonction de la mesure.
C'est donc un système asservi. Un servomoteur est un système motorisé capable d'atteindre des
positions prédéterminées, puis de les maintenir. Parce que le servomoteur ne peut tourner que de
180°, et que l’entrée analogue du potentiomètre varie entre 0 et 1023, nous allons devoir utiliser une
fonction appelée map() qui va nous permettre de calculer automatiquement l’angle de rotation du
moteur. Afin de gérer le servomoteur sur la carte Arduino, nous allons utiliser la librairie externe
Servo.

Voici le montage à réaliser avec les composants fournis : Une fois le montage terminé et vérifié par
un assistant, vous pouvez le mettre sous tension et commencer la partie suivante : le code.

A vous de jouer, vous pouvez maintenant vous attaquer au code. Essayez de trouver et de
comprendre par vous-même. En cas de problème, vous pouvez demander de l’aide ou regarder la
correction ci-dessous.

1
TP U2

Partie II :
Dans cette partie, on va réaliser une barrière. Le montage à réaliser devra comporter :

 Un servomoteur qui jouera le rôle de barrière


 Un bouton pour demander l'ouverture de la barrière
 Un feu bicolore qui passera au vert lorsque la barrière sera complètement ouverte
Le scénario sera le suivant :

2
TP U2

Le fonctionnement normal est un feu allumé au rouge et une barrière fermée (0°). Le
fonctionnement normal est interrompu par l'appui sur un bouton poussoir.

Si l'appui du bouton est détecté, alors la barrière (actionnée par le servomoteur) se relève
doucement. Lorsque la barrière est à la verticale (90°), le feu vert s'allume pendant 5 secondes
pendant lesquelles la barrière reste ouverte (90°). Après les 5 secondes, le feu repasse au rouge, la
barrière redescend doucement et le fonctionnement normal reprend.

Aussi, nous souhaitons recevoir le message "Bouton appuyé" dans le moniteur série lorsque l'appui a
été détecté.

3
TP U2

#include <Servo.h> //Appel de la librairie "SERVO"


#define rouge 3 //La led rouge est connectée à la PIN 3
#define verte 4 //La led verte est connectée à la PIN 4
#define bouton 2 //Le bouton est connecté à la PIN 2
#define servo 9 //Le servo est connecté à la PIN 9
Servo myservo; // Crée l'objet SERVO pour controler le SERVOMOTEUR
int pos = 0; // variable qui enregistre la position du SERVO
int etatbouton = 0; // Vérification de l'état du bouton
void setup() {
myservo.attach(servo);
pinMode(rouge, OUTPUT); // Défintion des entrées/sorties
pinMode(verte, OUTPUT);
pinMode(bouton, INPUT);
}
void loop() {
digitalWrite(rouge, HIGH); // On initialise dés le début l'état des led
digitalWrite(verte, LOW);
etatbouton = digitalRead(bouton); // Lit l'état du bouton poussoir
if (etatbouton == HIGH)
{ // si bouton appuyé, alors on lève la barrière et on fait changer l'état des led, sinon, on reboucle
for (pos = 0; pos <= 90; pos += 1)
{ // on commence à actionner dans un sens la barrière, jusqu'à 90°, degrè par degrè
myservo.write(pos); // va à la position "POS"
delay(15); // attends 15ms avant de changer la position de la barrière
d'1 degrè
}
digitalWrite(verte, HIGH); // la barrière est levée, on peut allumer la led verte et éteindre la rouge
digitalWrite(rouge, LOW);
delay(5000); // Attends 5 secondes
digitalWrite(rouge, HIGH); // La led rouge s'allume et on éteind la verte
digitalWrite(verte, LOW);
//On referme ensuite la barrière
for (pos = 90; pos >= 0; pos -= 1) { // cette fois si, on passe de 90° à 0° (décroit à chaque fois
de -1)
myservo.write(pos); // va à la position "POS"
delay(15); // attends 15ms avant de changer la position de la barrière d'1
degrè
}
}
}

Vous aimerez peut-être aussi