Vous êtes sur la page 1sur 22

Projets de physique statistique

Magistre de physique fondamentale

Universit Paris Sud

MICROCONTROLEUR ARDUINO
Printemps 2015

Frdric Bouquet et Julien Bobroff

Merci de nous faire suivre vos remarques et corrections :


frederic.bouquet@u-psud.fr, julien.bobroff@u-psud.fr
MICROCONTROLEUR ARDUINO

La carte Arduino est un microcontrleur open source, qui a t adopt par la communaut des
Makers. De nombreuses ralisations, conseils, tutoriaux peuvent se trouver facilement sur le
net. Arduino permet toute sortes de ralisations diverses, rendant facilement accessible ce qui
ncessitait avant de llectronique complique. Le but de ces sances est dutiliser cet outil pour
faire de la physique, de construire votre propre systme de mesure.

Les 2 sites webs de rfrence :


http://www.arduino.cc/
http://playground.arduino.cc/French/Reference

Le Microcontrleur Arduino .............................................................................................. 2


La platine dexprimentation (breadboard) ....................................................................... 3
Les entres / sorties .......................................................................................................... 4
Les entres / sorties numriques............................................................................................... 4
Les entres analogiques. ........................................................................................................... 7
Les sorties analogiques ............................................................................................................. 8
Les tensions de rfrences ...................................................................................................... 10
Le port USB ............................................................................................................................ 10
Transfrer un programme la carte ................................................................................ 10
Les prcautions (ou comment ne pas dtruire votre carte Arduino) ................................ 12
Le langage de programmation ......................................................................................... 15
LA SEANCE DE TRAVAIL : dcouvrir Arduino .................................................................... 17

1
Microcontrleur Arduino : Guide de Base

LE MICROCONTROLEUR ARDUINO

Un microcontrleur est un systme qui ressemble un ordinateur : il a une mmoire, un


processeur, des interfaces avec le monde extrieur. Les microcontrleurs ont des performances
rduites, mais sont de faible taille et consomment peu dnergie, les rendant indispensables dans
toute solution dlectronique embarque (voiture, porte de garage, robots, ). La carte Arduino
nest pas le microcontrleur le plus puissant, mais son architecture a t publie en open-source,
et toute sa philosophie sappuie sur le monde du libre, au sens large.

LED connecte D13 entres / sorties digitales


~ : sorties pseudo-analogiques
tmoin de com. srie

connecteur USB : com. srie (ne pas utiliser)


com srie
alim 5V / 500 mA
tmoin d'alimentation

alim extrieure 7-12 V microcontrleur


(optionnelle)

entres analogiques

sorties de tension fixes

La carte Arduino se relie un ordinateur par un cble USB. Ce cble permet la fois
lalimentation de la carte et la communication srie avec elle.

Attention : il y a quelques prcautions suivre pour ne pas endommager le matriel. Ne pas


respecter ces consignes peut entraner la perte de la carte, et potentiellement celle du port USB
de lordinateur. Ces consignes sont donnes la fin de ce document, respectez-les !

2
Microcontrleur Arduino : Guide de Base

LA PLATINE DEXPERIMENTATION (BREADBOARD)

Pour faire des montages lectriques rapidement, on utilise une platine dexprimentation
appele breadboard dans laquelle on peut planter des fils ou des composants sans avoir besoin
de soudure. Ces platines contiennent deux bandes latrales de chaque ct, quon rserve en
gnral aux tensions dalimentation (O V et 5 V). La partie centrale est spare en deux bandes
distinctes (voir les connections caches qui relient les diffrentes entres du breadboard ci-
dessus).

3
Microcontrleur Arduino : Guide de Base

LES ENTREES / SORTIES

Les entres / sorties (I/O input/output) reprsentent le moyen qua la carte arduino
dinteragir avec lextrieur. Les sorties sont contrles par la carte, cela permet au programme
du microcontrleur de dclencher des actions (allumer ou dteindre une LED, un ventilateur, un
moteur). Les entres sont lues par le microcontrleur, ce qui lui permet de connaitre ltat du
systme auquel il est reli.

Il y a deux sortes dI/O : les I/O numriques, et les I/O analogiques.

LES ENTREES / SORTIES NUMERIQUES

Les entres / sorties numriques ne peuvent prendre que deux valeurs, la valeur LOW (~ GND,
0 V), et la valeur HIGH (~ 5 V). La valeur dun port numrique peut donc tre code sur un bit, 0
ou 1, true ou false.

