Sie sind auf Seite 1von 28

Initiation lArduino 2016-2017 BoilingBrains

Initiation lArduino
Youtube : BoilingBrains
Twitter : @Boiling_Brains_
Facebook : Boiling Brains
monsterprod01@gmail.com

1
Initiation lArduino 2016-2017 BoilingBrains

Sommaire

I Hardware 4
I Quest ce que lArduino ? . . . . . . . . . . . . . . . . . . . . . . . . 4
II De quoi est compose cette bestiole ? . . . . . . . . . . . . . . . . . 4
III Matriel ncessaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

II Software 9
I Logiciel Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
II Communication avec la carte . . . . . . . . . . . . . . . . . . . . . 11

III Programmation 15
I Structure gnrale dun programme . . . . . . . . . . . . . . . . . . 15
II Fonctions propres Arduino . . . . . . . . . . . . . . . . . . . . . 16
III Fonctions mathmatiques et trigonomtriques . . . . . . . . . . . 19
IV Nombres alatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
V Elments de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . 20
VI Oprateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
VII Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
VIII Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IX Instructions de contrle . . . . . . . . . . . . . . . . . . . . . . . . 24
X Bibliothques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2
Initiation lArduino 2016-2017 BoilingBrains

Introduction
Ce document est une reprise des vidos initiation lArduino ralises sur
la chane Youtube BoilingBrains. Il sagit du format texte des vidos si vous
prfrez ( mme si cest un peu bizarre dire).

Nous tenons signaler que les personnes ayant vu les trois vidos en
questions, napprendrons pratiquement rien de nouveau ici, hormis quelques
complments.

Quel est le but de ce document ?


Runir les trois vidos pour proposer un "recueil" permettant de dbuter
en Arduino et grce auquel chacun pourra avancer son propre rythme. Cest
diffrent du format vido o on se sent un peu oblig de finir un pisode avant
de sarrter.

Avant de vous laissez dmarrer, nous souhaitons prciser que ce document


pourrait contenir lune ou lautre erreur. Nhsitez donc pas nous le signa-
ler si vous remarquez quelque chose de "suspect".

Ce recueil est compos de 3 grandes sections :

Hardware
Software
Programmation

Aprs ces 3 sections, vous serez capable de faire tout ce que vous voudrez avec
lArduino (ou pas). Je vous rappelle que le but de ce document est de vous
aider vous lancer et non de faire de vous des experts dans le domaine. Aprs,
comme avec tout, il faudra bien videmment de la pratique avant de pouvoir
faire de grandes choses mais cest en forgeant quon devient forgeron ( nest-ce
pas ?).

Bref, commenons !

3
Initiation lArduino 2016-2017 BoilingBrains

I. Hardware
Nous avons commenc la srie Arduino en prsentant des composants tel
que la LED, le bouton poussoir, la photorsistance,... dans le but dintroduire de
futurs projets qui arriveront sur la chane. Mais avant daller plus loin, il serait
intressant de revenir sur les bases mme de lArduino.

I Quest ce que lArduino ?


LArduino est une carte programmable (circuit imprim) qui permet de
faire de llectronique de manire trs simple. En effet, elle possde une struc-
ture ergonomique (les entres et sorties sont bien alignes et indiques). La
programmation qui sen suit est simplifie et les mmes commandes reviennent
souvent. Cest donc le meilleur moyen dapprendre llectronique en partant
de 0 et de faire du prototypage ou du dveloppement. Cette carte est open
source, ce qui signifie que vous avez par exemple accs aux plans de la carte.

Il existe diffrents types dArduino et chaque types correspond une forme


et une taille diffrente. Nous nallons pas tous les citer mais nous avons par
exemple :
LArduino UNO (la version que nous utilisons actuellement pour nos
vidos)

LArduino MEGA qui possde plus dentres et de sorties ainsi quune


mmoire plus consquante.

LArduino Nano qui comme son nom lindique est beaucoup plus petite
que ses homologues.

II De quoi est compose cette bestiole ?


1. Alimentation

