Page 103 - arduino_Neat
P. 103

23. DÉBUGGER



            La réalisation de projets avec Arduino comporte une grande part d'essais et d'erreurs. Que ce
            soit pour la partie électronique ou pour la programmation, il est fréquent pour les débutants,
            mais aussi pour les plus avancés, de faire des erreurs. Or, alors que celles-ci sont parfois très
            faciles à détecter, elles sont plus souvent « cachées » et demandent à être découvertes. Voilà
            pourquoi une bonne pratique de la programmation et de la conception de circuits est de mise
            (voir chapitres « Précautions d'utilisation » et « Bien structurer son code »).

            En programmation

            Lorsqu'un problème survient ou que les choses ne se déroulent pas comme attendu, il est
            important d'identifier le problème en utilisant une approche méthodique et logique. Pour les
            problèmes de programmation, une pratique courante est de valider les différentes parties de
            code séparément, pour identifier la ou les parties du code qui occasionnent une anomalie. Pour
            ce faire, il est facile de mettre sous commentaire des sections complètes d'instructions en
            utilisant /* et */. Ensuite, il est important de prendre connaissance de l'état de nos variables,
            capteurs et autres. Utiliser la fonction Serial.println () pour faire afficher dans le moniteur sériel
            nos valeurs est très utile, et peut-être combiné avec des caractères nous indiquant où le
            Arduino se trouve dans le code. Par exemple le code suivant :

            int valeurCapteur = 0;
            void setup()
            {
                Serial.begin(9600);
            }
            void loop()
            {
                // afficher qu'on lit le capteur
                Serial.print("lire capteur : ");
                // lire capteur et afficher
                valeurCapteur = analogRead(3);
                Serial.println(valeurCapteur);
                // vérifier si capteur est égal à 5
                if (valeurCapteur=5) {
                    Serial.println("test réussi!");
                }
                delay(1000);
            }
            Ce programme devrait imprimer « test réussi » si la valeur du capteur est à 5.

            L'utilisation d'un Serial.print() avec du texte (« lire capteur : ») nous permet de précéder
            l'affichage de la valeur du capteur par un élément indiquant au niveau de la console à quoi
            correspond le chiffre qui sera affiché. Remarquez le fait que nous utilisons Serial.print() pour
            afficher le texte et rester sur la même ligne d'affichage, puis le Serial.println() pour afficher la
            valeur et ensuite changer de ligne.
            Notre programme comporte également un délai d'une seconde. Ceci nous donne le temps de
            voir les informations affichées au moniteur. Autrement, les chiffres défileraient trop
            rapidement. Attention ! En ajoutant des délais, il est aussi possible de perdre la bonne
            exécution du programme dans son temps. Par exemple, des capteurs qui fournissent une
            réponse rapide (l'impact avec un piézo, par exemple) fournissent une information qui se
            déroule dans un très cours laps de temps. Ainsi, pendant que le programme attend avec
            delay(), il est possible que l'événement que nous cherchons à observer se soit déjà déroulé !










                                                                                    103
   98   99   100   101   102   103   104   105   106   107   108