SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
 
                              	
  




                                     Programmer Arduino
       Ce chapitre présente 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
                                        1


       d'instructions (code source) qui seront directement converties en langage machine grâce à un compilateur
       (c'est la compilation). L'exécution d'un programme Arduino s'effectue de manière séquentielle, c'est-à-dire que
       les instructions sont exécutées les unes à la suite des autres. Voyons plus en détail la structure d'un
       programme écrit en Arduino.


       La structure d'un programme
       Un programme Arduino comporte trois parties :




           1.   la partie déclaration des variables (optionnelle)
           2.   la partie initialisation et configuration des entrées/sorties : la fonction setup ()
           3.   la partie principale qui s'exécute en boucle : la fonction loop ()

       Dans chaque partie d'un programme sont utilisées différentes 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 différentes
       couleurs qui clarifient le statut des différents éléments :

       En orange, apparaissent les mots-clés reconnus par le langage Arduino comme des fonctions existantes.
       Lorsqu'on sélectionne 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 sélectionnée.

       En bleu, apparaissent les mots-clés reconnus par le langage Arduino comme des constantes.

       En gris, apparaissent les commentaires qui ne seront pas exécutés 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
       déclarer un commentaire de deux manières différentes :

           •    dans une ligne de code, tout ce qui se trouve après « // » 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 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.




       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 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



       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 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);
        }

       switch/case : fait un choix entre plusieurs codes parmi une liste de possibilités

       exemple :

       // 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;
            }




       Arduino pour les Kids : Initiation language arduino
 
                             	
  




       Exemple
       L'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" milliseconds
            delay (valeurCapteur) ;
            // éteint la LED
            digitalWrite (brocheLED, LOW) ;
            // delai de «valeurCapteur" milliseconds
            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.	
  




       Arduino pour les Kids : Initiation language arduino

Más contenido relacionado

La actualidad más candente

121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheads121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheadscgodefroy
 
Cours0 presentation carte arduino
Cours0   presentation carte arduinoCours0   presentation carte arduino
Cours0 presentation carte arduinolabsud
 
Decouverte arduino
Decouverte arduinoDecouverte arduino
Decouverte arduinog-p-l
 
Cours5 allumer une led extérieure à la carte arduino
Cours5   allumer une led extérieure à la carte arduinoCours5   allumer une led extérieure à la carte arduino
Cours5 allumer une led extérieure à la carte arduinolabsud
 
Présentation de projet de fin d’études
Présentation de projet de fin d’étudesPrésentation de projet de fin d’études
Présentation de projet de fin d’étudesAimen Hajri
 
Utilisation ardublock-v2 (1)
Utilisation ardublock-v2 (1)Utilisation ardublock-v2 (1)
Utilisation ardublock-v2 (1)Gerard Labernia
 
Ateliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoAteliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoFatima Zahra Fagroud
 
Relais bluetooth - Balance connectée
Relais bluetooth - Balance connectéeRelais bluetooth - Balance connectée
Relais bluetooth - Balance connectéePeronnin Eric
 
Cours4 allumer une led sur la carte arduino
Cours4   allumer une led sur la carte arduinoCours4   allumer une led sur la carte arduino
Cours4 allumer une led sur la carte arduinolabsud
 
Conception et réalisation d'un quadricoptère pour la prise de vue aérienne
Conception et réalisation d'un quadricoptère pour la prise de vue aérienneConception et réalisation d'un quadricoptère pour la prise de vue aérienne
Conception et réalisation d'un quadricoptère pour la prise de vue aérienneSo Fab
 
Carte multifonction 2017
Carte multifonction 2017Carte multifonction 2017
Carte multifonction 2017Peronnin Eric
 
Programmation des pic_en_c_part1
Programmation des pic_en_c_part1Programmation des pic_en_c_part1
Programmation des pic_en_c_part1oussamada
 

La actualidad más candente (20)

OWF13 - arduino ardu block sumo
OWF13 - arduino ardu block sumoOWF13 - arduino ardu block sumo
OWF13 - arduino ardu block sumo
 
121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheads121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheads
 
Les systèmes embarqués arduino
Les systèmes embarqués arduinoLes systèmes embarqués arduino
Les systèmes embarqués arduino
 