La carte Arduino peut tre alimente de deux faons : soit par le port USB reli
lordinateur, soit avec un transformateur secteur de tension adquate via la
prise jack ( on peut galement utiliser des piles).

LArduino accepte des tensions continues de 6 20V mais il est conseill


de ne pas dpasser les 12V. La marge de scurit offre une protection contre les
ventuels creux de tension indsirables. La carte est dote dun rgulateur de
tension qui va ramener la tension dalimentation 5V et la garder constante au
cas o on alimente avec une tension suprieure. De toute manire, en alimentant
lArduino au port USB de lordinateur on est sr davoir une tension de 5V.

4
Initiation lArduino 2016-2017 BoilingBrains

2. Microcontrleur

Le microcontrleur est llment le plus important de la carte Arduino. Un


microcontrleur est un circuit intgr (IC) qui rassemble les lments essentiels
dun ordinateur : processeur (CPU), mmoires, horloge interne et ports den-
tres et de sorties (I/O).
Le rle du CPU est dexcuter des programmes stocks en mmoire.
Il y a 3 types de mmoire dans un Arduino :

La mmoire FLASH : Cette mmoire sert stocker les programmes


excuter par le CPU. Cest une mmoire non volatile , ce qui signifie
que les donnes sont conserves mme lorsquon coupe lalimentation.
LAtmega 328 en possde 32 Ko.

La mmoire SRAM ( Static Random Access Memory) : Cette mmoire


permet de stocker des donnes temporaires tel que les variables de notre
programme. Contrairement la mmoire FLASH, la SRAM est une m-
moire volatile. Elle est trs rapide et lArduino UNO en possde seulement
2 Ko. On peut comparer cette mmoire la RAM dun ordinateur.

La mmoire EEPROM (Electrically Erasable Programmable Read Only


Memory ou mmoire morte effaable lectriquement et programmable) :
Elle permet le stockage de donnes persistantes ( donnes de log ou tats
devant tre conservs). Cest une mmoire lente mais non volatile. LAr-
duino UNO possde 1Ko de cette mmoire. Cest le disque dur de notre
carte.

Lhorloge interne (ou oscillateur) permet de cadencer (rythmer) les actions du


CPU car ce dernier ne travaille pas en continue, il excute un certain nombre de
calculs par seconde.
[La puissance de calcul dun processeur est exprime en Hertz. Aujourdhui les
processeurs sont capables datteindre plus de 2Ghz (Giga Hertz = Milliards de Hertz)
soit plusieurs milliards de calculs par seconde.]

Les ports dentres et de sorties sont des connexions qui relient le micro-
contrleur au monde extrieur. Cest linterface entre le composant lectronique
et le monde rel. On peut raccorder divers composant cette interface : LED,
photorsistance, bouton-poussoir, . . . Si on retourne lArduino, on remarque
quun certain nombre dentres/sorties sont relies aux pattes du microcontr-
leur. Cest notre fameuse interface avec le monde rel. Lorsquon branche des
fils dans ces entres/sorties, cest comme si on les connectait directement aux
pattes du microcontrleur.

5
Initiation lArduino 2016-2017 BoilingBrains

Les microcontrleurs permettent de diminuer la taille, la consommation lec-


trique et le cot des produits. On les utilise dans les systmes embarqus comme
les contrleurs des moteurs automobiles, les tlcommandes, llectromnager,
les jouets, la tlphonie mobile,... les applications sont trs nombreuses.

En bref, les microcontrleurs peroivent des influences extrieures par linterm-


diaire de capteurs, traitent les donnes puis envoient des ordres de commandes
vers lextrieur. Cest en quelque sorte le cerveau de lArduino.

3. Broches ou Pins

Les pins ou entres/sorties de la carte Arduino sont principalement :


Soit des connexions dalimentation (5V/3.3V/Vin/Ground). Cest par l
que sont aliments les circuits quon ralise.

Soit des entres/sorties digitales ou analogiques. Nous verrons plus de


dtails concernant cela dans la section Software.

Figure 1 Broches du microcontrleur ATmega328P

6
Initiation lArduino 2016-2017 BoilingBrains