La carte arduino comporte 14 I/O numriques (appeles DIGITAL sur la carte), numrotes de 0
13 (voir le schma ci-dessus), et appeles D0, D1, D2, D13. Chacun de ces ports peut-tre
dclar comme tant une entre ou comme une sortie dans le programme du microcontrleur.
Les deux premiers ports (D0 et D1) sont rservs la communication srie, il ne faut pas les
utiliser. Le dernier port, D13, possde un indicateur lumineux, une LED qui sallume quand le
port est HIGH, et qui steint quand le port est LOW.

Le port GND est la masse de la carte (0 V).

LES SORTIES NUMERIQUES

Chacun des 14 ports numriques de la carte peuvent tre utiliss en sortie. Si un port est dclar
comme une sortie, le microcontrleur contrle la valeur de ce port.

Attention, le courant que peut dlivrer un port digital en sortie est limit 40 mA : en demander
plus peut endommager la carte ! Ce genre de situation peut arriver si un port, dclar comme
une sortie, est directement reli la masse (port GND) avec une rsistance trs faible (un fil), et
que le programme bascule la sortie en HIGH (5 V). Linverse est galement dangereux (une
sortie numrique relie au port 5 V et bascule sur la valeur LOW).

Les sorties numriques ne peuvent pas fournir une grande puissance lectrique (40 mA max sur
5 V). On les utilise pour changer des informations (par exemple les ports D0 et D1 servent la
communication srie avec lordinateur), ou pour dclencher des actions : par exemple allumer
une LED.

Voici un montage simple pour contrler ltat de la LED :

4
Microcontrleur Arduino : Guide de Base

Le programme tlvers sur le microcontrleur dfinit le port D2 comme une sortie. Quand le
programme bascule la valeur de ce port LOW, la LED est teinte. Quand le programme bascule
la valeur de D2 HIGH, la LED sallume. La rsistance R1 sert limiter le courant, ce qui protge
la fois le microcontrleur et la LED (qui a galement un courant critique au-del duquel elle
fume). Si la LED est monte en sens inverse, elle ne sallumera jamais (cest une diode).

Instructions de programmation utiles :

- pinMode(2, OUTPUT); // dfinit le port D2 comme une sortie ;


- digitalWrite(2, HIGH); // bascule ltat du port D2 HIGH ;
- digitalWrite(2, LOW); // bascule ltat du port D2 LOW.
-

LES ENTREES NUMERIQUES

Chacun des 14 ports numriques de la carte peuvent tre utiliss en entre. Si un port est
dclar comme entre, ltat du port sera lu par arduino (HIGH ou LOW), et cette valeur pourra
tre utilise dans le programme pour dclencher telle ou telle action.

Dclar comme une entre, un port numrique sera considr comme HIGH ou LOW selon la
valeur de la tension mesure par la carte. En gros, les tensions infrieures 1 V seront lues
comme LOW, les tensions suprieures 4 V seront lues comme HIGH. Il faut viter les tensions
intermdiaires, qui risquent de donner un rsultat indtermin. Attention, une tension
suprieure 5.5 V peut dtruire la carte arduino.

Attention : une entre numrique non connecte sera flottante (sans tension affecte), son tat
sera indtermin. La lecture de ce port peut donner nimporte quel rsultat. Il faut viter cette
situation. Par exemple, si on veut dterminer si un interrupteur est appuy ou non, le montage
suivant nest pas bon car lorsque linterrupteur est ouvert, le port D2 nest alors plus connect
rien, il ny a aucune tension dfinie. Si le microcontrleur lit ltat de cette entre, le rsultat sera
alatoire. Cest le cas du montage suivant :

5
Microcontrleur Arduino : Guide de Base

Le montage suivant corrige ce problme : cette fois, la masse GND est relie au via une rsistance
R2 trs leve (10kOhms) monte en parallle , appele rsistance de pull-down.

Maintenant, quand linterrupteur est ouvert, D2 et la masse sont relis directement sans courant
entre eux, et la carte mesure bien 0 V (D2 est au mme potentiel que la masse GND). Quand
linterrupteur est ferm, le potentiel du port D2 monte 5 V (HIGH), et un courant de 0.5 mA
circule entre le port 5 V et le port GND, ce qui nest pas un problme.