Cours0 presentation carte arduino
Cours0   presentation carte arduinoCours0   presentation carte arduino
Cours0 presentation carte arduino
 
Decouverte arduino
Decouverte arduinoDecouverte arduino
Decouverte arduino
 
Microcontroleur
MicrocontroleurMicrocontroleur
Microcontroleur
 
Cours5 allumer une led extérieure à la carte arduino
Cours5   allumer une led extérieure à la carte arduinoCours5   allumer une led extérieure à la carte arduino
Cours5 allumer une led extérieure à la carte arduino
 
Présentation de projet de fin d’études
Présentation de projet de fin d’étudesPrésentation de projet de fin d’études
Présentation de projet de fin d’études
 
Utilisation ardublock-v2 (1)
Utilisation ardublock-v2 (1)Utilisation ardublock-v2 (1)
Utilisation ardublock-v2 (1)
 
Ateliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoAteliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduino
 
Feu tricolore tuto
Feu tricolore tutoFeu tricolore tuto
Feu tricolore tuto
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Relais bluetooth - Balance connectée
Relais bluetooth - Balance connectéeRelais bluetooth - Balance connectée
Relais bluetooth - Balance connectée
 
Cours4 allumer une led sur la carte arduino
Cours4   allumer une led sur la carte arduinoCours4   allumer une led sur la carte arduino
Cours4 allumer une led sur la carte arduino
 
Langage vhdl
Langage vhdlLangage vhdl
Langage vhdl
 
Vhdl bousmah f
Vhdl bousmah fVhdl bousmah f
Vhdl bousmah f
 
Conception et réalisation d'un quadricoptère pour la prise de vue aérienne
Conception et réalisation d'un quadricoptère pour la prise de vue aérienneConception et réalisation d'un quadricoptère pour la prise de vue aérienne
Conception et réalisation d'un quadricoptère pour la prise de vue aérienne
 
Exam IIA5 INSAT 2018
Exam IIA5 INSAT  2018Exam IIA5 INSAT  2018
Exam IIA5 INSAT 2018
 
Carte multifonction 2017
Carte multifonction 2017Carte multifonction 2017
Carte multifonction 2017
 
Programmation des pic_en_c_part1
Programmation des pic_en_c_part1Programmation des pic_en_c_part1
Programmation des pic_en_c_part1
 

Destacado

Cours12 connaître le réglage d'un potentiomètre avec la liaison série
Cours12   connaître le réglage d'un potentiomètre avec la liaison sérieCours12   connaître le réglage d'un potentiomètre avec la liaison série
Cours12 connaître le réglage d'un potentiomètre avec la liaison sérielabsud
 
Cours11 un variateur de lumiere
Cours11   un variateur de lumiereCours11   un variateur de lumiere
Cours11 un variateur de lumierelabsud
 
Cours14 présentation d'un servomoteur
Cours14   présentation d'un servomoteurCours14   présentation d'un servomoteur
Cours14 présentation d'un servomoteurlabsud
 
Cours10 un potentiomètre sur entrée analogique
Cours10   un potentiomètre sur entrée analogiqueCours10   un potentiomètre sur entrée analogique
Cours10 un potentiomètre sur entrée analogiquelabsud
 
Cours7 deux led externes pour faire un jeu de lumière
Cours7   deux led externes pour faire un jeu de lumièreCours7   deux led externes pour faire un jeu de lumière
Cours7 deux led externes pour faire un jeu de lumièrelabsud
 
Cours9 allumer et éteindre une led avec un bouton poussoir
Cours9   allumer et éteindre une led avec un bouton poussoirCours9   allumer et éteindre une led avec un bouton poussoir
Cours9 allumer et éteindre une led avec un bouton poussoirlabsud
 
Cours15 commande d'un servo parpotentiomètre
Cours15   commande d'un servo parpotentiomètreCours15   commande d'un servo parpotentiomètre
Cours15 commande d'un servo parpotentiomètrelabsud
 
Cours13 lire un message sur la liaison série avec un bouton poussoir
Cours13   lire un message sur la liaison série avec un bouton poussoirCours13   lire un message sur la liaison série avec un bouton poussoir
Cours13 lire un message sur la liaison série avec un bouton poussoirlabsud
 
