Vous êtes sur la page 1sur 5

Programmer Arduino

Ce chapitre prsente le language Arduino, son vocabulaire ainsi que la structuration d'un programme crit en
Arduino.

Le langage de programmation
Un langage de programmation est un langage permettant un tre humain d'crire un ensemble
d'instructions (code source) qui seront directement converties en langage machine grce un compilateur
(c'est la compilation). L'excution d'un programme Arduino s'effectue de manire squentielle, c'est--dire que
les instructions sont excutes les unes la suite des autres. Voyons plus en dtail la structure d'un
programme crit en Arduino.
1

La structure d'un programme


Un programme Arduino comporte trois parties :

1.
2.
3.

la partie dclaration des variables (optionnelle)


la partie initialisation et configuration des entres/sorties : la fonction setup ()
la partie principale qui s'excute en boucle : la fonction loop ()

Dans chaque partie d'un programme sont utilises diffrentes instructions issues de la syntaxe du langage
Arduino.

Arduino pour les Kids : Initiation language arduino

Coloration syntaxique
Lorsque du code est crit dans l'interface de programmation, certains mots apparaissent en diffrentes
couleurs qui clarifient le statut des diffrents lments :
En orange, apparaissent les mots-cls reconnus par le langage Arduino comme des fonctions existantes.
Lorsqu'on slectionne un mot color en orange et qu'on effectue un clic avec le bouton droit de la souris, l'on
a la possibilit de choisir Find in reference : cette commande ouvre directement la documentation de la
fonction slectionne.
En bleu, apparaissent les mots-cls reconnus par le langage Arduino comme des constantes.
En gris, apparaissent les commentaires qui ne seront pas excuts dans le programme. Il est utile de bien
commenter son code pour s'y retrouver facilement ou pour le transmettre d'autres personnes. L'on peut
dclarer un commentaire de deux manires diffrentes :

dans une ligne de code, tout ce qui se trouve aprs // sera un commentaire.
l'on peut encadrer des commentaires sur plusieurs lignes entre /* et */ .

La syntaxe du langage
ponctuation
Le code est structur par une ponctuation stricte :

toute ligne de code se termine par un point-virgule ;


le contenu d'une fonction est dlimit par des accolades { et }
les paramtres d'une fonction sont contenus pas des parenthses ( et ) .

Une erreur frquente consiste oublier un de ces lments.

Les variables
Une variable est un espace rserv dans la mmoire de l'ordinateur. C'est comme un compartiment dont la
taille n'est adquate que pour un seul type d'information. Elle est caractrise par un nom qui permet d'y
accder facilement.
Il existe diffrents types de variables identifis par un mot-cl dont les principaux sont :

nombres entiers (int)


nombres virgule flottante (float)
texte (String)
valeurs vrai/faux (boolean).

Un nombre dcimales, par exemple 3.14159, peut se stocker dans une variable de type float. Notez que
l'on utilise un point et non une virgule pour les nombres dcimales. Dans Arduino, il est ncessaire de
dclarer les variables pour leurs rserver un espace mmoire adquat. On dclare une variable en spcifiant
son type, son nom puis en lui assignant une valeur initiale (optionnel). Exemple :
int ma_variable = 45;
// int est le type, ma_variable le nom et = 45 assigne une valeur.

Les fonctions
Une fonction (galement dsigne sous le nom de procdure ou de sous-routine) est un bloc d'instructions
que l'on peut appeler tout endroit du programme.

Arduino pour les Kids : Initiation language arduino

Le langage Arduino est constitu d'un certain nombre de fonctions, par exemple analogRead(), digitalWrite()
ou delay().
Il est possible de dclarer ses propres fonctions par exemple :
void clignote(){
digitalWrite
delay (1000)
digitalWrite
delay (1000)
}

(brocheLED,
;
(brocheLED,
;

HIGH) ;
LOW) ;

Pour excuter cette fonction, il suffit de taper la commande :


clignote();
On peut faire intervenir un ou des paramtres dans une fonction :
void clignote(int broche,int vitesse){
digitalWrite (broche, HIGH) ;
delay (1000/vitesse) ;
digitalWrite (broche, LOW) ;
delay (1000/vitesse) ;
}
Dans ce cas, l'on peut moduler leurs valeurs depuis la commande qui l'appelle :
clignote(5,1000);
//la sortie 5 clignotera vite
clignote(3,250);
//la sortie 3 clignotera lentement

Les structures de contrle


Les structures de contrle sont des blocs d'instructions qui s'excutent en fonction du respect d'un certain
nombre de conditions.
Il existe quatre types de structure :

if...else : excute un code si certaines conditions sont remplies et ventuellement excutera un autre code
avec sinon.
exemple :
//si la valeur du capteur depasse le seuil
if(valeurCapteur>seuil){
//appel de la fonction clignote
clignote();
}

while : excute un code tant que certaines conditions sont remplies.


exemple :
//tant que la valeur du capteur est suprieure 250
while(valeurCapteur>250){
//allume la sortie 5

Arduino pour les Kids : Initiation language arduino

digitalWrite(5,HIGH);
//envoi le message "0" au port serie
Serial.println(1);
//en boucle tant que valeurCapteur est suprieue 250
}
Serial.println(0);
digitalWrite(5,LOW);

for : excute un code pour un certain nombre de fois.


exemple :
//pour i de 0 255, par pas de 1
for (int i=0; i <= 255; i++){
analogWrite(PWMpin, i);
delay(10);
}

switch/case : fait un choix entre plusieurs codes parmi une liste de possibilits
exemple :
// fait un choix parmi plusieurs messages reus
switch (message) {
case 0: //si le message est "0"
//allume que la sortie 3
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
break;
case 1: //si le message est "1"
//allume que la sortie 4
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
break;
case 2: //si le message est "2"
//allume que la sortie 5
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
break;
}

Arduino pour les Kids : Initiation language arduino

Exemple
L'exemple qui suit montre l'utilisation de quelques lments de la syntaxe du langage Arduino.
/*
Dans ce programme, un signal analogique provenant d'un capteur
(potentiomtre)
fait varier la vitesse de clignotement d'une LED, partir d'un certain
seuil
*/
////declaration des variables
// selection de la broche sur laquelle est connecte le capteur
int brocheCapteur = 0;
// selection de la broche sur laquelle est connecte la LED
int brocheLED = 13;
// variable stockant la valeur du signal reu du capteur
int valeurCapteur = 0;
//seuil de dclenchement
int seuil= 200;
///////////initialisation
void setup () {
// broche du capteur configure en sortie
pinMode (brocheCapteur, OUTPUT) ;
// broche de la LED configure en sortie
pinMode (brocheLED, OUTPUT) ;
}
////////////boucle principale
void loop () {
// lecture du signal du capteur
valeurCapteur = analogRead (brocheCapteur) ;
//condition de declenchement
if(valeurCapteur>seuil){
//appel de la fonction clignote
clignote();
}
}
/////fonction personnalise de clignotement
void clignote(){
// allume la LED
digitalWrite (brocheLED, HIGH) ;
// dlai de valeurCapteur" milliseconds
delay (valeurCapteur) ;
// teint la LED
digitalWrite (brocheLED, LOW) ;
// delai de valeurCapteur" milliseconds
delay (valeurCapteur) ;
}
Le principe de fonctionnement est le suivant :
1.
2.

3.

Le signal est lu avec la fonction analogRead () .


La valeur du signal varie en 0 et 1023.
Si la valeur dpasse le seuil, la LED est allume et teinte pendant un dlai correspondant la valeur
du signal reu du capteur.

Arduino pour les Kids : Initiation language arduino

Vous aimerez peut-être aussi