Attention : si le port D2 est dclar par erreur comme une sortie au lieu dune entre dans le
programme, il y a un risque de court-circuit si linterrupteur est referm.

Instructions de programmation utiles :

- pinMode(2, INPUT); // le port D2 est dfinit comme une entre ;


- buttonState = digitalRead(2); // retourne la valeur du port D2 (true ou
false, 0 ou 1, HIGH ou LOW).

6
Microcontrleur Arduino : Guide de Base

LES ENTREES ANALOGIQUES.

Une entre analogique est une sorte de voltmtre : la carte lit la tension qui est applique sur le
port. Cependant le microcontrleur ne travaille quavec des chiffres : il faut donc transformer la
tension applique en sa valeur numrique. Cest le travail du convertisseur analogue/digital, dit
CAD .

Le CAD de la carte arduino travaille sur 10 bits : il accepte en entre une tension comprise entre
0 V et Vref une tension de rfrence, et fournit au microcontrleur un chiffre entier compris entre
0 et 1023 ( = 210 - 1). Une tension infrieure 0 V est lue comme 0, une tension suprieure Vref
est lue comme 1023, une tension intermdiaire est lue comme un entier entre 0 et 1023, avec
une relation linaire. La tension Vref est 5 V par dfaut, mais cette valeur peut tre change dans
le programme.

(schma quivalent)

Le montage ci-dessus permet de mesurer une tension modifie par un potentiomtre. Ce


montage est quivalent un pont diviseur de tension (voir le schma quivalent). la place du
port 5 V de la carte arduino, on peut aussi utiliser une source externe pour alimenter le

7
Microcontrleur Arduino : Guide de Base

potentiomtre. Il faut alors faire attention bien dfinir une masse unique dans le circuit. Cest le
cas du montage ci-aprs :

Instructions de programmation utiles :

- sensorValue = analogRead(A0); // fonction qui retourne un entier compris


entre 0 et 1023, selon la tension applique sur le port A0.

LES SORTIES ANALOGIQUES

La carte arduino ne possde pas de vraie sortie analogique, capable de produire une tension
dune valeur arbitraire choisie par lutilisateur. Certains ports numriques peuvent cependant
servir de sortie analogique en utilisant la technique de PWM (Pulse Width Modulation) : il sagit
des ports 3, 5, 6, 9, 10 et 11 (signals par un ~ sur la carte). Ces ports peuvent simuler une
tension entre 0 et 5 V en basculant rapidement entre leur tat LOW (O V) et HIGH (5 V). La
valeur moyenne de la tension est alors 2.5 V si le port passe autant de temps dans un tat que
dans lautre, mais en changeant ce rapport, la valeur moyenne de la tension peut tre contrle
de 0 5 V.

La carte arduino est capable de faire varier la valeur moyenne de ces ports avec une sensibilit
de 8 bits : on fournit un chiffre entier compris entre 0 et 255 ( = 28 - 1), et le port dlivre une
tension moyenne entre 0 et 5 V (0 = 0 V, 255 = 5 V).

8
Microcontrleur Arduino : Guide de Base

tension moyenne = 0 V

tension moyenne = 1.25 V

tension moyenne = 2.5 V

tension moyenne = 3.75 V

tension moyenne = 5 V

Pour certaines applications, une sortie PMW convient tout fait. Par exemple, pour alimenter un
moteur, ou pour faire varier la puissance dune LED. Le circuit ci-aprs permet de faire varier
lintensit de la LED en fonction de la valeur demande au port D3 dfini par le programme
comme une sortie analogique.

9
Microcontrleur Arduino : Guide de Base

Si on a besoin dune vraie tension analogique continue, il faut alors mettre un filtre passe-bas qui
liminera les hautes-frquences et ne gardera que la valeur moyenne.

Instructions de programmations utiles

- analogWrite(3, 127); // envoie sur le port D3 une tension moyenne de 2.5 V.

LES TENSIONS DE REFERENCES

La carte arduino fournit des ports permettant daccder certaines tensions de rfrence.

GND est la rfrence de la carte arduino par rapport laquelle toutes les diffrences de tension
sont mesures. Si la carte est relie lordinateur par un cble USB, cette tension est celle de la
terre.

