Vous êtes sur la page 1sur 5

2023-2024 DEVOIR SURVEILLE DU DEUXIEME SEMESTRE Classe : Tle F2

LETP-LOME
INFORMATIQUE APPLIQUEE Durée : 4H
Coefficient : 4

Partie 1 : programmation 1 heure


A- Théorie : (1heure) 4pts
1- Quelles sont les valeurs possibles de la variable value dans
l’instruction value = map(value, 0, 1023, 0, 255);? 0,25pt
2- Quelles sont les fonctions obligatoires sur le langage Arduino ?
3- Définir les sigles suivants :
HDD, HTML, LCD et LSB. 0,25pt X 4
4- Choisir la bonne proposition :
A quoi sert la fonction void setup ?
a- La fonction est utilisée pour initialiser les variables, les broches et les
librairies utilisées.
b- La fonction est utilisée pour la déclaration des variable et l’appel des
librairies.
c- La fonction contient tout le programme.
5. Que va afficher ce programme dans le moniteur série ?
int a=2;
int b=5;
void setup() {
Serial.begin(9600);
for (int i = 0; i < 3; i++) {
a=a+b;
Serial.println(a) ;
}
}
void loop() {
}
6- Que fait la fonction suivante ?
float resultat (float tableau[], int valTotal)
{
int i = 0;
int max = 0; //
for(i=0; i< valTotal, i++)
{
if(tableau[i] > max)
{
max = tableau[i];
}
}
return max;
}

|P age 1/ 4
9- Que fait le programme suivant :
const byte VERT = 0;
const byte JAUNE = 1;
const byte JAUNE_CLIGNOTANT = 2;
const byte ROUGE = 3;
const byte ROUGE_CLIGNOTANT = 4;
const byte pinVerte = 4;
const byte pinJaune = 5;
const byte pinRouge = 6;
byte etatSignal = ROUGE;
unsigned long dateDernierClignotement = 0;
byte etatClignotant = LOW;
void afficheFeu()
{
switch (etatSignal) {
case VERT:
digitalWrite(pinVerte, HIGH);
break;
case JAUNE:
digitalWrite(pinJaune, HIGH);
break;
case JAUNE_CLIGNOTANT:
unsigned long dateCourante = millis();
if (dateCourante - dateDernierClignotement > 480) {
dateDernierClignotement = dateCourante;
etatClignotant = ! etatClignotant;
digitalWrite(pinJaune, etatClignotant);
}
break;
case ROUGE:
digitalWrite(pinRouge, HIGH);
break;
case ROUGE_CLIGNOTANT:
unsigned long dateCourante = millis();
if (dateCourante - dateDernierClignotement > 480) {
dateDernierClignotement = dateCourante;
etatClignotant = ! etatClignotant;
digitalWrite(pinRouge, etatClignotant);
}
break;
default:
Serial.println("Code de feu inconnu !");
break;
}
}
|P age 2/ 4
B- Pratique programmation : 8pts (1 heure 30mn)
Imaginez-vous au bord de la plage. Le ciel est bleu, la mer aussi… Ahhh le rêve. Puis, tout un coup
le drapeau rouge se lève ! ”Requiiiinn” crie un nageur… L’application qu’on vous propose de
développer ici correspond à ce genre de situation. Vous êtes au QG de la beauboPlage, le nouvel
endroit branché pour les vacances. Votre mission si vous l’acceptez est d’afficher en temps réel un
indicateur de qualité de la plage et de ses flots. Pour cela, vous devez informer les touristes par
l’affichage d’un code de 3 couleurs. Des surveillants sont là pour vous prévenir que tout estrentré dans
l’ordre si un incident survient.
Mise en situation :
Comme expliqué ci-dessus, l’affichage de qualité se fera au travers de 3 couleurs qui par des
LEDs :
— Rouge : Danger, ne pas se baigner
— Orange : Baignade risquée pour les novices
— Vert : Tout baigne !
La beauboPlage est équipée de deux boutons. L’un servira à déclencher un SOS (si quelqu’un voit
un nageur en difficulté par exemple). La lumière passe alors au rouge clignotant jusqu’à ce qu’un
sauveteur ait appuyé sur l’autre bouton signalant ”Problème réglé, tout revient à la situation
précédente”. Enfin, dernier point mais pas des moindres, le QG (vous) reçoit des informations
météorologiques et provenant des marins au large. Ces messages sont retransmis sous forme de textos
(symbolisés par la voie série) aux sauveteurs sur la plage pour qu’ils changent les couleurs en temps
réel. Voici les mots-clés et leurs impacts :
— Rouge : méduse, tempête, requin : Des animaux dangereux ou la météo rendent la beauboPlage
dangereuse. Baignade interdite
— Orange : vague : La natation est réservée aux bons nageurs
— Vert : surveillant, calme : Tout baigne, les sauveteurs sont là et la mer est cool.
L’organigramme suivant vous résume le fonctionnement au niveau de la fonction loop :

T.A.F. :
Ecrire le programme Arduino respectant les spécifications

|P age 3/ 4
Partie 2 : Analyse et simulation de schéma : 8pts (1 heure 30mn)
A- Analyse de Bode d’un filtre analogique : 4pts
Soit le montage de la figure ci-contre :
En utilisant le traceur Frequency de proteus :
1- Tracer le diagrame de bode du filtre
2- En déduire la nature du filtre
3- En déduire l’orde du filtre
4- En déduire la ou les fréqauences de coupure à -
3dB
5- Comment sont les coubes de vE et vS lorsque la
fréquence tend vers infini ?
Prendre : R1 = R2 = 10k, R3 = 10k vE eff = 10V et f = 100kHz
B- Analyse de circuit digital : 4pts
Le montage de la figure suivante est un compteur prépostionable, dont nous nouvons faire l’étude.
1- Saisir dans proteus le schéma en appliquant les sondes devant permetre de relever les
chronogramme des dorties Q2, Q1, Q0, S et T.
2- Pour chacun des mots suivants inscrits dans le tableau ci-dessous, relever les chronogrammes des
sorties précitées su 10 cycles d’horloge puis donner pour chaque cas le cycle et le modulo du
compteur réalisé.
P2 P1 P0
0 0 0
1 0 1
0 1 1
1 1 0

NB : Le travail doit être enregistrer dans un dossier créé sous votre nom et le tout copié sur votre clé
à ramasser

|P age 4/ 4
2023-2024 COMPOSITION DU DEUXIEME SEMESTRE Classe : 1ère F2
LETP-LOME
INFORMATIQUE APPLIQUEE Durée : 4H
Coefficient : 4

|P age 4/ 4

Vous aimerez peut-être aussi