Avant de passer à la suite, je vous propose de vous remémorer tout ce qu’on a vu, voir un peu plus, dans ce glossaire en terme de programmation.
Les bases de la programmation : Les fonctions
Le programme de base ressemble à ceci :
La fonction setup() qui s’exécute qu’une seule fois au démarrage de la carte et la fonction loop() se répète tant que la carte est allumée après que la fonction setup() se soit exécutée. Il vous suffira de remplir ces deux fonctions afin de créer votre programme. Puis vous pourrez aussi créez vos propres fonctions que vous pourrez utiliser n’importe où dans votre programme afin de ne pas avoir à répéter plusieurs fois les mêmes lignes de code et de rendre le programme plus lisible.
Les bases de la programmation : Les variables (et les commentaires)
Comme dans tout langage de programmation, Arduino utilise des variables. Elles peuvent contenir toutes sortes d’informations allant d’un nombre, à une suite de caractère en passant par une variable booléenne. Voici comment sont déclarée ces variables :
Vous pouvez déclarez le type de chaque variable avant la fonction setup()(sans forcément leur donner de valeurs) puis de les modifier par la suite dans le programme et de faire opérations mathématiques entre variables d’un même type comme ceci :
Si vous voulez plus d’informations sur les variables, vous pouvez consulter le tutoriel de mike118 disponible ici ou aller sur le site officielle d’Arduino contenant toute la doc (en anglais).
Vous verrez que dans certains de vos futurs programmes vous aurez un nombre conséquent d’informations dans le setup() et la partie le précédant. C’est pour évitez de s’y perdre que je vous conseille de structurer votre programme afin de le rendre plus lisible en mettant une sorte de titre en chaque fonction de votre programme (gestion des pins, déclarations de modules, étape dans le programme, …):
N’hésitez pas à retirer les parties que vous n’utiliserez pas, et à commenter chaque partie de votre programme (y compris dans la fonction loop()). D’ailleurs pour créer des commentaires (parties de programme non exécutée) vous pouvez le faire comme ceci :
Les bases de la programmation : Utiliser les pins
Les pins sont les endroits sur la carte Arduino où l’on peut brancher les fils qui seront reliés aux composants. Comme on l’a vu dans la description des cartes, il y en a des digitaux et des analogiques et voici comment les utiliser :
Les instructions permettent de définir l’état d’une sortie (haut/bas pour une digitale, entre 0 et 255 pour une analogique) ou bien de lire une entrée. Elles sont très facile d’utilisation sur Arduino. Pour les lectures n’hésitez pas à les intégrées dans une variable afin de pouvoir l’utiliser facilement.
La déclaration du numéro d’un pin par un nom peut se faire de deux manière, grâce à une variable de type int (ou uint8_t si vous avez lu le tuto à propos de la gestion des variables) ou bien à l’aide de #define qui s’utilisent comme ceci :
Pour une meilleure compréhension l’ensemble des symboles (valeur définie par un #define) sont écrites en majuscule comme ci-dessus. Car si les #define permettent d’optimiser l’espace utiliser par les variables (le #define intervient lors de la phase de compilation en remplaçant partout dans le programme le nom du symbole par sa valeur), les opérations mathématiques relatives aux variables ne sont pas valables pour les symboles. Les symboles ne sont pas seulement utilisés pour les numéros de pins mais toute valeur amenée à ne pas subir d’opération mathématique.
Les bases de la programmation : Les structures et boucles:
Ici, nous allons aborder les différentes structures et boucles que vous serez amenez à utiliser avec Arduino. On va commencer par la structure « Si…Alors » dont voici la syntaxe :
Sachez qu’il n’est pas obligatoire de placer un « else » après un « if » mais toujours obligatoire de mettre un « if » avant un « else ».
Ici la condition utilisée dans la structure « Si » est nommée variable et est testée pour variable égale à 0, mais elle aurait très bien pu être d’une autre forme :
De même les conditions peuvent être combinées à l’aide d’opérateurs logiques tel que and, or, not (et, ou, non) :
Si vous avez beaucoup de conditions, il existe une alternative à la structure « Si…Alors.. » qui permet d’exécuter des lignes en fonction du retour de la variable testée (obligatoirement une variable du type int) dont voici sa syntaxe :
La structure « Tant que… » qui s’écrit comme ceci :
Permet d’exécuter du code tant qu’une condition est vérifiée.
Dans ce type de structure, il ne faut pas oublier de mettre à jour la condition afin d’en sortir au moment voulu.
Mais la structure « Tant que… » peut poser un problème dans certains cas car si la condition n’est pas vérifiée au moment de son exécution, la boucle ne sera pas exécutée. Pour palier à ce problème il existe une petite variante de la boucle nommée « Faire… Tant que… » dont la syntaxe est :
La dernière structure que vous devez connaitre est la structure « Pour », c’est une structure d’itération qui permet de répéter plusieurs fois les mêmes lignes de code. Elle pourra servir à lire les valeurs de plusieurs potentiomètre et à les afficher par exemple.La syntaxe de la structure « Pour » est :
Ici le pas est de +1 par itération (nombre de fois que le code s’exécute mais dans d’autres cas il pourra être de 40 voir négatif.
Les bases de la programmation : Les fonctions
A la manière des fonctions setup et loop il vous est possible de créer des fonctions vous permettant de ne pas avoir à récrire plusieurs fois les mêmes lignes (et donc les modifiées plus rapidement). Pour créer une simple fonction qui exécutera son bout de code dans son coin on utilise cette syntaxe :
Il vous suffira d’écrire ceci pour l’appeler où vous le souhaiter dans votre programme :
Les parenthèses servent à contenir les arguments des fonctions si il y en a. Les arguments sont des valeurs dont la fonction a besoin pour fonctionner, on défini les arguments nécessaires comme ceci lorsque l’on déclare une nouvelle fonction :
Cette fonction par exemple vous permettra d’afficher dans l’interface Série l’heure que vous lui aurez fourni sous cette forme :
Mais ce type de fonction n’est pas le seul utile à connaitre, en voici un exemple d’un retournant la valeur au carré du nombre en argument :
Le type int de cette fonction nous permet d’utiliser la fonction return, qui comme son nom l’indique retourne la valeur qui le suit. Ce qui permet d’apeller la fonction sous cette forme:
Donc ici nombreAuCarre sera égal à 4.
Un autre avantage des fonctions est la possibilités qu’une fonction puisse en appeler une autre :
Mais attention à ne pas vous y perdre, le but étant d’avoir toujours un programme explicite, n’hésitez donc pas à expliciter vos noms de fonctions
<- Retourner à la page précédente | Passer au chapitre suivant ->
Bonne initiative , très claire , comme on dit ya qu’a . . .merci .
Superbe site
Pouvez-vous nous faire des tutoriels pour amateurs s’il vous plaît
Vous trouverez de nombeux tuto sur le site :
blog du shop avec de nombreux articles dont plusieurs tuto : https://www.robot-maker.com/shop/blog.html
Ensemble de tutos publiés par les membres du forum : https://www.robot-maker.com/forum/tutorials/
Ouvrages complet : https://www.robot-maker.com/ouvrages => Je vous conseille l’ouvrage dédié aux débutants arduino !
Voici une liste de tutoriels qui devraient vous intéresser :
https://www.robot-maker.com/ouvrages/tuto-arduino/
https://www.robot-maker.com/ouvrages/2-0-vos-premiers-circuits-arduino/
https://www.robot-maker.com/ouvrages/
https://www.robot-maker.com/forum/tutorials/