Les ports 5V et 3V3 donnent accs aux tensions de 5 V et de 3.3 V. Ces tensions sont
normalement rgules et prcises. Une exception : quand la carte est branche sur un port USB
sans alimentation externe, le port 5 V ne provient plus de la carte arduino mais directement du
cble USB, la tension de rfrence 5 V nest alors plus aussi bien rgule.

VIN est la tension de lalimentation externe, quand il y en a une.

Attention : si vous reliez directement le port 5 V au port GND (ou le port 3V3 au port GND, ou le
port 5V au port 3V3), vous provoquerez un court-circuit qui endommagera la carte !

LE PORT USB

Le port USB permet la fois lalimentation de la carte Arduino et la communication srie entre la
carte et lordinateur. Une fois connecte, la carte Arduino apparat dans le gestionnaire de
matriel de votre ordinateur, connect un port srie (COM1, COM4, ). Vous devez vrifier que
lIDE (le programme fourni par Arduino) est bien configur pour dialoguer sur le bon port COM
(et pour le bon type de carte Arduino !). LIDE permet de scanner le port COM et de rcuprer les
messages ventuels de la carte. Utiliser toujours cet outil pour debugger votre programme
quand il y a des informations qui circulent sur le port srie : Outils / Moniteur srie.

TRANSFERER UN PROGRAMME A LA CARTE

La faon dont le microcontrleur gre ses entres / sorties est fixe par un programme, contenu
dans le microcontrleur. Ce programme doit tre crit par lutilisateur. En pratique, lutilisateur
crit le programme en langage C, en utilisant un environnement de dveloppement spcialis
(IDE) install sur un ordinateur. Ce programme est ensuite compil et tlvers dans le
microcontrleur par liaison srie (USB).

10
Microcontrleur Arduino : Guide de Base

Nous utiliserons lIDE standard Arduino (arduino.exe). Il suffit de taper le code dans la fentre
ddie, de compiler et de tlverser le programme sur la carte arduino. La carte doit tre relie
lordinateur par un cble USB. La modle de la carte arduino (il y a plusieurs type de carte) ainsi
que le port srie sur lequel elle est branche doivent tre dclars dans le menu de lIDE
Outils/type de carte et Outils/port srie.

Arduino IDE
compiler et
tlverser

compiler

programme

fentre de
messages

carte arduino
et port com.

Une fois tlvers dans le microcontrleur, le programme sexcute. La fonction setup()


sexcute une seule fois, la fonction loop() sexcute en boucle.

De nombreux exemples de programmes sont disponibles via le menu Fichier/Exemples de lIDE,


classs par thmes. Nhsitez pas vous inspirer de ces exemples pour vos propres programmes.
Nhsitez pas non plus regarder sur internet les nombreux sites dexemples et de conseils lis
arduino, mais essayez de bien comprendre la logique des exemples que vous utiliserez.

11
Microcontrleur Arduino : Guide de Base

LES PRECAUTIONS
(OU COMMENT NE PAS DETRUIRE VOTRE CARTE ARDUINO)

Attention : il y a quelques prcautions suivre pour ne pas endommager le matriel. Ne pas


respecter ces consignes peut entraner la perte de la carte, et potentiellement celle du port USB
de lordinateur.
ne jamais connecter une tension suprieure 5 V sur les ports dentre de la carte ;
ne jamais faire dbiter la carte plus de 40 mA par port, et 200 mA au total. Donc ne
jamais envoyer une sortie de la carte vers un circuit de trop faible rsistance.

Si vous devez relier une sortie la masse (entre D13 et GND par exemple), il faut donc que votre
circuit contienne une rsistance dau moins 125 , ce qui correspond un courant de 40 mA.
Une rsistance de 200 est prfrable soit 25 mA pour garder une marge de scurit.

Quelques consignes importantes :


Ne jamais relier directement une sortie digitale la masse ;
Ne jamais relier directement deux sorties digitales ;
Bien vrifier la polarit dune alimentation externe avant de lallumer (ou via un
multimtre avant de brancher) ;
Ne pas envoyer de tension dans ports des sorties fixes (ceux intituls 5V 3V3 GND
VIN) ;Ne jamais envoyer plus de 5.5 V dans une entre, analogique ou digitale ;
Toujours vrifier les courants demands par le circuit, et les comparer aux limites de la
carte.
Toujours mettre une rsistance en srie une diode branche une sortie digitale pour
ne pas cramer la diode.

