Initiation Arduino (1ière séance)
Le vendredi 22 février 2019
Huit participants étaient présent à cette soirée (André, Daniel, Eric, Jean-Claude, Jean-Pierre, Michel, Olivier et Pascal)
Sans oublier Patrick qui est venu m’épauler
Le début fut laborieux, afin d’installer et configurer l’IDE sur toutes les machines
Distribution aux participants du kit Arduino/Écran LCD
Principales fonctions de ce kit :
- Arduino Nano
- 3 LED (vert, jaune et rouge)
- 3 boutons poussoirs
- 2 connecteurs I2C, dont un réservé au LCD
- 1 connecteur pour l’interface moteur pas à pas
- Toutes les broches de l’Arduino Nano sont répliquées sur un connecteur mâle et femelle
- LCD
Une fois IDE lancé et le kit Arduino (Nano) connecté à une machine, il fallait régler les caractéristiques
Pour cela, il faut cliquer l’onglet « Outils »
Ci-dessous une vue de ce que vous devriez trouver
Vous remarquerez que dans cette vue le port « COM » n’est pas encore sélectionné !
La sélection du port « COM » dépendra de votre la configuration de votre machine
La première chose fut de voir comment un sketch Arduino est structuré
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
//**************************************** //* * //* Initiation à l'Arduino par l'exemple * //* * //* Par Stievenart Freddy ON6FS * //* Version 1.0 - 23/12/2018 * //* * //**************************************** //* * //* Exercice 0 * //* Configuration d'un sketch * //* * //**************************************** // Insérez ici les constantes et déclarations de variables //*************************************** //* Zone de Setup * //* Cette partie de code est lance * //* une seule fois * //*************************************** void setup() { // Ici insérer vos lignes de Setup, ne se lance qu'une seule fois : } //*************************************** //* Zone de Loop * //* Le code s'exécute indéfiniment * //* en tournant en boucle * //*************************************** void loop() { // Ici insérer le code principal, cette suite d'instructions s'exécutera répétitivement: } |
Une fois que votre sketch est prêt et correct, vous allez le téléverser dans l’Arduino
Pour ce faire, le câble bleu fournit dans le kit devra être connecté d’une part à la prise USB de votre Arduino Nano et de l’autre à une des prises USB de votre ordinateur.
L’action suivante sera de cliquer le bouton « Compilation et téléversement »
L’exercice suivant consistera à faire clignoter une ou plusieurs LED
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
//*************************************** //* * //* Initiation à l'Arduino par l'exemple* //* * //* Par Stievenart Freddy ON6FS * //* Version 1.0 - 23/12/2018 * //* * //*************************************** //* * //* Exercice 1 * //* Allumer et éteindre une LED * //* * //*************************************** const int LED1 = 10; // On assigne à LED1 la valeur 10 correspondant à la broche D10 //const int LED2 = 9; // On assigne à LED2 la valeur 9 correspondant à la broche D9 //const int LED3 = 8; // On assigne à LED3 la valeur 8 correspondant à la broche D8 //*************************************** //* * //* Zone de Setup * //* Cette partie de code est lancée * //* une seule fois * //* * //*************************************** void setup() { pinMode(LED1, OUTPUT); //LED1 devient une broche de sortie //pinMode(LED2, OUTPUT); //LED2 devient une broche de sortie //pinMode(LED3, OUTPUT); //LED3 devient une broche de sortie //Serial.begin(9600); //Initiation du port série USB pour le monitorage } //*************************************** //* * //* Zone de Loop * //* Le code est lancée indéfiniment * //* en tournant en boucle * //* * //*************************************** void loop() { digitalWrite(LED1, HIGH); //Allumer LED1 //Serial.print(" - LED1 : HIGH"); //digitalWrite(LED2, LOW); //Éteindre LED2 //Serial.print(" - LED2 : LOW"); //digitalWrite(LED3, HIGH); //Allumer LED3 //Serial.print(" - LED3 : HIGH"); delay(1000); // Attendre 1 seconde digitalWrite(LED1, LOW); // Éteindre LED1 //Serial.println(" - LED1 : LOW"); //digitalWrite(LED2, HIGH); // Allumer LED2 //Serial.println(" - LED2 : HIGH"); //digitalWrite(LED3, LOW); // Éteindre LED3 //Serial.println(" - LED3 : LOW"); delay(2000); // Attendre 2 seconde } |
Vous aurez remarqué en cette étape qu’une LED s’allume et s’éteint, c’est à dire clignote
Quelques suggestions sur cet exercice
- Phase 2
- Décommentez la ligne 32, afin d’ouvrir le flux
- Décommentez la ligne 45, affiche l’état de la LED
- Décommentez la ligne 52, affiche l’état de la LED
- Visualisez ce qui se passe sur le monitoring.
Pour ce faire allez sur l’onglet « Outils » et cliquez « Moniteur Série »
- Exemple de ce que vous pourriez voir sur la sortie Moniteur
- Phase 3
- Décommentez toutes les autres lignes d’instruction
- Voyez ce qu’il se passe au niveau des LED, ainsi que sur le moniteur
Ce qu’il faut retenir de cette soirée !
- Lorsque vous lancez l’IDE, configurez, dans l’onglet « Outils », la carte, processeur et COM avant la compilation
- Un sketch comporte 3 zones :
- Les constantes et variables
- La zone Setup : ne s’exécute qu’une seule fois
- La zone Loop : S’exécute indéfiniment
- Tout ce qui est précédé de « // » est considéré comme commentaire, par conséquent ne s’exécutera pas
- Les instructions :
- pinMode(N° de pine de sortie, OUTPUT) : on déclare la pin en sortie
- digitalWrite(N° de pine, LOW ou HIGH) : on force la pine à l’état bas ou haut (0 ou proche de 5 V)
- delay(Nbre de mSec) : Temporisation exprimée en mSec
- Serial.begin(Baud Rate) : Ouvre un flux vers la prise USB pour monitoring ou debug
- Serial.print("TEXTE") : Envoie le « TEXTE » dans le flux de la prise USB, juste après le pointeur actuel
- Serial.println("TEXTE") : Envoie le « TEXTE » suivit par retour à la ligne, dans le flux de la prise USB, juste après le pointeur actuel