Figure 2 Face arrire de la carte Arduino UNO

4. Bouton Reset

Le bouton Reset prsent sur la carte, permet de tout rinitialiser et donc gale-
ment effacer le programme en mmoire.

5. LED dalimentation

La LED dalimentation est une LED tmoin qui clignote lorsque la carte Arduino
est alimente.

III Matriel ncessaire


Pour vous lancer, mis part la carte Arduino, il vous faudra encore ce quon
appelle une planche pain ou breadboard ( en anglais, cest toujours plus
styl). Une breadboard est une plaque dessai sans soudure. Cest le support
sur lequel on ralise les montages.

Il faudra donc faire aucune soudure. Il suffira dinsrer les composants et


cbles dans les petits trous qui sont des contact mtallique ressort.

7
Initiation lArduino 2016-2017 BoilingBrains

Figure 3 Illustration des connections dans une breadboard

La figure ci-dessus, montre la manire dont les diffrents contacts sont lec-
triquement relis entre eux.

Un circuit assembl sur une telle plaque ne sera bien videmment pas aussi
solide quun circuit imprim mais ce nest pas trs important vu quon utilisera
a uniquement pour exprimenter des montages provisoires.

Maintenant que vous avez votre carte Arduino ainsi que votre breadboard,
il vous faudra des composants et quelques cbles pour raliser vos montages.
Il faut savoir que niveau composants, vous avez largement le choix. En ef-
fet, il existe vraiment beaucoup de composants compatibles avec lArduino :
leds,moteur, capteur de temprature, ecran lcd, module wifi, . . . . il y a vraiment
de TOUT !

Vous vous demandez ce quil est possible de faire avec un Arduino, jaimerais
dire TOUT, tellement les applications sont nombreuses. Vous pouvez vraiment
raliser un peu ce que vous voulez avec un Arduino (sans blague).La seule vraie
limite cest votre imagination.

8
Initiation lArduino 2016-2017 BoilingBrains

II. Software
I Logiciel Arduino
La carte Arduino se programme laide dun environnement de dveloppe-
ment spcialement cr pour Arduino. Ce logiciel est plus facile prendre en
main et plus intuitif que les logiciels classiques de programmation. En plus, il
ne faut mme pas linstaller. Il suffit de dcompresser larchive et de lancer le
logiciel. Vous pouvez le tlcharger gratuitement sur :

http://arduino.cc/en/Main/Software

Si on ouvre le logiciel, on tombe sur cette interface :

Figure 4 Interface du logiciel

Si aucun programme na t charg, le croquis (sketch) porte un nom par


dfaut : "sketch_mois+date+x"
date = jour du mois
x = une lettre de lalphabet si cest le premier sketch de la journe
quon ouvre, a sera a, si cest le deuxime alors b,....

9
Initiation lArduino 2016-2017 BoilingBrains

Mais tout a cest du dtail . . . Intressons nous aux diffrents boutons.

Figure 5 Boutons de linterface

Nous avons :
1. Vrifier : Vrifie et compile ( compiler = transformer un programme
crit en language de programmation en language machine binaire) le
programme quon a crit. Si jamais il ya des erreurs dans notre code, elles
seront affiches dans la fentre noire en bas.

2. Tlverser : compile le programme et lenvoi sur la carte Arduino.

3. Nouveau : Ouvre un nouveau croquis

4. Ouvrir : Permet douvrir un croquis dj existant

5. Sauvegarder : Enregistre le croquis en cours

6. Moniteur srie : Ouvre ce quon appelle le moniteur srie, qui est une
fentre qui permet de voir des donnes changes entre la carte Arduino
et le PC en cours dexcution dun programme. a permet de voir la
valeur des capteurs utiliss dans le montage. (son utilisation nest pas
obligatoire).

10
Initiation lArduino 2016-2017 BoilingBrains

II Communication avec la carte


Avant de relier lArduino au PC par cble USB, il faut choisi le modle de la
carte :

Figure 6 Choix de la version de notre Arduino

11
Initiation lArduino 2016-2017 BoilingBrains