Toutes les diffrentes tensions sont mesures par rapport GND, qui est reli la masse quand
la carte est connecte un ordinateur par cble USB. Ne pas dpasser une tension de 5.5 V sur
un port veut dire ne pas dpasser une diffrence de tension de 5.5 V entre un port et le
GND .

CE QUIL NE FAUT PAS FAIRE N1 : UN COURANT TROP FORT

La faon la plus simple de dtruire une sortie numrique est de lui faire dbiter un courant
lectrique trop lev. Une rsistance infrieure 100 entre le port numrique et la masse
(port GND) demandera un courant suprieur 50 mA si le port bascule en HIGH. Un fil, qui a une
rsistance quasi-nulle, fera un court-circuit et imposera un courant norme.

NE FAITES JAMAIS CE MONTAGE !

12
Microcontrleur Arduino : Guide de Base

CE QUIL NE FAUT PAS FAIRE N2 : UN COURANT TOTAL TROP FORT

Une faon un peu plus complique de dtruire les sorties numriques est de respecter la limite
des 40 mA par ports, mais de dpasser la limite des 200 mA que peut dbiter la carte Arduino. Si
une rsistance de 125 relie un port numrique la masse, 40 mA circulent quand le port est
bascul en HIGH, ce qui nabime pas le port (mme si il vaut mieux ne pas trop sapprocher des
40 mA en pratique). Mais si six ports numriques basculent en mme temps, le courant total
dlivr par la carte dpassera les 200 mA, et le microcontrleur sera endommag.

NE FAITES JAMAIS CE MONTAGE !

CE QUIL NE FAUT PAS FAIRE N3 : UN COURT-CIRCUIT

Si on relie deux ports numriques lun lautre, tous deux dfinit en sortie, lun tant bascul en
HIGH, lautre en LOW. Un court-circuit stablit entre les deux ports, et la carte brule.

NE FAITES JAMAIS CE MONTAGE !

CE QUIL NE FAUT PAS FAIRE N4 : UN AUTRE COURT-CIRCUIT

Nimporte quel court-circuit est dangereux pour la carte : relier le port 5 V (ou le port 3.3 V)
directement au port GND, ou relier le port 5 V au port 3.3 V.

NE FAITES JAMAIS CE MONTAGE !

13
Microcontrleur Arduino : Guide de Base

CE QUIL NE FAUT PAS FAIRE N5 : UN COURANT TROP FORT MALGRE TOUT

Une sortie analogique peut tre dtruite de la mme faon quune sortie numrique, si un
courant plus lev que 40 mA est demand. La sortie D3 est utilise pour produire une tension
de valeur moyenne 0.5 V, il faut quand mme une rsistance de 125 minimum entre ce port et
le port GND : la tension moyenne est de 0.5 V, mais la tension relle varie sans arrt entre 0 et
5 V.

Une rsistance de 15 nest pas suffisante


pour limiter le courant en dessous de 40 mA,
mme si une tension de 0.5 V seulement est
demande.

NE FAITES JAMAIS CE MONTAGE !

CE QUIL NE FAUT PAS FAIRE N6 : UNE TROP FORTE TENSION

Il suffit de brancher une tension suprieure 5 V sur un port de la carte (numrique ou


analogique).

NE FAITES JAMAIS CE MONTAGE !

14
Microcontrleur Arduino : Guide de Base

LE LANGAGE DE PROGRAMMATION

On trouvera toutes les instructions et des exemples trs clairs sur :


http://arduino.cc/en/Reference/HomePage

STRUCTURE DUN PROGRAMME

//Declaration des variables :

int led = 13; // fixe la variable led 13


byte bytea ; // entier de 0 255
int integer1 ; // entier -32,768 32,767
unsigned int uInteger1 ; // 0 65,535
float mesure1 ; // reel
boolean flag=true; // booleen true ou false

int tableauInt[6] ; //tableau dentiers a 6 entres, numrotes de 0 5

// Initialisation des ports de la carte qui seront utiliss et initialisation du port


srie

void setup() { // cette squence est ralise une seule fois, au dbut
Serial.begin(9600); // initialise le port srie
pinMode(3, OUTPUT); // initialise la voie 3 comme sortie
pinMode(4, INPUT); // initialise la voie 4 comme entre
pinMode(led, INPUT); // si led est une constante de valeur 13, initialise la
voie 13 comme entre
} // fin de la procdure setup()

// programme principal : une boucle qui tourne linfini:

