Vous êtes sur la page 1sur 22

04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.

html

Activité 5 : Programmation :

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 :

Autonomie/Comportement

Qualité de la production (programmes, documents réponses)

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


const : appelle la fonction de déclaration de la constante
type : déclare le type de donnée. Dans la plupart des cas, on
remplacera par "int" qui veut dire "integer" (entier entre -32768 et
32767).
nom : déclare le nom de la constante
valeur : valeur d'initialisation

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.

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 1/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 2/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

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.

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 3/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 4/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

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.

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 5/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 6/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

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 :

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 7/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

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.

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 8/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

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

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 9/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 10/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

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 :

Déclaration de la constante pinLED.


Déclaration de la variable "valeur" qui va stocker le code ASCII de
la touche du clavier du PC.

Fonction setup() :

Serial.begin(9600) : Démarrage de la liaison série à une vitesse


de 9600 bauds (bits/secondes)
Serial.println("...") : Affichage d'un message sur le moniteur
série (ln = retour à la ligne).

Fonction loop() :

Blocage du programme tant que rien n'est envoyé depuis le PC.


Dans ce cas la fonction Serial.available() renvoie "0".

Dès qu'un message arrive sur le port, Serial.available() ne


renvoie plus "0". Dans ce cas, on stocke le code ascii de la touche
tapée contenu dans la fonction Serial.read() dans la variable
"valeur".

Si le code ascii contenu dans la variable "valeur" est celui du


caractère "1", on allume la LED et on envoie le message
correspondant.

OU Si le code ascii contenu dans la variable "valeur" est celui du


caractère "0", on éteint la LED et on envoie le message

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 11/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html
correspondant.

Dans tous les autres cas, on affiche le message "Erreur".

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 :


D'allumer une LED lors de l'appui sur 1 (et d'envoyer le message LED allumée)
D'éteindre la LED lors de l'appui sur 0 (et d'envoyer le message LED éteinte)
De faire clignoter à 500 ms d'intervalle lors de l'appui sur 2 (et d'envoyer le message "clignotement").
D'envoyer le message "Erreur" pour tout autre touche

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.

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 12/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

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 :

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 13/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

Dans l'éditeur de code de Tinkercad, coder le programme ci-contre :

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 14/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

Compléter les questions 17 à 22 du document réponse.

Dans Tinkercad, réaliser les actions suivantes :


1 : Cliquer sur "Code Editor"
2 : Cliquer sur "Start Simulation"
3 : Cliquer sur "Serial Monitor" pour afficher le moniteur série
4 : Clqiuer sur la LDR
5 : Faire varier l'intensité lumineuse que recoit la LDR avec le slider.

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 15/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

Appeler votre professeur pour vérification.

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 16/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html
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 :

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 17/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

5. Faire bouger des choses avec ARDUINO : le servomoteur

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 18/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

Un servomoteur est un système permettant de mettre en rotation un


objet.
Il est constitué des éléments suivants :
Un moteur électrique, qui fournit un mouvement d'entrée
Un réducteur, qui ralenti la vitesse de rotation et augmente la
"force" du moteur (on parle du couple).
Un palonnier, sur lequel on récupère le mouvement du
servomoteur
Un potentiomètre associé à de l'électronique, qui permet de
déterminer l'angle parcouru par le palonnier.

Comparé à un simple moteur, le servomoteur est capable de :


Se positionner à un angle précis
Maintenir cette position, même si un effort est exefcé sur le
palonnier.

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 !!
www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 19/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

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.

1 : La bibliothèque <Servo.h> est appelée via la commande


#include. Cela permet d'inclure au programme les fonctions
prédéfinies pour les servomoteurs.

2 : On définit un Servo "monservo".

3 : La fonction Serial.parseInt() permet de récupérer la valeur


numérique et non le code ASCII du contenu du port série.

4 : Afin de commander le servo, on utilise la commande


"monservo.write()".

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.

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 20/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 21/22
04/12/2023 22:37 lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html

Précédent Suite

www.lycee-ferry-versailles.fr/ee-tsi/12_arduino/html/p5.html 22/22

Vous aimerez peut-être aussi