Aprs cela, on slectionne le port COM virtuel utilis. Normalement cette


tape se fait toute seule mais il est conseill daller vrifier si on est sur le bon
port chaque fois quon branche lArduino, histoire dviter des soucis ( carte
non dtecte).

Figure 7 Choix du port de communication

12
Initiation lArduino 2016-2017 BoilingBrains

Si vous avez plusieurs cartes Arduino, je vous conseille dutiliser un port


USB diffrent pour chaque carte ( pas oblig). Aprs avoir branch notre carte
sur lordinateur, nous allons vrifier si la connexion entre lArduino et le PC
peut stablir sans problme. Pour cela, on charge le programme dexemple
appel Blink :

Figure 8 Programme dexemple "Blink"

13
Initiation lArduino 2016-2017 BoilingBrains

Et on tlverse :

Figure 9 Tlversement de notre code

Si tout se passe bien et quon a pas derreur, la LED 13 commence cligno-


ter :+ montrer la LED qui clignote sur la carte

Figure 10 LED 13

Nous pouvons donc enfin passer la partie la plus importante lors dune
session "Arduino". Vous aurez devin, je parle de la programmtion !

14
Initiation lArduino 2016-2017 BoilingBrains

III. Programmation
Il existe plusieurs languages de programmation. Dans le cas de lArduino,
nous allons programmer dans un language qui se rapproche du C et qui nas
pas vraiment de nom . . . Cest un language qui a t spcialement dvelopp
pour lArduino. . . .disons que le C classique est un peu trop cryptique. L on
aura quelque chose de beaucoup plus simple.

Commenons par la structure gnrale dun programme...

Figure 11 Structure dun programme

I Structure gnrale dun programme


Un programme Arduino se structure en trois parties : la dclaration et
linitialisation des variables, "le setup()" et "le loop()"

Les variables sont ce quil y a de plus important dans un programme. Cest


le nom associ un certain emplacement de la mmoire qui pourra tre utilis
pour stocker par exemple, le rsultat dune opration.

La mmoire dont on dispose est en gnral limite, il existe donc plusieurs


type de variable diffrentes. Chaque type occupe un certain nombre doctets (
plus ou moins grand selon le type de la variable). Le but sera donc dutiliser
le type de variable adapte, qui optimise la place occupe en mmoire. Dans
les petits programmes cela nas pas vraiment dimportance car on ne dpassera
jamais la mmoire maximum disponible sur notre carte. Une variable se dclare
de la faon suivante :

type nom_de_la_variable = valeur ;

15
Initiation lArduino 2016-2017 BoilingBrains

Sans quune valeur ne lui soit affecte, la variable est initialise 0. Aprs avoir
dclarer nos variables, on passe dans le second bloc c--d. le setup, qui est ce
quon appelle une fonction.

Une fonction est un ensemble dinstructions reunies en une unit logique


possdant un nom voquateur afin dtre appelle comme une instruction
ordinaire. Toutes les instructions quelle contient sont xecute en un seul
bloc.Dans la fonction setup, on va programmer les diffrentes broches du
microcontroleur. Si on branche par exemple un composant sur la broche 8 de
la carte, il faut dire si cette broche est utilise en entre (INPUT) ou en sortie
(OUTPUT).
Dans le cas dun capteur, la broche devra tre dclare en entre car le
capteur envoie des informations la carte tandis que dans le cas dune led
qui est un actionneur, on la dclarera en sortie. Le setup servira galement a
dclarer une connexion srie ou une ventuelle connexion bluetooth.

Le dernier bloc est galement une fonction nomme loop qui est une boucle
infinie. . . cest elle qui contiendra les tches que doit effectuer notre programme
c--d. la logique au moyen de laquelle seront interrogs les capteurs ( exemple :
donne moi la temprature toute les x secondes) et command les actionneurs
( exemple : allumer une led ou faire tourner un moteur). Les instructions se
trouvant dans cette boucle seront rptes jusqu la mise hors tension de la
carte Arduino.

II Fonctions propres Arduino


