Vous êtes sur la page 1sur 3

Classe de première ICN

Corrigé du TP 4 : Feu bicolore et barrière


Voici la correction du TP qui reprend des éléments du cours sur les librairies logicielles.

Code
Voici une des solutions possibles pour répondre au problème :
/*
Feu bicolore et barrière

Le montage :
* Une LED rouge sur la broche 3 en serie avec une resistance de 220Ω
* Une LED verte sur la broche 4 en serie avec une resistance de 220Ω

* Un servomoteur branché sur les broches 9, +5V et GND

* Bouton poussoir branché sur la broche 2 depuis +5V


* Une résistance de 1KΩ bracnhé sur la broche 2 depuis GND
*/

#include <Servo.h>

Servo servo; // création de l'objet servo issu du moule Servo

// Initialisation des constantes


const int servomoteur = 9;

const int bouton = 2;

const int ledRouge = 3;


const int ledVerte = 4;

// le code dans cette fonction est exécuté une fois au début


void setup()
{
// on souhaite communiquer avec l'ordinateur
Serial.begin(9600);

// indique que les broches des LED


// sont des sorties :
pinMode(ledRouge, OUTPUT);
pinMode(ledVerte, OUTPUT);

// indique que la broche bouton est une entrée :


pinMode(bouton, INPUT);

// on accroche notre servomoteur branché sur la broche 9


servo.attach(servomoteur);

// allume le feu rouge


digitalWrite(ledRouge, HIGH);

// positionne la barrière horizontalement


servo.write(0);
}

7-librairie_TP_corr.odt 1
Classe de première ICN

// le code dans cette fonction est exécuté en boucle


void loop()
{
// si le bouton est appuyé
if ( digitalRead(bouton) == HIGH ) {
// alors on envoie un message sur le moniteur série
Serial.print("Bouton appuye");

// puis on remonte la barrière de 90°


for (int pos = 0; pos <= 90; pos++) {
servo.write(pos);
delay(15);
}

// puis on allume le feu vert durant 5 secondes


digitalWrite(ledRouge, LOW);
digitalWrite(ledVerte, HIGH);
delay(5000);

// et on repasse au rouge
digitalWrite(ledVerte, LOW);
digitalWrite(ledRouge, HIGH);

// enfin, on redescend la barrière


for(int pos = 90; pos>=0; pos--) {
servo.write(pos);
delay(15);
}
}
}

Montage
10

15

20

25

30
RESET

5
J

J
F G H I

F G H I
ICSP2

AREF
TX
RX

A B C D E

A B C D E
L

GND
13
IOREF
12
Arduino

RESET
11
3V3
10
10

15

20

25

30
1

5V
9
GND
8
POWER

GND
TM

DIGITAL (PWM=

VIN 7
6
A0 5
A1 4
A2 3
ANALOG IN

10

15

20

25

30
1

A3 2
)

A4 TX0 1
ICSP
ON
1

F G H I

F G H I

A5 RX0 0
A B C D E

A B C D E
10

15

20

25

30
1

7-librairie_TP_corr.odt 2
Classe de première ICN

Schéma

Pour réaliser ce montage, vous avez besoin de :


• Un Arduino
• Une platine de prototypage
• Un câble USB
• Une résistance de 10kΩ
• Deux résistances de 220Ω
• Des fils de prototypage
• Une photorésistance
• Un servomoteur
• Un bouton poussoir
• Une LED rouge
• Une LED verte

7-librairie_TP_corr.odt 3

Vous aimerez peut-être aussi