Télécharger le document réponse
Cette 5ème partie à pour objectif la mise en oeuvre de la carte Arduino et de capteurs ou actionneurs (moteurs) en utilisant les structures de programmation classiques. |
|
Éléments pris en compte dans la notation :
|
1. Les constantes et les variables :
|
|
Il est possible de déclarer des constantes à un programme.
La syntaxe est la suivante (les éléments entre crochets sont à remplacer par les éléments de votre programme) :
const [type] [nom] = [valeur];
Créer un nouveau fichier "VOTRE_NOM_constante" et reprendre l'exemple du programme "Blink - Blink" en utilisant une constante pour le numéro de la pin de la LED puis tester votre programme.
Compléter les questions 1 à 3 du document réponse. |
|
Il est aussi possible d'utiliser des variables.
L'exemple ci-contre permet de faire varier le temps de clignotement à chaque boucle de programme loop() :
Créer un nouveau fichier "VOTRE_NOM_variable" et reprendre l'exemple précédent en utilisant une variable pour le temps (code le code ci-contre), téléverser et tester.
Compléter les questions 4 à 6 du document réponse. |
|
2. Les boucles :
|
|
La boucle IF -- ELSE permet de vérifier une condition pour choisir entre plusieurs suites d'instructions.
L'exemple décrit dans l'organigramme ci-contre permet d'incrémenter le temps de clignotement jusqu'à 500 ms puis de le fixer.
Le code correspondant à cet organigramme est donné ci-dessous :
Créer un nouveau fichier "VOTRE_NOM_boucle_IF", et coder l'exemple ci-dessus (ne pas oublier la déclaration des variables et la fonction setup). Téléverser et tester.
Compléter la question 7 du document réponse.
|
|
A propos des tests pouvant être effectués, on remarque que le test d'égalité est réalisé avec un double "=" (==).
Le simple "=" permet d'affecter une valeur à une variable.
|
|
La boucle WHILE permet de répéter une suite d'instructions en boucle tant qu'une condition est vérifiée. Lorsque la condition n'est plus vraie, le programme sort de la boiucle.
L'exemple décrit dans l'organigramme ci-contre permet d'incrémenter le temps de clignotement jusqu'à 500 ms puis de le réinitialiser à 50 ms.
Le code correspondant à cet organigramme est donné ci-dessous :
Créer un nouveau fichier "VOTRE_NOM_boucle_WHILE" , et coder l'exemple ci-dessus (ne pas oublier la déclaration des variables et la fonction setup). Téléverser et tester.
Compléter la question 8 du document réponse. |
|
3. Communication PC <-> ARDUINO : le moniteur série
|
|
L'IDE permet de faire communiquer en temps réel la carte Arduino et le PC sur lequel la carte est branchée en USB.
Cet utilitaire est appelé "Moniteur Série" :
|
|
|
|
Compléter les questions 9 et 10 du document réponse.
L'exemple ci-dessous permet d'allumer ou d'éteindre la LED 13 avec le clavier de l'ordinateur, et de rendre compte de l'état de la LED :
|
|
|
|
Fonction setup() :
|
|
Fonction loop() : |
|
|
|
|
|
|
|
|
|
|
|
Fin de la fonction loop(). |
|
Relever dans la table ASCII et consigner dans le document réponse (question 11) les 2 codes dont nous avons besoin pour le programme ci-dessus.Créer un nouveau fichier "VOTRE_NOM_moniteur_serie_1" , et coder l'exemple ci-dessus. Téléverser et tester.
Compléter les questiosn 12 à 15 du document réponse.
Application : On veut réaliser un programme permettant :
Compléter la question 16 du document réponse.
Créer un nouveau fichier "VOTRE_NOM_moniteur_serie_2" , et coder le programme. Téléverser et tester.
Appeler votre professeur pour vérification.
|
|
4. Utilisation d'un capteur analogique - La résistance photoélectrique (LDR)
|
|
La résistance photoélectrique ou LDR (light dependent resistor) peut être utilisée comme un capteur lumière. En effet sa résistance varie en fonction de la lumlinosité.
Montée en pont avec une autre résistance fixe, elle permet de convertir une variation d'intensité lumineuse en variation de tension.
Cette variation de tension est analogique (variation progressive en 0 et 5V). Il faut donc utiliser une entrée analogique (A0 à A5) de la carte Arduino enfin d'exploiter ce capteur. |
|
A l'aide de Tinkercad, réaliser le montage ci-contre : |
|
Dans l'éditeur de code de Tinkercad, coder le programme ci-contre :
|
|
Compléter les questions 17 à 22 du document réponse.
Dans Tinkercad, réaliser les actions suivantes :
Appeler votre professeur pour vérification. Compléter la question 23 du document réponse.
|
|
Attention : le câblage doit s'effectuer avec la carte Arduino DEBRANCHEE !!
Réaliser le montage de la LDR (simulé précédamment) à l'aide de la breadboard.
Créer un nouveau fichier "VOTRE_NOM_LDR" , et coder le programme précédamment simulé.
Avant le branchement du câble USB, appeler votre professeur pour vérification.
Téléverser et tester.
Appeler votre professeur pour vérification.
Compléter la question 24 du document réponse. |
|
Il est possible de tracer la courbe de la valeur affichée sur le moniteur série. Pour cela, activer le traceur série : |
|
5. Faire bouger des choses avec ARDUINO : le servomoteur
|
|
Un servomoteur est un système permettant de mettre en rotation un objet. Il est constitué des éléments suivants :
Comparé à un simple moteur, le servomoteur est capable de :
Remarque : Les servomoteurs utilisés dans cette activité sont commandé directement en angle en degrès (0 à 180°). |
|
Attention : le câblage doit s'effectuer avec la carte Arduino DEBRANCHEE !!
Réaliser le câblage ci-contre :
Appeler votre professeur pour vérification. |
|
Ci-contre le code permettant d'amener le palonnier à un angle défini par l'utilisateur dans le moniteur série.
Créer un nouveau fichier "VOTRE_NOM_servo" , et coder le programme ci-contre :
Téléverser et tester.
Appeler votre professeur pour vérification.
Compléter les questiosn xx du document réponse. |
|