Mis part le setup et le loop, lArduino possde un grand nombre de
fonctions diffrentes prte tre utilises. La particularit de ces fonctions est
quelles sont de haut niveau c-a-d quelles permettent de faire une srie de chose
plus ou moins complexes en un minimum de ligne de code. Ces fonctions
masquent la complexit de lArduino et rendent la programmation accessible
tous.

De toute les fonction disponibles sur lArduino,seules 5 parmis elles, re-


viennent assez souvent ( pour pas dire tout le temps ou presque) :

On vous a dit que le setup servait programmer les diffrentes broches de


notre microcontrleur. Pour ce faire, on utilise la fonction pinMode (pin,mode)
qui permet de dfinir le sens de fonctionnement de la broche appele PIN soit
en entre (mode = INPUT) ou en sortie (mode= OUTPUT).

16
Initiation lArduino 2016-2017 BoilingBrains

Avant de prsenter les 4 autres fonctions, il faut savoir que lArduino possde
deux type de ports :

1. Des ports analogiques qui reoivent ou envoient des signaux pouvant


prendre nimporte quelle valeur au cours du temps comprise entre deux
extrema ( =signal analogique)
2. Des ports numriques qui eux, ne peuvent recevoir ou envoyer que des
minimas (0V) et des maximas (5V) et aucune valeur intermdiaire.

Maintenant que nous savons a, nous pouvons prsenter dans un premier


temps les fonctions associ un port numrique et ensuite celles associes aux
ports analogiques :

digitalWrite(pin, value) : Envoi un niveau bas (0) ou un niveau haut (5V)


sur la broche spcifie.

digitalRead(pin) : Lit le niveau de tension (0 ou 5V) de la broche et


retourne la valeur

[Il faut savoir que les dveloppeurs ont associ le niveau bas une constante appele
LOW qui correspond la valeur 0V et le niveau haut une constante appel HIGH qui
correspond 5V et donc dans value, on marquera LOW ou HIGH.]

Concernant les ports analogiques, cest un peu plus compliqu car le mi-
crocontrleur ne traite que des signaux numriques. Les signaux analogiques
devront passer par ce quon appelle un convertisseur A/D avant dtre pris en
charge par le microcontrleur. Le convertisseur recevra une tension entre 0 et
5V venant de notre capteur et la transformera en un entier compris entre 0 et
1024.

Pourquoi 1024 ?
Car la sortie du convertisseur, nous aurons un nombre binaire crit sous
10 bits qui est la rsolution de notre microcontrleur et 210 = 1024.

Petit exemple pour mieux comprendre :

Imaginons que nous avons une valeur de tension correspondant 1V. La


premire tape va tre de convertir cette valeur en un entier compris entre 0
et 1024. Dans notre cas, 1V correspond 205 ( si on arrondi lentier le plus
proche). La dernire tape consistera convertir 205 en un nombre binaire de
10 bits c--d 00011001101.

17
Initiation lArduino 2016-2017 BoilingBrains

Maintenant que nous avons compris la conversion digitale -> analogique,


intressons-nous aux fonctions associes aux ports analogiques :

analogRead(pin) lit la tension sur une broche analogique et renvoie ensuite


la valeur lue sous forme de 10bits comme expliqu prcdemment.

analogWrite(pin, value) gnre un train dimpulsion ou ce quon appelle


un signal PWM ( modulation de la largeur dimpulsion en franais).

Un signal PWM est un signal logique ( valant 0 ou 1) priode constante


mais dont le rapport cyclique est dfini par lutilisateur. Ce dernier correspond
la dure dimpulsion ( signal 1) par rapport cette priode fixe.

Comment sutilise cette fonction ?


Il faut tout dabord tre branch sur une broche PWM de la carte. On spcifie
ensuite 2 paramtres : le numro de la broche sur laquelle on est ainsi que le
rapport cyclique qui doit tre compris entre 0 (0%) et 255 (100%).

[Pour plus de dtails concernant les PWM, nous vous conseillons la vido de U =
RI 1 qui explique trs bien la chose.]

Figure 12 PWM

1. https://www.youtube.com/watch?v=CSReyYwbGRY

