Académique Documents
Professionnel Documents
Culture Documents
Réponse : quand le système embarqué fonctionne avec une batterie éventuellement des batteries pour
économiser l’énergie et augmenter leur durée de vie.
Question :
En supposant que la composante matérielle de ce système est réalisée à l’aide d’une plateforme arduino, on
demande de donner le programme correspondant à sa composante logicielle, en langage arduino.
Données :
Librairie : TimerOne.h ;
Fonction : Timer1.attachInterrupt(ServiceInterruption) ;
Fonction : Timer1.initialize(periodeDuTimer(µs)) avec periodeDuTimer égale à 100000μs ;
Fonction : analogRead(broche) ; avec broche = A0, A1, A2, A3, A4 ou A5.
Fonction : Serial.begin(VitesseEnBps) ; avec VitesseEnBps = 9600 bps
-1/3-
Fonction : Serial.print("ChaineDeCaractères") ; pour afficher une chaine de caractères sans retour à la
ligne.
Fonction : Serial.println(valeur) ; pour afficher une donnée de type : int, float ou double, avec retour au
début de la ligne suivante.
#include <TimerOne.h>
int x,y,z ;
void setup(){
Serial.begin(9600);
Timer1.attachInterrupt(lire_xyz) ;
Timer1.initialize(100000) ;
}
Void loop(){
afficher_syz() ;
}
void lire_xyz(){
x=analogRead(A0) ;
y=analogRead(A1) ;
z=analogRead(A2) ;
}
void afficher_syz(){
-2/3-
Exercice 2 : (6 pts)
Le programme suivant :
#include <avr/wdt.h>
void setup() {
Serial.begin(9600);
Serial.println("Demarrage ..");
pinMode(LED_BUILTIN, OUTPUT);
wdt_enable( WDTO_TimeOut);
}
void loop() {
wdt_reset();
digitalWrite(LED_BUILTIN, HIGH);
delay(1000); //temporisation de 1S.
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Pour WDTO_TimeOut = 1S
a) Affiche sur le terminal, le message « Demarrage .. » une seule fois, ensuite fait clignoter la LED à un rythme
de 2S.
b) Affiche sur le terminal le message « Demarrage .. » une première fois, ensuite allume la LED sans pouvoir
l’éteindre après, ensuite répète à l’infini l’affichage sur le terminal du message « Demarrrage .. ».
c) Affiche sur le terminal le message « Demarrage .. » une seule fois, ensuite allume la LED et l’éteint plusieurs
fois.
d) Affiche sur le terminal le message « Demarrage .. » plusieurs fois, ensuite allume la LED et l’éteint à un
rythme de 1S.
Réponse : (b) car le temps d’exécution du programme (= 2S) est supérieur à WDTO_TimeOut = 1S
Et pour WDTO_TimeOut = 4S
Réponse : (b) car le temps d’exécution du programme (=2S) est inférieur à WDTO_TimeOut = 4S
-3/3-