Jamel BENMAMAR (contact : jamel.benmamar@upmc.fr)
Christophe BONNET (contact : christophe.bonnet@upmc.fr)
Sylvain THERY (contact : sylvain.thery@upmc.fr)
TP1 : Montage électronique
Pour réaliser ce montage, vous avez besoin de :
* Un Arduino
* Une platine de prototypage
* Un câble USB
* Trois résistances de 220Ω
* Des fils de prototypage
* Une LED verte
* Une LED orange
* Une LED rouge
TP2 : Feu tricolore + feu piéton
<code>
/*
Feu tricolore + Feu Piétons
TP de la semaine 2 du MOOC “Programmer un objet avec Arduino”
Le montage :
* Une LED rouge sur la broche 12 en série avec une résistance de 220Ω
* Une LED orange sur la broche 11 en série avec une résistance de 220Ω
* Une LED verte sur la broche 10 en série avec une résistance de 220Ω
* Une LED rouge sur la broche 9 en série avec une résistance de 220Ω
* Une LED verte sur la broche 8 en série avec une résistance de 220Ω
* Bouton poussoir branché sur la broche 2 depuis +5V
* Une résistance de 1KΩ branché sur la broche 2 depuis GND
créé le 9 Avril 2014
par Baptiste Gaultier
avec les conseils de fb251
Ce code est en CC0 1.0 Universal
https://www.france-universite-numerique-mooc.fr/courses/MinesTelecom/04002/Trimestre_1_2014/about
*/
Initialisation des constantes pour les LED
const int rouge = 12;
const int orange = 11;
const int verte = 10;
const int rougePieton = 9;
const int vertePieton = 8;
Numéro de la broche à laquelle est connecté le bouton poussoir
const int bouton = 2;
Déclaration des variables :
int etatBouton = 0;
le code dans cette fonction est exécuté une fois au début
void setup() {
indique que les broches des LED
sont des sorties :
pinMode(rouge, OUTPUT);
pinMode(orange, OUTPUT);
pinMode(verte, OUTPUT);
pinMode(rougePieton, OUTPUT);
pinMode(vertePieton, OUTPUT);
indique que la broche bouton est une entrée :
pinMode(bouton, INPUT);
}
le code dans cette fonction est exécuté en boucle
void loop() {
Dans le fonctionnement normal, le feu piéton est toujours rouge
digitalWrite(rougePieton, HIGH);
Fonctionnement normal du feu voiture
digitalWrite(verte, HIGH);
delay(3000);
digitalWrite(verte, LOW);
lit l'état du bouton et stocke le résultat
dans etatBouton :
etatBouton = digitalRead(bouton);
Si etatBouton est égal à HIGH
c'est que le bouton est appuyé
if (etatBouton == HIGH) {
digitalWrite(orange, HIGH);
delay(1000);
digitalWrite(orange, LOW);
digitalWrite(rouge, HIGH);
Le feu piéton passe au vert pendant 5s
digitalWrite(rougePieton, LOW);
digitalWrite(vertePieton, HIGH);
delay(5000);
On remet le feu piéton au rouge
digitalWrite(rougePieton, HIGH);
digitalWrite(vertePieton, LOW);
Puis on s'assure que le feu voiture est éteint
digitalWrite(rouge, LOW);
}
else {
Fonctionnement normal du feu voiture
digitalWrite(orange, HIGH);
delay(1000);
digitalWrite(orange, LOW);
digitalWrite(rouge, HIGH);
delay(3000);
digitalWrite(rouge, LOW);
}
}
</code>
TP2 : Montage électronique
Pour réaliser ce montage, vous avez besoin de :
* Un Arduino
* Une platine de prototypage
* Un câble USB
* Cinq résitances de 220Ω
* Une résistance de 10kΩ
* Des fils de prototypage
* Deux LED verte
* Une LED orange
* Deux LED rouge
* Un bouton poussoir
TP3 : Thérémine lumineux
<code>
/*
Thérémine lumineux
Le montage :
* Un piezo branché sur la broche 8
* Une photorésistance branchée sur la broche A2 depuis +5V
* Une résistance de 10kΩ branchée sur la broche A2 depuis GND
créé le 9 Avril 2014
par Baptiste Gaultier
Ce code est en CC0 1.0 Universal
https://www.france-universite-numerique-mooc.fr/courses/MinesTelecom/04002/Trimestre_1_2014/about
*/
variable pour stocker la valeur reçue sur A2
int sensorValue;
void setup() {
}
void loop() {
lire la valeur de la photorésistance et stocker ça dans une variable
Attention, sur les schéma/montage en dessous, elle est branchée sur A2 (et non A0)
sensorValue = analogRead(A2);
re étalonne la variable vers un grand intervalle de fréquences audibles
int pitch = map(sensorValue, 0, 1023, 50, 30000);
jouer la fréquence sur le piezo branché sur la broche 8
tone(8, pitch);
attendre 10 ms
delay(10);
}
</code>
TP3 : Montage électronique
Pour réaliser ce montage, vous avez besoin de :
* Un Arduino
* Une platine de prototypage
* Un câble USB
* Une résistance de 10kΩ
* Des fils de prototypage
* Une photorésistance
* Un piézo
TP4 : Feu tricolore et barrière
<code>
/*
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
créé le 18 Avril 2014
par Baptiste Gaultier
Ce code est en CC0 1.0 Universal
https://www.france-universite-numerique-mooc.fr/courses/MinesTelecom/04002/Trimestre_1_2014/about
*/
#include <Servo.h>
Servo servo; création de l'objet servo issu
du moule Servo
Initialisation des constantes
const int bouton = 2;
const int ledRouge = 3;
const int ledVerte = 4;
Déclaration des variables :
int etatBouton = 0;
int pos = 0;
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(9);
allume le feu rouge
digitalWrite(ledRouge, HIGH);
positionne la barrière horizontalement
servo.write(0);
}
le code dans cette fonction est exécuté en boucle
void loop(){
read the state of the pushbutton value:
etatBouton = digitalRead(bouton);
si le bouton est appuyé
if (etatBouton == HIGH) {
alors on envoie un message sur le moniteur série
Serial.print(“Bouton appuye”);
puis on remonte la barrière de 90°
for(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(pos = 90; pos>=0; pos–) {
servo.write(pos);
delay(15);
}
}
}
</code>
TP4 : Montage électronique**
Pour réaliser ce montage, vous avez besoin de :