18
Initiation lArduino 2016-2017 BoilingBrains

Arduino possde des fonctions concernent la gestion du temps. Voici 3


exemples intressants :

delay(ms)
La fonction delay permet de mettre notre programme en pause pendant la
dure (en millisecondes) passe en paramtre. Cest une fonction quon utilise
dans 99% des programmes crit. Elle permettra par exemple de faire clignoter
une LED, chose que nous avons faite dans notre toute premire vido de la
srie. 2

millis()
Cette fonction est galement trs intressante car elle permet de connatre
le nombre de millisecondes coules depuis le dmarrage du programme. La
variable utilise dans cette fonction est remise 0 aprs 232 ms = 4 294 967 296
ms = 4294967,3 min = 1193,04 h = 49,71 jours.

delayMicroseconds(s)
Cette dernire fonction fait exactement la mme chose que la fonction
"delay()" sauf que les temps utiliss ici sont des s, ce qui signifie que cette
fonction sera utilise dans des applications o des constantes trs trs petites
sont ncessaires.

III Fonctions mathmatiques et trigonomtriques


min(x,y) ;max(x,y)

Ces fonctions renvoient la valeur minimale/maximale entre deux nombres.


abs(x)

Cette fonction donne la valeur absolue de largument.

sin(rad) ;cos(rad) ;tan(rad)

Ces fonctions renvoient le sinus,cosinus et la tangente dun angle exprim


en radians.

2. https://www.youtube.com/watch?v=7nKrhRRQ05s&index=11&list=
PLGRT2HUmy88CR-2SKAKMlhGsVihmVpH7d

19
Initiation lArduino 2016-2017 BoilingBrains

sqrt(x)

Cette fonction donne la racine carr de largument.

pow(x,n)

Cette fonction lve x la puissance n. Attention : x et n doivent tre de


type float.

log(x)

Cette fonction donne le logarithme en base 10 de largument.

IV Nombres alatoires

Les nombres alatoires sont gnralement utiliss dans le domaine des jeux.
Il existe deux fonctions qui permettent de gnrer ces nombres (dits pseudo-
alatoire car gnrs par un algorithme) sur lArduino :

randomSeed(seed)
La fonction randomSeed initialise le gnrateur de nombres pseudo-alatoires
avec le paramtre seed. Si la valeur du paramtre est fixe, la squence pseudo-
alatoire sera toujours la mme chaque excution du programme.

long random(min,max)
La fonction random(min,max) renvoi un nombre pseudo-alatoire compris entre
le min et le max spcifi.

V Elments de syntaxe
Comme nimporte quel langage de programmation, les programmes crit
en C dArduino possdent des caractres relatifs leur syntaxe. Les principaux
caractres sont :

Le point virgule ; -> Le point virgule marque la fin dune instruction. Il se


place en fin dune ligne de code.

20
Initiation lArduino 2016-2017 BoilingBrains

Les accolades { } -> Les accolades permettent de marquer le dbut et la


fin dun bloc dinstructions. Ces accolades se retrouvent par dfaut au
niveau du setup() et du loop() mais on pourra en rajouter au niveau du
loop lorsquon crira notre code.

le double slash // -> le double slash est utilis pour crire un commen-
taire sur une seule ligne ou pour dsactiver une ligne du code quon
vient dcrire. La ligne de code est prsente mais elle est ignore par le
compilateur qui compile notre programme comme si cette ligne de code
nexistait pas.

les slashs et les astrisques /**/ -> les slashs et les astrisques servent
aussi crire un commentaire mais cette fois sur plusieurs lignes. Comme
dans le cas prcdent, on peut utiliser cette technique pour dsactiver une
partie de notre code.

VI Oprateurs
Si vous avez besoin de raliser des oprations arithmtiques simples, vous
avez votre disposition : laddition (+), la soustraction (-), la multiplication (*),
la division (/) et le modulo (%) qui permet de calculer le reste dune division
entire.

Vous avez galement des oprateurs de comparaisons qui ressemblent leur