void loop() {
instructions du programme mettre ici;
}

INSTRUCTIONS LES PLUS UTILES

Attention : la capitalisation des lettres est importante !

Imposer des tensions aux sorties de la carte (Ecrire) :


digitalWrite(3, HIGH); // impose la valeur HIGH au port 3 dfini comme OUTPUT
(autrement dit, envoie 5 V la sortie du port D3). On peut mettre LOW et dans ce cas, cest 0 V.

analogWrite(6,100) ; // impose la valeur 100 au port D6 dfini comme OUTPUT (il


sagit dune sortie analogique PWM). Cette valeur est dfinie entre 0 et 255 (255 vaut 5 V et 0
vaut 0 V donc 100 correspondra ici une tension moyenne en sortie de D6 de 1,96 V).

15
Microcontrleur Arduino : Guide de Base

Lire des tensions aux entres de la carte :


buttonState = digitalRead(4); // lit la valeur HIGH ou LOW du port D4 dfini comme
INPUT (ici buttonState a t dfini comme boolean)

val = analogRead(5); // lit la valeur analogique au port 5 dfini comme INPUT (valeur
entire comprise entre 0 et 1023)

affecter une valeur un tableau


readings[3] = 1 ;

transformation dun entier en rel ;


nombrereel = float(nombreentier) ;

exemples de calculs simples (faire attention aux types rel ou entier):


Vmes= average*Vref/1024;
temp = (Rmes/100-1)/3.85e-3;

attente en millisecondes:
delay(1);

mesure du temps coul depuis le lancement du programme en millisecondes:


time = millis(); (dfinir time comme unsigned long)

envoi sur port srie de chaine de caractre :


Serial.print("Mesure : ");
Serial.print(variable) ; // a envoie la valeur de variable
Serial.println(" toto "); // Envoi dune chaine avec retour la ligne (car println
et pas print indispensable en fin de ligne:

une boucle for (ici de 0 99) :


for (int index=0; index < 100; index++){
instructions de la boucle executer ;
}
autre exemple:
for(int x = 2; x < 100; x = x * 1.5){
instructions de la boucle executer ;
}

une boucle while


(ici qui sexecute tant que index est <3, et chaque tour on ajoute 1)
while (index< 3) {
index = index + 1 ;
}
do {
instruction faire;
}

une condition if (ici par exemple sur la valeur dun boolean buttonState:
if (buttonState == HIGH) {
instruction crire ici si buttonState vaut HIGH ;
}
else {
instruction crire ici si buttonState vaut LOW ;
}

16
Microcontrleur Arduino : Guide de Base

LA SEANCE DE TRAVAIL : DECOUVRIR ARDUINO

Vous allez dcouvrir les capacits dArduino en lutilisant. Voici une srie de tches raliser
pour cela. Profitez-en pour vous familiariser avec la programmation et aux montages
lectroniques, cela vous sera utile pour les sances suivantes. Nhsitez pas consulter internet,
mais gardez un esprit critique sur les informations que vous y trouverez.

Enfin, pensez prendre des notes au fur et mesure, car vous ne vous souviendrez pas de tout
la prochaine sance

AU TOUT DEBUT
Se connecter sur sa session, lancer lIDE Arduino.
Spcifier le type de carte Arduino utilise dans Outils\Type de carte (vrifier si votre
carte est une UNO ou une MEGA)
Brancher la carte Arduino via lentre USB la plus droite sur face avant PC.
Spcifier le port com utilis en allant dans Outils\Port (un des ports est intitul Arduino).
Si un doute, demander lenseignant ou vrifier dans panneau de config / systeme /
materiel / Gestionnaire de priph (dire ok quand il dit quon na pas les autorisations).

LA CONNECTIQUE : MICROCONTROLEUR ARDUINO ET BREADBOARD

Le breadboard : cest une plateforme pour connecter facilement diffrents lments. Voici quoi
il ressemble et les connections qui sy cachent:

Par convention, on choisit en gnral de relier la ligne bleue 0 V (la masse GND ) et la ligne
rouge 5 V.

Pour sentraner des montages lectriques simples, avant mme de programmer la carte
Arduino, ralisez les petits exercices suivants :

1) Vrifier avec le multimtre les connections du breadboard de la figure ci-dessus.

17
Microcontrleur Arduino : Guide de Base

