TP2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

Architecture des Systèmes

TP 2
Arduino Uno : Généralités et GPIO

Remplissez ce document et transmettez-le au format pdf en fin de séance à votre enseignant

Prénom/Nom :

Groupe de TD :

Date et heure de la séance :

Arduino UNO est une carte de développement vous permettant de développer des applications sur
micro-controleur ATMéga 328.

Voici le schéma donnant les correspondances des pins (et ports) de l’ATMéga 328 et des ports I/O de
la carte :

W. PERETTI Page 1 sur 7


Architecture des Systèmes
TP 2
Arduino Uno : Généralités et GPIO

1) Questions préliminaires :

Qu’est-ce qu’un signal analogique ? un signal numérique ?

Qu’est-ce qu’un GPIO ?

Présentez sous forme de tableau les correspondances entre les numéros de broches du
GPIO de la carte Arduino UNO, les ports et les numéros de pins de l’ATMéga 328.

Quelle est la particularité des ports 0 et 1 du GPIO de la UNO ?

W. PERETTI Page 2 sur 7


Architecture des Systèmes
TP 2
Arduino Uno : Généralités et GPIO

2) Prise en main Framework et carte :

Le Framework Arduino que l’on appelle un peu abusivement le « langage Arduino » est
une simple bibliothèque écrite en C/C++ qui va proposer un ensemble d’objet et de fonction
destinées à faciliter le développement des applications.

Utiliser ce Framework facilite les développements mais nous verrons qu’il consomme plus
de mémoire et de temps processeur et qu’il n’est donc pas indiquer pour toutes les
applications destinées à répondre le plus possible en « temps immédiat ».

a) Etude préliminaire du code

Ouvrez un nouveau sketch et tapez vous-même l’exemple suivant (copy/paste est une
TRES MAUVAISE habitude).

int outPin = 13 ;

void setup() {
pinMode(outPin, OUTPUT);
}

void loop() {
digitalWrite(outPin, HIGH);
delay(1000);
digitalWrite(outPin, LOW);
delay(1000);
}

Quelle est la structure générale d’un programme Arduino ?

Quelle différence fondamentale y a-t-il entre les fonctions setup() et loop() ?

Quel est l’intérêt de déclarer outPin dans la section au-dessus du setup() ?

W. PERETTI Page 3 sur 7


Architecture des Systèmes
TP 2
Arduino Uno : Généralités et GPIO

Que font les fonctions pinMode(), digitalWrite() et delay() ?


Commentez le code fournis.

Donnez l’algorithme de ce sketch.

Le signal sur le port 13 est analogique ou numérique ? Quelle est sa période T ?


Rappelez la relation entre fréquence f et période T. En déduire la fréquence du signal
sur outPin.

b) Manipulations

Compilez le programme.
(pour vous aider à répondre aux questions :
https://www.locoduino.org/spip.php?article92
Et recherche sur internet )

A quoi sert l’opération de compilation ?

Sur quelle machine est faite la compilation ? A destination de quelle machine est faite
la compilation ? Pourquoi parle-t-on de cross-compilation ?

Pourquoi la première compilation est toujours plus longue que les compilations
suivantes ?

A la fin de la compilation combien d’octets de la mémoire flash sont occupés ?


Combien d’octets de la mémoire dynamique sont occupés par les variables globales
? Quelle différence entre variables globales et variables locales en C/C++ ?

W. PERETTI Page 4 sur 7


Architecture des Systèmes
TP 2
Arduino Uno : Généralités et GPIO

c) Téléversez le programme

Branchez la carte Arduino, vérifiez qu’elle est bien reconnue (IDE Arduino : outils/type
de carte) et que le port de communication est bien sélectionné (IDE Arduino :
outils/port).

Observez les leds TX et RX pendant le téléversement. Décrivez vos observations.


Qu’en déduisez-vous de ce qui se produit à ce moment-là sur les ports 0 et 1 du GPIO
? Expliquez pourquoi.

Une fois le programme téléversé, décrivez ce que vous voyez. En quoi cela traduit
bien le programme que vous avez écrit ?

d) Modifiez le programme :

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}

Compilez cette version du programme. Comparez l’occupation mémoire de cette


version avec la précédente. Qu’en déduisez-vous ?

Téléversez observer que l’on a bien exactement la même chose entre ce programme
et le précédent.

W. PERETTI Page 5 sur 7


Architecture des Systèmes
TP 2
Arduino Uno : Généralités et GPIO

e) Modifier la fréquence du signal de sortie

Modifiez le programme pour que le signal de sortie de la carte soit de fréquence f =


5000 Hz.
Expliquez comment vous faites pour obtenir une fréquence de 5000Hz

Votre code :

void setup() {
// écrivez votre code ici

void loop() {
// écrivez votre code ici

W. PERETTI Page 6 sur 7


Architecture des Systèmes
TP 2
Arduino Uno : Généralités et GPIO

Compilez, téléversez et observez.


Pourquoi la led reliée à la pin 13 ne clignote plus ?

W. PERETTI Page 7 sur 7

Vous aimerez peut-être aussi