quivalent mathmatiques mais qui doivent tre crit sous forme ASCII. Les
voici :
== gal
!= diffrent de
< strictement infrieur
> strictement suprieur
<= infrieur ou gal
>= suprieur ou gal
= affectation

Vous remarquerez au passage que le symbole daffectation et dgalit se


ressemblent fortement. Il faut faire attention de ne pas les confondre. Le symbole
daffectation attribue une certaine valeur une variable : p.ex. ledPin=6 et le
second compare deux expressions et renvoie vrai (1) ou faux (0) selon le rsultat.
a==12 renvoie 1 si a vaut 12 et 0 si ce nest pas le cas.

21
Initiation lArduino 2016-2017 BoilingBrains

Il existe galement des oprateur logiques qui servent valuer deux ex-
pressions boolennes pour obtenir un rsultat VRAI ou FAUX.

On a le :

&& ET
|| OU
! NON

Exemple : Si on a la condition suivante (a>0) && (a<10) et qu un certain


moment a vaut par exemple 3 alors larduino renvoi un VRAI tandis que si a =
11 alors il renvoit un FAUX. Mme principe pour le OU et le NON.

Il existe des oprateurs permettant dabrger lcriture de certaines opra-


tions arithmtiques. Cela permet dviter de tapper quelques caractres mais a
rend le programme plus compliqu comprendre donc ne soyez pas fineant
et tapper vos oprations en entier ! ! !

Voici quand mme ces fameux oprateurs :

Fonction Oprateur quivaut


incrmentation x++ x=x+1
dcrmentation x- - x=x-1
addition compose x+=y x=x+y
soustration compose x-=y x=x-y
multiplication compose x*=y x=x*y
division compose x/=y x=x/y

Table 1 Oprateurs permttant dabrger lcriture

Remarque : x et y reprsentent des variables de notre programme.

VII Constantes
Cest bien davoir des oprateurs mais il faut galement avoir des variables
et des constantes. Comme en math, une constante est un nom associ une
valeur fixe. Elles sont souvent utilises dans le langage Arduino qui possde
quelques constantes prdfinies que nous avons dj vues prcdemment.

22
Initiation lArduino 2016-2017 BoilingBrains

Pour rappel, il sagit de :

true/false
HIGH/LOW
INPUT/OUTPUT

Il est galement possible de rajouter nos propres constantes grce lins-


truction #define. On pourrait par exemple affecter la valeur 3,1415 au nom de
PI.

#define PI 3,1415

Le nom des constantes sont en gnral crite en majuscules. Cela permet de


les distinguer des variables.

VIII Tableaux
Un tableau est structur de donnes qui permet de stocker plusieurs va-
riables de mme type. Il peut se dclarer de deux manires diffrentes.Tout
dpend si on cre une structure vide ou si on remplit directement les cases de
notre tableau avec des valeurs.
Dans le premier cas, nous utiliserons linstruction suivante :

type de variable nom_du_tableau [taille] ;

Exemple : int tab1 [5] ; // cre un tableau vide pour 5 entiers.

Et dans le second, nous crirons ceci :

type nom_du_tableau [ ]={ , , , };

Exemple : int tab2 [ ] = {1,1,2,3,5} // cre un tableau dentier contenant


les chiffres 1,1,2,3 et 5

On accde un lment du tableau ou on lui affecte une valeur en spcifiant


le nom du tableau et lindice de la position voulu :
Exemple 1 : x = tab3 [1] ; // permet de stocker le 2eme element du tableau
tab3 dans la variable x
Exemple 2 : tab4 [0] = 1 ; // permet daffecter le chiffre 1 la premiere
case du tableau tab4

Il est galement possible de crer des structures de taille dynamique. On


appelle cela des vecteurs.

23
Initiation lArduino 2016-2017 BoilingBrains

IX Instructions de contrle

Comme nous lavons vu au dbut de cette partie, le sketch est compos


de deux grands blocs : le setup et le loop et nous avons dit que le loop doit
contenir les instructions que doit excuter notre programme. Il peut arriver que
ces instructions doivent seffectuer sous certaines conditions. Nous avons pour
cela ce quon appelle des instructions de controle :

