Page 69 - arduino_Neat
P. 69

pinMode(pinLed3, OUTPUT);

            Boucle principale
            Le cœur du code de pilotage des LED se trouve dans la boucle principale ; les instructions qui
            s'y trouvent s'exécuteront aussi longtemps que la carte sera connectée à l'ordinateur.
            C'est dans cette partie que la lecture du caractère saisi et la correspondance avec l'instruction
            d'allumage et extinction des LED sont définies.

            Puisque c'est à partir du clavier que le pilotage s'effectue, le programme est toujours en
            attente de saisie d'un caractère ; les instructions de pilotage sont donc contenues dans la
            structure :

            if (Serial.available () > 0) {
            ...
            ...
            }
            Lorsque le moniteur sériel ou tout autre programme envoie une information sérielle à la carte
            Arduino, la donnée est stockée en mémoire par le port sériel de l'Arduino, et elle y demeurera
            jusqu'à ce qu'elle soit lue par la fonction Serial.read(). D'autre part, la fonction Serial.available()
            retourne une valeur correspondant au nombre de données qui sont contenues dans le port. Si
            elle est plus grande que 0, cela signifie qu'il y a au moins une donnée présente dans le port (et
            qu'il faut donc aller la lire).
            La structure précédente vérifie donc tout au long de l'exécution du programme s'il y a une
            donnée sérielle reçue par l'Arduino qui est en attente d'être lue ; si c'est le cas, le programme
            la lit.

                Lecture du caractère saisi :
            La lecture du caractère se fait avec l'instruction Serial.read().
             octetRecu = Serial.read () ;
            La donnée lue est ensuite stockée dans la variable octetRecu et retirée de la mémoire du port
            sériel de l'Arduino.
                Allumage et extinction des LED
            La valeur de la variable est ensuite analysée dans le but d'effectuer la correspondance entre le
            caractère saisi et la LED appropriée comme indiqué dans le principe de fonctionnement. Dans le
            reste du code, les commentaires à la fin de chaque ligne expliquent les instructions.
            if (octetRecu =='R'|| octetRecu =='r') { //Si l'octet reçu est égal à R ou r
                digitalWrite (pinLed0,  HIGH) ; //Allumer la LED connectée à pinLed0
                Serial.println ("LED Rouge allumée") ; //Afficher «LED Rouge allumée" dans le moniteur
            série
            }
            if (octetRecu =='J'|| octetRecu =='j') { //Si l'octet reçu est égal à J ou j
                digitalWrite (pinLed1,  HIGH) ; //Allumer la LED connectée à pinLed1
                Serial.println ("LED Jaune allumée") ; //Afficher «LED Jaune allumée" dans le moniteur
            série
            }
            if (octetRecu =='V'|| octetRecu =='v') { //Si l'octet recu est égal à V ou v
                digitalWrite (pinLed2,  HIGH) ; //Allumer la LED connectée à pinLed2
                Serial.println ("LED Verte allumée") ; //Afficher «LED Verte allumée" dans le moniteur
            série
            }
            if (octetRecu =='B'|| octetRecu =='b') { //Si l'octet reçu est égal à B ou b
                digitalWrite (pinLed3,  HIGH) ; //Allumer la LED connectée à pinLed3
                Serial.println ("LED Bleue allumée") ; //Afficher «LED Bleue allumée" dans le moniteur
            série
            }
            if (octetRecu =='E'|| octetRecu =='e') { //Si l'octet reçu est égal à E ou e
                //Eteindre les LED connectées aux pinLed0,  pinLed1,  pinLed2 et pinLed3
                digitalWrite (pinLed0,  LOW) ;
                digitalWrite (pinLed1,  LOW) ;
                digitalWrite (pinLed2,  LOW) ;
                digitalWrite (pinLed3,  LOW) ;
                                                                                    69
   64   65   66   67   68   69   70   71   72   73   74