la syntaxe langage Arduino
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 délimité par des accolades « { » et « } »
les paramètres d'une fonction sont contenus pas des parenthèses « ( » et « ) ».
Une erreur fréquente consiste à oublier un de ces éléments.
Les variables
Une variable est un espace réservé dans la mémoire de l'ordinateur. C'est comme un
compartiment dont la taille n'est adéquate que pour un seul type d'information. Elle est
caractérisée par un nom qui permet d'y accéder facilement.
Il existe différents types de variables identifiés par un mot-clé dont les principaux sont :
- nombres entiers (int)
- nombres à virgule flottante (float)
- texte (String)
- valeurs vrai/faux (boolean).
Un nombre à décimales, 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 à décimales. Dans Arduino, il
est nécessaire de déclarer les variables pour leurs réserver un espace mémoire adéquat. On
déclare une variable en spécifiant 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 désignée sous le nom de procédure ou de sous-routine) est un bloc
d'instructions que l'on peut appeler à tout endroit du programme.
Le langage Arduino est constitué d'un certain nombre de fonctions, par exemple analogRead(),
digitalWrite() ou delay().
Il est possible de déclarer ses propres fonctions par exemple :void clignote(){
digitalWrite (brocheLED, HIGH) ;
delay (1000) ;
digitalWrite (brocheLED, LOW) ;
delay (1000) ;
} Pour exécuter cette fonction, il suffit de taper la commande :
clignote();On peut faire intervenir un ou des paramètres 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 contrôle
Les structures de contrôle sont des blocs d'instructions qui s'exécutent en fonction du respect
d'un certain nombre de conditions.
Il existe quatre types de structure :if...else : exécute un code si certaines conditions sont remplies et éventuellement exécutera un
autre code avec sinon.exemple ://si la valeur du capteur depasse le seuil
if(valeurCapteur>seuil){
//appel de la fonction clignote
clignote();
} while : exécute un code tant que certaines conditions sont remplies.
exemple ://tant que la valeur du capteur est supérieure à 250
while(valeurCapteur>250){
//allume la sortie 5
digitalWrite(5,HIGH);
//envoi le message "0" au port serie
Serial.println(1);
//en boucle tant que valeurCapteur est supérieue à 250
}
Serial.println(0);
digitalWrite(5,LOW);for : exécute 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);
}
digitalWrite(5,LOW);for : exécute 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 possibilitésexemple :// fait un choix parmi plusieurs messages reçus
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;
}ExempleL'exemple qui suit montre l'utilisation de quelques éléments de la syntaxe du langage Arduino./*
Dans ce programme, un signal analogique provenant d'un capteur (potentiomètre)
fait varier la vitesse de clignotement d'une LED, à partir d'un certain seuil
*/
////declaration des variables
// selection de la broche sur laquelle est connectée le capteur
int brocheCapteur = 0;
// selection de la broche sur laquelle est connectée la LED
int brocheLED = 13;
// variable stockant la valeur du signal reçu du capteur
int valeurCapteur = 0;
//seuil de déclenchement
int seuil= 200;
///////////initialisation
void setup () {
// broche du capteur configurée en sortie
pinMode (brocheCapteur, OUTPUT) ;
// broche de la LED configurée 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 personnalisée de clignotement
void clignote(){
// allume la LED
digitalWrite (brocheLED, HIGH) ;
// délai de «valeurCapteur" millisecondes
delay (valeurCapteur) ;
// éteint la LED
digitalWrite (brocheLED, LOW) ;
// delai de «valeurCapteur" millisecondes
delay (valeurCapteur) ;
}
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;
}ExempleL'exemple qui suit montre l'utilisation de quelques éléments de la syntaxe du langage Arduino./*
Dans ce programme, un signal analogique provenant d'un capteur (potentiomètre)
fait varier la vitesse de clignotement d'une LED, à partir d'un certain seuil
*/
////declaration des variables
// selection de la broche sur laquelle est connectée le capteur
int brocheCapteur = 0;
// selection de la broche sur laquelle est connectée la LED
int brocheLED = 13;
// variable stockant la valeur du signal reçu du capteur
int valeurCapteur = 0;
//seuil de déclenchement
int seuil= 200;
///////////initialisation
void setup () {
// broche du capteur configurée en sortie
pinMode (brocheCapteur, OUTPUT) ;
// broche de la LED configurée 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 personnalisée de clignotement
void clignote(){
// allume la LED
digitalWrite (brocheLED, HIGH) ;
// délai de «valeurCapteur" millisecondes
delay (valeurCapteur) ;
// éteint la LED
digitalWrite (brocheLED, LOW) ;
// delai de «valeurCapteur" millisecondes
delay (valeurCapteur) ;
}
Le principe de fonctionnement est le suivant :
1. Le signal est lu avec la fonction « analogRead () ».
2. La valeur du signal varie en 0 et 1023.
3. Si la valeur dépasse le seuil, la LED est allumée et éteinte pendant un délai correspondant
à la valeur du signal reçu du capteur.