if
Le if qui permet dexcuter un bloc dinstruction en fonction de la condition
qui se trouve dans la parenthse. Si la condition est rempli, les instructions
entre crochets sont excutes sinon elle ne le sont pas.

Exemple :
if (a>10)
{
// instruction ou bloc dinstructions quelconque
}

if/else
if/else permet dexcuter un bloc dinstruction si une condition est vrifi et
un autre bloc si ce nest pas le cas.

Exemple :
if (ValeurCapteur < 500)
{
// bloc dinstruction 1
}
else
{
// bloc dinstruction 2
}

24
Initiation lArduino 2016-2017 BoilingBrains

for
La boucle for permet dexcuter un bloc dinstructions un nombre fixe de
fois. On repasse dans la boucle tant que la condition est vraie.
Voici la structure de la boucle :

for ( initialisation ; condition ; le pas)


{
// instructions
}

Linitialisation comprend une variable de contrle qui est initialise une


certaine valeur. Cette valeur est ensuite teste laide de la condition. Si elle
vrifie cette dernire, on excute les instructions et on incrmente ou dcrmente
la valeur de contrle (selon que le pas soit positif ou ngatif) avant de repasser
une nouvelle fois dans la boucle. On rpte le processus jusqu ce que la
variable ne valide plus la condition. Dans ce cas, on sort de la boucle.

Exemple :

for ( int i = 1 ; i<=10 ; i++)


Cette boucle sera excute 10x pour i allant de 1 10.

switch
switch ( valeur)
{
case 1 : instruction ; // xecute pour valeur == 1
break ;
case 2 : instruction ; // xcute pour valeur == 2
break ;
default : instruction ; // xcute dans tous les autres cas
}

Linstruction "switch" permet de comparer la valeur dune variable par


rapport diffrentes valeurs possibles et excuter la ou les instructions associe
si il ya correspondance.

Linstruction break permet de sortir du switch ds quon trouve une


correspondance.

25
Initiation lArduino 2016-2017 BoilingBrains

while
Le "while" est une boucle qui sexcute tant quune certaine condition nest
pas satisfaite. Elle ressemble la boucle FOR mais cest un peu diffrent car
dans le cas du FOR, on sait exactement combien de fois on va rentrer dans la
boucle (c-a-d quon connat le nombre ditrations) alors quici on ne le sait pas
du tout. . . .. a peut tre 2 fois, 5 fois comme 42 fois. . . .on nen sait rien.

while (condition)
{
// instructions
}

do-while
Le "do-while" est une boucle similaire la boucle "while". La seule diff-
rence est quici la condition est vrifie en fin de boucle, ce qui signifie que la
boucle est excute au moins 1x contrairement au "while".

do
{
// instructions
}
while (condition)

26
Initiation lArduino 2016-2017 BoilingBrains

X Bibliothques
Pour finir, lArduino possde ce quon appelle des bibliothques qui sont
des paquets de fonctions directement regroupe afin dtre utilises pour une
application donne. Il existe un grand nombre de bibliothques. Nous pouvons
par exemple citer : "LiquidCristal" qui permet de grer laffichage dun cran
LCD ou encore "Servo" qui permet de commander des servomoteurs.

Si vous souhaitez utiliser une bibliothque pr-installe, il suffit de limporter


partir du logiciel Arduino ( Croquis > Importer bibliothque).

Figure 13 Import dune bibliothque

Il est galement possible dajouter des bibliothques non prsentes de base.


Pour ce faire, il faut tout dabord tlcharger cette dernire (format .zip). Aprs
lavoir dcompresse, on obtient un dossier quil suffit de placer dans librairies
du rprtoire Arduino.

[Une bibliothque possde en gnral des programmes dexemples qui vous


permettent dillustrer son utilisation].

27
Initiation lArduino 2016-2017 BoilingBrains

Rfrences
[Personnalisez vos montages Arduino, 2013] .G. Spanner
[Le grand livre dArduino] .E. Bartmann

28

Das könnte Ihnen auch gefallen