Le langage Arduino
Définition
Une carte Arduino est une petite (5,33 x 6,85 cm) carte électronique équipée d'un
microcontrôleur. Le microcontrôleur permet, à partir d'événements détectés par des
capteurs, de programmer et commander des actionneurs ; la carte Arduino est donc une
interface programmable.
Capteurs Actionneurs
Le syntaxe de langage
Le syntaxe du code
Le syntaxe d’un langage de programmation est l’ensemble des règles d’écriture liées à ce langage.
Avec Arduino, nous devons utiliser un code minimal lorsque l’on crée un programme. Ce code permet de
diviser le programme que nous allons créer en deux grosses parties.
La Fonction Setup
Cette fonction setup() est appelée une seule fois lorsque le programme commence. C’est
pourquoi c’est dans cette fonction que l’on va écrire le code qui n’a besoin d’être exécuté
qu’une seule fois. On appelle cette fonction : fonction d’initialisation. On y retrouvera la
mise en place des différentes sorties et quelques autres réglages.
La fonction loop
Une fois que l’on a initialisé le programme il faut ensuite créer son "cœur", autrement dit le
programme en lui même. C’est donc dans cette fonction loop() où l’on va écrire le contenu du
programme. Il faut savoir que cette fonction est appelée en permanence, c’est-à-dire qu’elle est
exécutée une fois, puis lorsque son exécution est terminée, on la ré-exécute et encore et encore.
On parle de boucle infinie.
Syntaxe
Les instructions sont des lignes de code qui disent au programme : "fait ceci, fait cela,
…’’
Les points virgules terminent les instructions. Les points virgules ( ; ) sont synonymes
d’erreurs car il arrive très souvent de les oublier à la fin des instructions. Par conséquent
le code ne marche pas et la recherche de l’erreur peut nous prendre un temps conséquent .
Les accolades sont les "conteneurs" du code du programme. Elles sont propres aux
fonctions, aux conditions et aux boucles. Les instructions du programme sont écrites à
l’intérieur de ces accolades.
Les variables
Une variable
Le nom de variable accepte quasiment tous les caractères sauf :
,
.
é,à,ç,è
il n’accepte que l’alphabet alphanumérique ([a-z], [A-Z], [0–9]) et _ (underscore). Il ne
doit pas commencer par un chiffre.
Le type
Les types
Type Nombre qu’il Nombre maximale qu’il stocke Taille ( en bits) Taille ( en
stocke octets)
int Entier -32 768 à +32 767 16 bits 2 octets
long Entier -2 147 483 648 à +2 147 483 647 32 bits 4 octets
char Entier -128 à +127 8 bits 1 octets
float Décimale -3,4 * à 3,4* 32 bits 4 octets
double Décimale 1,7 * à 1,7 * 64 bits 8 octets
Les types
Si à présent notre variable "x" ne prend jamais une valeur négative (-20, -78, …), alors on utilisera
un type non-signé. C’est à dire, dans notre cas, un char dont la valeur n’est plus de -128 à +127,
mais de 0 à 255. Voici le tableau des types non signés, on repère ces types par le mot unsigned (de
l’anglais : non-signé) qui les précède :
Type Nombre stocké Plage des valeurs Taille (en Taille (en octets)
acceptés bits)
Unsigned char entier non négatif 0 à 255 8 bits 1 octet
Unsigned int Entier non négatif 0 à 65 535 16 bits 2 octets
Unsigned long Entier non négatif 0 à 4 294 967 295 32 bits 4 octets
Les types
Une des particularités du langage Arduino est qu’il accepte un nombre plus important de
types de variables.
type Nombre stocké Plage de valeurs Taille (en Taille (en
acceptés bits) octets)
Byte Entier non négatif 0 à 255 8 bits 1 octet
Word Entier non négatif 0 à 65535 16 bits 2 octets
Boolean Entier non négatif 0à1 1 bits 1 octet
Les types
Les variables booléennes sont des variables qui ne peuvent prendre que deux valeurs : ou
VRAI ou FAUX. Elles sont utilisées notamment dans les boucles et les conditions. Une
variable booléenne peut être définie de plusieurs manières :
Les types
Quand une variable vaut "0", on peut considérer cette variable comme une variable
booléenne, elle est donc fausse. En revanche, lorsqu’elle vaut "1" ou n’importe quelle
valeurs différente de zéro, on peut aussi la considérer comme une variable booléenne,
elle est donc vraie. Voilà un exemple :
Les types
Le langage Arduino accepte aussi une troisième forme d’écriture (qui lui sert pour utiliser
les broches de sorties du microcontrôleur) :
Les opérations
Les opérateurs
Un opérateur est un symbole qui indique au programme d’éxécuter des fonctions
mathématiques ou logiques spécifiques.
Arduino est riche avec des opérateurs intégrés parmi eux ces opérateurs:
Opérateurs arithmétiques
Opérateurs de comparaison
Opérateurs logiques
Opérateurs binaires
Opérateurs composées
Les opérateurs arithmétiques
On suppose que a=10 et b=20
Nom d’opérateur Symbole description Exemple
Affectation = Enregistre la valeur du variable à la droite a=b
de la signe dans la variable au gauche
addition + Additionne les deux opérandes a+b donne 30
Soustraction - Soustraire le 2éme opérande du premier a-b donne -10
multiplication * Multiplie les deux opérandes a*b donne 200
Division / Devise le numérateur du dénominateur b/a donne 2
modulo % Donne le reste de la division euclidienne b%a donne 0
Exemple
Exemple1 Exemple 2
float x = 0; float x = 0;
float y = 15; float y = 15;
float z = 0; int z = 0;
x = 12 / 2; x = 12 / 2;
Z= y / x; Z= y / x;
Opérateurs de comparaison
Nom d’opérateur Symbole Description
est égale à == Ce symbole, composé de deux égales, permet de tester
l’égalité entre deux variables
est inférieur à < teste l’infériorité d’une variable par rapport à une autre
est supérieur à > Teste la supériorité d’une variable par rapport à une autre
est inférieur ou égale à <= teste l’infériorité ou l’égalité d’une variable par rapport à
une autre
est supérieur ou égal à >= teste la supériorité ou l’égalité d’une variable par rapport à
une autre
est différent de != teste la différence entre deux variables
Les opérateurs logiques
Nom d’opérateur Symbole Description Exemple
Et && Si les deux opérandes sont (a&&b)=true
différents à zéro alors la condition
est ¨true¨
Ou || Si un des deux opérandes est (a||b)=true
différent de zéro alors la
condition est ¨true¨
Non ! Ça sert à inverser l’état logique !(a && b) = false
de l’opérande
Les opérateurs binaires
Nom d’opérateur Symbole Description
Et & Et logique copie un bit au résultat s’il existe au deux
opérandes
Ou | Ou logique copie un bit au résultat s’il existe à l’un des
opérandes
Ou exclusif ^ Ça copie un bit s’il existe dans un des opérateurs mais
pas les deux
non ~ Ça inverse les bits des opérandes
Décalage à gauche << L’opérande gauche est décalé à gauche par le nombre de
bits indiqué à l’opérande droite.
Décalage à droite >> L’opérande gauche est décalé à droite par le nombre de
bits indiqué à l’opérande droite.
Les opérateurs composés
Nom de l’opérateur Symbole Description
Incrémentation ++ Augmente la valeur entière avec 1
Décrémentation -- Diminue la valeur entière avec 1
Addition composé += Ça additionne l’opérande à gauche à celui à droite et
affecte le résultat au opérande gauche
Soustraction composé -= Ça soustrait l’opérande à gauche à celui à droite et affecte
le résultat au opérande gauche
Multiplication composé *= Ça multiplie l’opérande à gauche à celui à droite et affecte
le résultat au opérande gauche
Les opérateurs composés
Nom de l’opérateur Symbole Description
Division composé /= Ça divise l’opérande à gauche à celui à droite
et affecte le résultat au opérande gauche
Modulo composé %= Ça calcule le reste de la division euclidienne
de l’opérande à gauche sur celui à droite et le
stocke le résultat à l’opérande gauche
Ou binaire composé |= Ça affecte le résultat de ou binaire au opérande
à gauche
Et binaire composé &= Ça affecte le résultat de ou binaire au opérande
à droite
Exemple
Int a=10;
Int b=20;
Int c=30;
a++; a=11
b--; b=19
c-=a; c=19
c!=b; false
b+=a; b=30
Merci pour votre attention
Des Questions?