2) Utiliser la carte Arduino pour crer une tension de 5 V entre la zone rouge et la zone bleue
du breadboard et mesurer cette tension avec un multimtre (Attention de ne pas court-
circuiter la carte en reliant directement GND et 5 V). Faire pareil mais cette fois avec la
tension 3.3 V de la carte.

3) Construire un montage pour allumer une LED (noubliez pas dinsrer une rsistance de
220 qui limitera le courant 20 mA).

4) Construire un montage pour alimenter un potentiomtre qui dlivre une tension variable.
Vrifier au multimtre.

5) Utiliser un potentiomtre pour allumer une LED progressivement.

18
Microcontrleur Arduino : Guide de Base

PROGRAMMER LE MICROCONTROLEUR ARDUINO


Pour crer un programme sur le microcontrleur, procder ainsi chaque fois :

lancer le programme initOrsay avec le cble USB branch (a va initialiser proprement


toutes les voies en entre et effacer les effets du programme prcdent) ;
dbrancher le cble USB, raliser votre montage lectrique et votre programme, le faire
valider par lenseignant si vous avez un doute ;
rebrancher le cble USB puis tlverser le programme arduino ;
si a marche, dessinez sur vos cahiers le circuit lectrique ou prenez une photo pour
garder la mmoire du circuit.

1) Un premier test (programmation de base)

Lancer le programme Fichier / Exemples / Basics / Blink et vrifier que la LED interne de la
carte arduino clignote bien. Modifier le dlai de clignotement dans le programme et vrifier.

2) Allumer une LED extrieure (sortie numrique)

partir du mme programme Blink, faites cette fois clignoter une vraie LED via le
breadboard.

3) Utiliser un interrupteur (entre numrique)

Raliser le circuit correspondant au programme Button pour utiliser linterrupteur et


contrler lallumage de la LED interne la carte.

4) Utiliser un interrupteur pour contrler une LED extrieure

Modifier le montage prcdent pour cette fois contrler lallumage dune LED extrieure
avec linterrupteur.

5) Lire une tension constante (entre analogique / criture et lecture du port srie)

Utiliser la fonction AnalogRead pour lire une tension (utiliser la tension 3.3 V de la carte par
exemple). Pour cela, sinspirer de la syntaxe du programme Fichier / Exemples / Analog /
AnalogInOutSerial. Envoyer cette valeur lue sur le port srie pour lafficher lcran et
vrifier la valeur lue via Outils\Moniteur serie. Afficher galement la valeur en volt.

19
Microcontrleur Arduino : Guide de Base

6) Lire une tension pilote avec un potentiomtre

Modifier le circuit lectrique prcdent pour cette fois avoir une tension rglable par un
potentiomtre et vrifier l encore la tension lue lcran.

7) Crer une tension PWM (sortie analogique PWM)

Utiliser une sortie PWM pour crer une tension de 1 V (sinspirer de lexemple
AnalogWriteMega). La lire la fois avec un multimtre et avec une entre analogique de la
carte. Comparer les rsultats.

8) Piloter une LED avec une tension PWM

Utiliser une sortie PWM pour crer une tension qui pilote lclairage dune LED extrieure.

RECUPERER ET TRACER LES DONNEES AVEC LABVIEW


Utilisez le programme labview dj fourni Communication Arduino Vers Labview.vi pour lire
les datas lors dune des expriences Arduino prcdentes.

Attention, il ne faut pas lancer le programme labview si le moniteur Srie est en marche ou si
vous tlversez un programme dans la carte Arduino (car les deux programmes utilisent le
mme port srie).

Pensez aussi crire dans le programme Arduino vos datas sous la forme dun tableau compos
de nombres spars par des ; et avec un retour la ligne en fin de chaque ligne, par exemple :

4;7
6 ; 3.2
7;2

Vrifier que vous arrivez lire les donnes et les sauver avec labview puis relire ces donnes
avec un autre programme (Kaleidagraph ou Exel).

E. QUE MESURE-T-ON VRAIMENT AVEC LE MICROCONTROLEUR ?


En faisant des mesures appropries de tension, testez

- la digitalisation de la carte ;
- le bruit de la carte ;
- le temps dacquisition minimum ;
- lintrt ou non de moyenner une mesure.

Facultatif : faites un programme qui mesure un thermomtre Pt100 en fonction du temps, et


tudier la prcision et la sensibilit de votre systme.

20