TP Programmation Arduino
Présentation
Méthode
La méthode utilisée dans ce TP est celle de la Rétro-Ingénierie .
Couplée à un apprentissage par l'exemple.
Ressources
Il y a beaucoup de ressources intéressantes sur internet à vous de ls découvrir.
Mais pour débuter le point d'entrée intéressant est celui de l'IDE:
Accéder à l'aide et aux
fonctionnalités de
référence
Travail à faire
Vous partirez des exemples de programmes fournis avec l'IDE.
Commencez par AnalogReadSerial et Blink (cf ci-dessous) puis enchainez en choisissant vous-
mêmes vos exemples.
a. Expérimentation
Exécuter le programme
1
b. Analyse
Analyse du programme par explication du rôle des variables, des constantes et des fonctions.
Appuyez vous sur vos recherches personnelles (internet) .
c. Evolution
Partir de cette base pour proposer une évolution et la mettre en œuvre.
Faire un compte rendu de toutes ces étapes en n'oubliant pas de citer vos sources
Vous déposerez en fin de séance un compte rendu individuel.
Découverte
Le microcontrôleur
Le microcontrôleur va recevoir le programme que nous allons
créer et va le stocker dans sa mémoire avant de l'exécuter.
La connectique
La carte Arduino ne possède par défaut qu'un seul composants utilisables par un programme une
diode présente sur la broche 13. Il est alors nécessaire de les ajouter en les connectant à la carte en
utilisant les broches (pins en anglais).
Ces broches permettent de connecter des cartes d'extension appelées shields par empilement.
Exploration des broches Arduino
0 à 13 Entrées/sorties numériques: 2 valeurs possibles: 0 ou 1, LOW ou HiGH. Ces broches peuvent
être utilisées en entrées (INPUT) ou en sortie (OUTPUT).
A0 à A5: 6 Entrées analogiques ; Ces entrées sont reliées à un convertisseur analogique/numérique
qui convertit une tension électrique en un code numérique sur 10 bits .Il s'agit donc d'une valeur
comprise entre 0 et 1023. 0V correspond à la valeur numérique 0 et 5V correspond à la 1023.
2
Les 13
entrées/sorties
numériques.
Les 3, 5, 6, 9, 10
et 11
Les 6 entrées
analogiques
GND Terre ou masse (0 V) ;
5 V Alimentation +5 V ;
3.3 V Alimentation +3.3 V ;
Vin Alimentation non stabilisée (= le même voltage que celui à l'entrée de la carte).
Le logiciel Arduino IDE
3
Ressources
Il existe de nombreuses ressources Arduino sur Internet, la communauté des utilisateurs est très
vaste et très dynamique. Pour tirer le maximum de cette initiation, n'hésitez pas à consulter un
maximum de ressources. Vous pourrez constituer une webographie que vous jondrez à votre
compte-rendu.
[Link]
Configurer
Il faut configurer l'IDE pour qu'il puisse communiquer avec la carte.
La carte
Dans le menu outils
Le port série
Dans le même menu, configurer le port série en COM3.
Exemple1: Le programme
AnalogReadSerial
4
1. Tester le programme
• Connecter le potentiomètre sur A0
Image
Potentiomètre
A0
5
• Téléverser le programme dans la mémoire du micro-controleur.
En entrée, faites varier le potentiomètre connecté en A0, la valeur est lue et est ensuite affichée
dans le terminal Série:
Dans le moniteur série s'affichent les valeurs. Faire varier le potentiomètre pour voir ces valeurs
changer.
On peut aussi les visualiser sur le traceur:
6
Plus d'informations sur le traceur série : ici
Vous savez maintenant comment lire une entrée analogique (potentiomètre) et comment
afficher la valeur lue sur le terminal ou dans le traceur.
2. Analyse du programme.
Expliquer les fonctions et les variables utilisées. Vous pouvez vous aider du menu [Aide]-[Reference]
[Link] (9600)
analogRead
[Link]
delay
3. Proposer une amélioration.
Voici un exemple de variante:
En plus de la valeur lue, afficher le n° de cycle. Il faut pour cela ajouter un compteur (variable
entière globale).
7
Passons à l'exemple du programme Blink qui permet de faire clignoter une led.
Exemple2: Le programme Blink
8
1. Tester le programme
A quelle broche correspond LED_BUILTIN ?
Connectez une led sur cette broche.
Téléverser le programme dans la mémoire du micro-controleur.
Le programme est alors compilé et téléversé. Si tout se passe bien, vous devez voir la led clignoter
sur la carte.
2. Analyser le code
9
• Expliquer :
o LED_BUILTIN
o OUTPUT
o HIGH
o LOW
o pinMode
o digitalWrite
o delay
3. Proposer une amélioration.
Par exemple faire varier aléatoirement le délai entre deux allumages.
Cet exemple permet de voir comment utiliser des valeurs aléatoires.
Explication:
10
randNumber :Un nombre aléatoire entre 1 et 10 déterminé à chaque tour de boucle.
Cette valeur est affichée dans le moniteur série par l'instruction [Link](randNumber .
Ne pas oublier, l'initialisation du moniteur série dans la fonction setup: [Link](9600) . 9600 est
la vitesse de transmission en nombre de bits/seconde.
Pour visualiser le moniteur Série:
On voit ainsi s'afficher successivement les valeurs du nombre aléatoire.
On peut aussi faire varier le délai en utilisant le potentiomètre ……
La valeur lue par le potentiomètre est obtenue par AnalogRead (cf 1er exemple).
Exemple 3: Fade
11
Cet exemple utilise la fonction PWM1 de certaines broches de la carte (ici la 9).
1. Exécutez
2. Analysez:
1
Faites une petite recherche personnelle pour comprendre de quoi il s'agit.
12
Expliquez en particulier les lignes:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
3. Proposez une variante
Exemple4:
ForLoopIteration
Cet exemple permet de travailler sur plusieurs leds.
Utilisez les relais, ils contiennent des leds.
13
4. Exécutez
5. Analysez
6. Proposez une variante
14