OV7670 Camera interfacing-with-arduino-microcontroller
OV7670 Camera interfacing-with-arduino-microcontrollerOV7670 Camera interfacing-with-arduino-microcontroller
OV7670 Camera interfacing-with-arduino-microcontrollerSomnath Sharma
 
Projet de fin d'etude :Control d’acces par empreintes digitale
Projet de fin d'etude :Control d’acces par empreintes digitaleProjet de fin d'etude :Control d’acces par empreintes digitale
Projet de fin d'etude :Control d’acces par empreintes digitaleAbdo07
 
Slides capteurs partie 1
Slides capteurs partie 1Slides capteurs partie 1
Slides capteurs partie 1zinoha
 
Presentación1cesar
Presentación1cesarPresentación1cesar
Presentación1cesartheterkone
 

Destacado (14)

Cours12 connaître le réglage d'un potentiomètre avec la liaison série
Cours12   connaître le réglage d'un potentiomètre avec la liaison sérieCours12   connaître le réglage d'un potentiomètre avec la liaison série
Cours12 connaître le réglage d'un potentiomètre avec la liaison série
 
Cours11 un variateur de lumiere
Cours11   un variateur de lumiereCours11   un variateur de lumiere
Cours11 un variateur de lumiere
 
Cours14 présentation d'un servomoteur
Cours14   présentation d'un servomoteurCours14   présentation d'un servomoteur
Cours14 présentation d'un servomoteur
 
Cours10 un potentiomètre sur entrée analogique
Cours10   un potentiomètre sur entrée analogiqueCours10   un potentiomètre sur entrée analogique
Cours10 un potentiomètre sur entrée analogique
 
Cours7 deux led externes pour faire un jeu de lumière
Cours7   deux led externes pour faire un jeu de lumièreCours7   deux led externes pour faire un jeu de lumière
Cours7 deux led externes pour faire un jeu de lumière
 
Cours9 allumer et éteindre une led avec un bouton poussoir
Cours9   allumer et éteindre une led avec un bouton poussoirCours9   allumer et éteindre une led avec un bouton poussoir
Cours9 allumer et éteindre une led avec un bouton poussoir
 
Cours15 commande d'un servo parpotentiomètre
Cours15   commande d'un servo parpotentiomètreCours15   commande d'un servo parpotentiomètre
Cours15 commande d'un servo parpotentiomètre
 
Cours13 lire un message sur la liaison série avec un bouton poussoir
Cours13   lire un message sur la liaison série avec un bouton poussoirCours13   lire un message sur la liaison série avec un bouton poussoir
Cours13 lire un message sur la liaison série avec un bouton poussoir
 
OV7670 Camera interfacing-with-arduino-microcontroller
OV7670 Camera interfacing-with-arduino-microcontrollerOV7670 Camera interfacing-with-arduino-microcontroller
OV7670 Camera interfacing-with-arduino-microcontroller
 
Projet de fin d'etude :Control d’acces par empreintes digitale
Projet de fin d'etude :Control d’acces par empreintes digitaleProjet de fin d'etude :Control d’acces par empreintes digitale
Projet de fin d'etude :Control d’acces par empreintes digitale
 
Slides capteurs partie 1
Slides capteurs partie 1Slides capteurs partie 1
Slides capteurs partie 1
 
Excel
ExcelExcel
Excel
 
ROMSWIKIS
ROMSWIKISROMSWIKIS
ROMSWIKIS
 
Presentación1cesar
Presentación1cesarPresentación1cesar
Presentación1cesar
 

Similar a Cours2 initiation language arduino

PPT01_Initiation à l’Arduino.ppt
PPT01_Initiation à l’Arduino.pptPPT01_Initiation à l’Arduino.ppt
PPT01_Initiation à l’Arduino.pptChokri Boussetta
 
Presntation about Arduino pins and for what
Presntation about Arduino pins and for whatPresntation about Arduino pins and for what
Presntation about Arduino pins and for whatMohamedSalimBelkorch
 
Formation Langage c.pptx
Formation Langage c.pptxFormation Langage c.pptx
Formation Langage c.pptxValdy Ngouabira
 
Installation et utilisation de l'extension ts mblock
Installation et utilisation de l'extension ts mblockInstallation et utilisation de l'extension ts mblock
Installation et utilisation de l'extension ts mblockخالد المشكوري
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPfrwebhelp
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Fatima Zahra Fagroud
 
cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptxMED B
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...Pôle Systematic Paris-Region
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++cppfrug
 
Java1_BasesLangage.pdf
Java1_BasesLangage.pdfJava1_BasesLangage.pdf
Java1_BasesLangage.pdfLarbaSAWADOGO2
 
Java1_BasesLangage.pdf
Java1_BasesLangage.pdfJava1_BasesLangage.pdf
Java1_BasesLangage.pdfLarbaSAWADOGO2
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA Asmaa BENGUEDDACH
 
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdfPatiento Del Mar
 
Cours c#
Cours c#Cours c#
Cours c#zan
 

Similar a Cours2 initiation language arduino (20)

PPT01_Initiation à l’Arduino.ppt
PPT01_Initiation à l’Arduino.pptPPT01_Initiation à l’Arduino.ppt
PPT01_Initiation à l’Arduino.ppt
 
Presntation about Arduino pins and for what
Presntation about Arduino pins and for whatPresntation about Arduino pins and for what
Presntation about Arduino pins and for what
 
Formation Langage c.pptx
Formation Langage c.pptxFormation Langage c.pptx
Formation Langage c.pptx
 
Installation et utilisation de l'extension ts mblock
Installation et utilisation de l'extension ts mblockInstallation et utilisation de l'extension ts mblock
Installation et utilisation de l'extension ts mblock
 
Arduino_en_technologie.ppt
Arduino_en_technologie.pptArduino_en_technologie.ppt
Arduino_en_technologie.ppt
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APP
 
Formation python
Formation pythonFormation python
Formation python
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
 
cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptx
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 
Java1_BasesLangage.pdf
Java1_BasesLangage.pdfJava1_BasesLangage.pdf
Java1_BasesLangage.pdf
 
Java1_BasesLangage.pdf
Java1_BasesLangage.pdfJava1_BasesLangage.pdf
Java1_BasesLangage.pdf
 
Introduction a Java
Introduction a JavaIntroduction a Java
Introduction a Java
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf
 
µP
µPµP
µP
 
Cours c#
Cours c#Cours c#
Cours c#
 
T ps dsp
T ps dspT ps dsp
T ps dsp
 
Cours java script
Cours java scriptCours java script
Cours java script
 

Cours2 initiation language arduino

  • 1.     Programmer Arduino Ce chapitre présente 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 1 d'instructions (code source) qui seront directement converties en langage machine grâce à un compilateur (c'est la compilation). L'exécution d'un programme Arduino s'effectue de manière séquentielle, c'est-à-dire que les instructions sont exécutées les unes à la suite des autres. Voyons plus en détail la structure d'un programme écrit en Arduino. La structure d'un programme Un programme Arduino comporte trois parties : 1. la partie déclaration des variables (optionnelle) 2. la partie initialisation et configuration des entrées/sorties : la fonction setup () 3. la partie principale qui s'exécute en boucle : la fonction loop () Dans chaque partie d'un programme sont utilisées différentes instructions issues de la syntaxe du langage Arduino. Arduino pour les Kids : Initiation language arduino
  • 2.     Coloration syntaxique Lorsque du code est écrit dans l'interface de programmation, certains mots apparaissent en différentes couleurs qui clarifient le statut des différents éléments : En orange, apparaissent les mots-clés reconnus par le langage Arduino comme des fonctions existantes. Lorsqu'on sélectionne 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 sélectionnée. En bleu, apparaissent les mots-clés reconnus par le langage Arduino comme des constantes. En gris, apparaissent les commentaires qui ne seront pas exécutés 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 déclarer un commentaire de deux manières différentes : • dans une ligne de code, tout ce qui se trouve après « // » 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 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. Arduino pour les Kids : Initiation language arduino
  • 3.     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 Arduino pour les Kids : Initiation language arduino
  • 4.     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); } switch/case : fait un choix entre plusieurs codes parmi une liste de possibilités exemple : // 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; } Arduino pour les Kids : Initiation language arduino
  • 5.     Exemple L'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" milliseconds delay (valeurCapteur) ; // éteint la LED digitalWrite (brocheLED, LOW) ; // delai de «valeurCapteur" milliseconds 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.   Arduino pour les Kids : Initiation language arduino