Vous êtes sur la page 1sur 35

HARMONISATION

Introduction Arduino
Contenu :
• Introduction
• Hardware :
– La carte
– Les capteurs
– Les Actionneurs et préactionneurs
• Software :
– Logiciel Arduino : Méthodes setup et loop
– Variables / Constantes
– Commandes
– Structures de contrôle
• Exercices
Introduction
➔ Arduino est une marque d’électronique
◆ Elle fabrique des composants (hardware) mais aussi
un logiciel (software)
➔ Une carte arduino est un micro-ordinateur capable de
recevoir des informations (capteurs, boutons), d’en
envoyer (écran) ou de contrôler des composants
(moteurs)
Sorties
Entrées La carte envoie des informations
La carte reçoit des
informations

Bouton Ecran
La carte reçoit l’information si le bouton La carte envoie du texte à afficher
est enfoncé ou non

Capteur de température
La carte reçoit une valeur de température Moteur
du capteur La carte envoie l’ordre au moteur de
s’allumer
➔ Mais la carte ne décide pas seul ce qu’elle doit faire :
◆ Par exemple : recevoir une température ou allumer un
moteur
➔ La carte possède un cerveau (microcontrôleur)
➔ Mais ce cerveau est vide de base
➔ Il faut le remplir : c’est là qu’on programme la carte
Capteur de température Moteur pour ventilateur

Exemple : La carte doit allumer le ventilateur si la température est supérieur à 35°C

1) Lui dire qu’elle peut utiliser un capteur de température et


Alors on doit écrire dans le un moteur
cerveau de la carte 2) Demander au capteur la température qu’il mesure
(programmer) : 3) Regarder si cette température est supérieure à 35°C
4) Si elle l’est, allumer le moteur. Sinon ne rien faire
Utilisations
• Arduino est majoritairement utilisé dans les écoles et
universités car elle permet de découvrir l’électronique
• On peut réaliser des petits robots, des systèmes mécaniques
Hardware
➔ En français “Objets durs”
➔ Matériel physique sur lequel on peut utiliser des programmes
ou logiciels
➔ Exemple : Votre téléphone

Hardware Software
Alimentation électrique et connexion USB à

La Carte l’ordinateur USB Différents composants


électroniques qui composent
le cerveau de la carte.
Notamment le
microcontrôleur.

Modèle Arduino Uno

Pin permettant de recevoir ou


Pin (emplacement pour insérer un câble)
d’envoyer des informations
permettant l’alimentation d’autres
binaires (1 ou 0)
composants (capteurs) ou de la carte elle-
Exemples :

Microcontrôleur
même
Un bouton ⇒ 1 si il est
enfoncé et 0 si il ne l’est pas
Un motor ⇒ 1 pour l’allumer
et 2 pour l’éteindre
Pin permettant de recevoir des informations
analogiques. C’est à dire des nombres
décimaux qui sont en réalité une tension de 0
à 5V
Ils permettent de transformer une phénomène physique (mouvement,
Les capteurs température, lumière…) en un signal compréhensible par la carte. Il y a
2 types principaux :

Les Capteurs TOR Les Capteurs analogiques


1
Des capteurs qui fournissent un Des capteurs qui fournissent une
signal binaire ( avec 2 état ⇒ 0 ou 1) 0 valeur numérique

Capteur Infrarouge Détecte un


obstacle ou pas Détecteur fin de course Capteur de température Capteur de vitesse
Fournit une valeur de température Fournit une valeur de vitesse de rotation
Détecte si, par exemple, un portail est fermé
ou pas

Capteur de son
Capteur de tension Détecte un
Capteur d'ultrason Fournit une valeur de l’intensité du son
tension ou pas
La différence sera vue
Les actionneurs et Un actionneur est un composant qui créer une action (tourner, avancé, allumer..). Le
préactionneurs préactionneur est un composant pour aider l’Arduino à commander certains composan

Les actionneurs Les préactionneurs


Intermédiaire pour contrôler l’actionneur.
La carte envoie la commande, l’actionneur
la puissance. Pas besoin pour tous les
actionneurs.

Vérins
Mouvement de
translation

Moteurs
Mouvement de
rotation
Autre : LED, Buzzer
Hardware : résumé

Voir Réfléchir Agir

Les capteurs Les cartes Les actionneurs


SoftWare
● Le software désigne la logique qui fait agir un composant (ou matériel) informatique.
● Pour écrire cette logique il faut un langage de programmation dont le rôle est de définir les instructions
de base et la manière de les agencer en respectant tant la syntaxe que la sémantique.
● Pour exécuter les instructions écrites dans un langage de programmation il faut un compilateur qui devra
jouer le rôle d’interprète entre celles-ci et le composant concerné en traduisant sous-forme de 0 et 1 ces
instructions.
Logiciel Arduino
● C’est une plate-forme de développement
et de prototypage Open Source (source
libre). Il facilite l'écriture du code et son
téléversement sur la carte Arduino.
● Le logiciel peut être téléchargé
gratuitement au lien suivant:
https://www.arduino.cc/en/software

● Le rôle de la carte Arduino est de stocker


le programme et de le faire fonctionner
une fois téléversé.
Fenêtre de démarrage du logiciel Arduino
Logiciel Arduino : Méthodes “setup” et “loop”
● Une fois votre logiciel Arduino installé et lancé,
vous serez devant une fenêtre semblable à celle
de droite.
1. Remarquez la présence des instructions:

void loop(){
void setup(){ et
}
}
● Ce sont des instructions de base, obligatoires et
très importantes pour l’exécution de vos
instructions Arduino. Elles sont connues en tant
que fonction ou procédure.
● setup permet de définir les valeurs initiales et
nécessaires au déroulement de votre
programme, elle ne s’exécute qu’une seule fois. Editeur de texte du logiciel Arduino
Logiciel Arduino : Méthodes “setup” et “loop” (suite)
● loop permet de définir les instructions qui vont
commencer à tourner en boucle pour faire
fonctionner votre carte Arduino et tous les
composants y attachés.
● Comme son nom l’indique (loop=> répéter), elle
s’exécute en boucle, de façon répétitive.
● En situation normale, vous définissez, en plus de
setup et loop, vos propres fonctions ou
procédures, soit à l’intérieur de votre fichier
source soit à l’extérieur dans un autre fichier à
référencer éventuellement.
Editeur de texte du logiciel Arduino
Logiciel Arduino : Méthodes “setup” et “loop” (suite)

● Exercice pratique: Écrire un programme


qui permet d’allumer (pour une
seconde) et d’éteindre (pour une
seconde aussi) une LED.
● Comme indiqué dans la capture d’écran
à droite, vous trouverez une série
d’exemples de code pour différents
types d’applications.
● Notre exercice est résolu dans
l’exemple nommé Blink. Exemples des programmes écrits et exécutables sous le logiciel
Arduino
Logiciel Arduino : Méthodes “setup” et “loop” (suite)
● La capture d’écran ci-contre présente le code
source Arduino pouvant produire le résultat de
notre question de l’exercice précédent.
● Dans la partie setup on utilise l’instruction
pinMode pour définir le pin à considérer (celui sur
lequel est enfichée la LED) et on précise à travers
la constante OUTPUT que les commandes sortent
de la carte Arduino vers la LED.
● Dans la partie loop on utilise l’instruction
digitalWrite pour envoyer des signaux vers la LED.
La constante HIGH envoie 1 et LOW envoie 0 pour
signifier la présence/absence du courant.
● L’instruction delay permet de passer en argument
Exemples des programmes écrits et exécutables sous le logiciel
la durée (en millisecondes) de décalage de Arduino
l’exécution de l’instruction suivante.
Programmation Arduino : Variables et constantes (suite)
● En programmation informatique, une variable est un espace
mémoire réservé en vue d’un stockage-récupération éventuel
● Arduino étant une version modifiée du langage C (et C++), les
notions de variables et constantes sont comprises de la même
manière
● Par exemple, l’instruction “ int nombre1;” indique une
“déclaration d’une variable” dont le nom est nombre1 et qui ne
va contenir que des nombres entiers. Considérez les variables comme les
● On peut stocker la valeur 50 dans notre nombre1 en faisant conteneurs (bouteille, verre, etc.) et la valeur
comme le contenu (eau, jus, etc.)
l’instruction “ nombre1=50;” Cette opération s’appelle
“Affectation de valeur à une variable” en programmation.
● Les valeurs d’une variable peuvent changer au cours de NB: A chaque type de contenu, son
type de conteneur!
l’exécution du programme. Pour changer la valeur de notre
nombre en 100 on fera simplement “nombre1=100;” et la A chaque type de valeur, son type
dernière valeur sera désormais utilisée au détriment de la de variable!
première.
Programmation Arduino : Variables et constantes (suite) (suite)
Les Constantes
Quelques règles à retenir
● La différence entre les variables et les
❖ Le nom d’une variable doit être unique dans constantes réside sur le fait que les
notre programme, deux variables ne devront constantes ne changent pas leurs valeurs au
pas avoir un même nom cours de l’exécution de votre programme
❖ Le nom d’une variable doit commencer par une ● La déclaration d’une constante se fait
lettre alphabétique (ou la barre de huit ( _ )) obligatoirement ensemble avec l’affectation
❖ Le nom d’une variable ne doit pas contenir de de sa valeur et est précédée du mot-clé
caractères spéciaux (comme @,#,$,%,^,&,*,-,!, const. Ex: const float PI = 3.14 ;
etc). Ainsi la variable “nombrePremier” est
valide et “nombre Premier” ne l’est pas car ❏ Les variables et les constantes ont
contenant un espace toutes un type de données
❖ Le nom d’une variable ne doit pas être un mot ❏ Les types disponibles sont en autres:
réservé en langage C int pour les entiers naturels, long pour
les entiers longs, double et float pour
les nombres décimaux, etc.
Programmation Arduino : Les commandes (suite)
❖ Arduino a un bon nombre de commandes ou
instructions de base qui lui sont propres
❖ Un coup d’oeil sur le petit programme ci-contre
nous aide à découvrir certaines
❖ La deuxième ligne n’est qu’une déclaration d’un
pushButton qui représente le numéro de la broche
à considérer sur la carte.
❖ Serial.begin(9600) à la première ligne après setup()
permet de définir la vitesse de transfert des bits qui
est ici de 9600 bits par seconde.
❖ pinMode permet de préciser ici le type d’usage
qu’on veut faire de la broche 2 (valeur de notre
Pour plus de détails sur les différentes commandes
disponibles et bien plus encore, rendez-vous au lien variable pushButton), INPUT signifie qu’on lit en
suivant: entrée, cad qu’on ramène les signaux du bouton
vers la carte.
https://arduino.developpez.com/tutoriels/cours-complet-arduino/?page=programmer-arduino
Programmation Arduino : Structures de contrôle(suite)
❖ En programmation, les structures de contrôles désignent toute instruction de bloc qui
permet de contrôler le déroulement de votre programme
❖ Elles sont réparties en deux:
➢ Les structures de décisions/choix
➢ Les structures répétitives / boucles

Si condition vraie, alors faire


l’action
Tant que condition vraie, faire l’action, jusqu’à ce que
Ex: Si nombre1>5 alors condition soit fausse.
nombre1 est grand
Ex: Tant qu’il n’est pas 12h on ne quitte pas l’école
(jusqu’à ce qu’il sera 12h)
Programmation Arduino : Structures de contrôle(suite)
❖ Pour exprimer une condition, Arduino utilise les instructions ‘if’, ‘if...else’, ‘if...else if...else’
❖ Première forme (Si)
❖ Troisième forme (Si...Sinon Si...Sinon)

❖ Deuxième forme (Si...Sinon)


Programmation Arduino : Structures de contrôle(suite)
❖ Pour exprimer une condition, Arduino utilise les instructions ‘if’, ‘if...else’, ‘if...else if...else’
❖ Exemple 1 (Si)
❖ Exemple 3 (Si...Sinon Si...Sinon)

❖ Exemple 2 (Si...Sinon)
Programmation Arduino : Structures de contrôle(suite)
❖ Pour faire des itérations, Arduino utilise les boucles ‘while’, ‘for’, ‘do...while’
❖ while (Tant que) ❖ for (Pour )
Programmation Arduino : Structures de contrôle(suite)
❖ Pour faire un choix parmi tant d’autres Arduino utilise ‘switch...case’
Exercice 1 : Faire clignoter une Led externe
Déclarer la variable “led”, la déclarer
Carte Arduino
qu’elle est sur le pin 2

Dire que la led est une sortie


(OUTPUT)

Allumer la led (mettre à HIGH ⇒


LED 1)
Attendre 1000 millisecondes (= 1
Bread board Résistance
seconde)
Eteindre la led (mettre à LOW ⇒
0)
Attendre 1000 millisecondes (= 1
Le câblage Le code seconde)

On a ajouté une résistance avant la


led pour la protéger. Le fil rouge
est relié au pin et le fil noir à la
borne GND
Reproduisez cet exercice !!
Exercice 2 : Récupérer une valeur d’un capteur infrarouge

Déclarer la variable “capteur”, déclarer que le capteur est sur le pin 2


Déclarer la variable “variablecapteur”, c’est la valeur qu’on va lire du
capteur (à 0 au début)

Serial begin pour commencer


Déclarer le capteur comme une entrée (INPUT)

Appliquer dans la variable


“valeurcapteur” la valeur qui est lu
dans le capteur

Afficher (print) si l’objet est non


détecté (1) ou si il est détecté (0)

Capteur infrarouge
Attendre 2000 millisecondes (= 2
Le code secondes) avant la prochaine
Le câblage mesure
On a ajouté une résistance avant la
led pour la protéger. Le fil rouge
est relié au pin et le fil noir à la
Reproduisez cet exercice !!
borne GND
Exercice 3 : Allumer un moteur (dans les 2 sens)
Aide pour la commande du driver :

Pour commander un moteur, un driver doit avoir 3


liaisons avec la carte Arduino (si on veut commander 2
Moteur moteurs il faut alors 6 liaisons).
Pour un moteur, ces 3 liaisons sont :

● EN_A : c’est sur cette liaison qu’on va


commander la puissance du moteur (et
donc sa vitesse de rotation). On peut
contrôler sa vitesse de 0 à 255. Plus on
mettre un grand nombre, plus la puissance
et donc la vitesse seront élevée
● IN1 & IN2 : Ces 2 liaisons permettent de
contrôler le sens de rotation ou l’arrêt du
Driver moteur. Ce sont des liaisons binaires : c’est
à dire qu’on envoie des 0 ou 1.
○ Par exemple si :
■ IN1 = 1
■ IN2 = 0
○ Le moteur tourne dans un sens
○ Ou si
■ IN1 = 0
■ IN2 = 1
○ Le moteur tourne dans l’autre
Ces 2 fils
sens
correspondent aux
○ Ou si
fils des piles qu’il
■ IN1 = 0
faut relier au
■ IN2 = 0
driver
○ Le moteur s’arrête

Si on installe un deuxième moteur. Ce sera le même


principe mais avec EN_B, IN3 et IN4

Le câblage
Reproduisez cet exercice !!
Exercice 3 : Allumer un moteur (dans les 2 sens)

Cette partie sert à faire tourner le moteur


dans un sens à une puissance de 255
(max)
Déclarer les variables utilisées avec le driver : EN_A,
IN1 et IN2 On attend 2000 ms (2 sec). Pendant ce temps le moteur tourne

On arrête le moteur en mettant les 2


bornes à 0 (LOW)
On attend 2 secondes après avoir arrêté les 2 moteurs

On fait tourner le moteur dans l’autre


Déclarer que les variables sont des sens (car on commande l’inverse sur IN1
sorties (OUTPUT) et mettre EN_A à et IN2)
LOW (0) pour que le moteur ne démarre
pas au début On laisse les moteurs tourner 2 secondes

On arrête les 2 moteurs

On attend 2 secondes après avoir arrêté les 2 moteurs.

Ensuite, la boucle loop recommence


La suite du programme en haut à droite

Le code
Exercice 4 : Récupérer une valeur d’un capteur ultrason

Capteur
Ultrason

étape 1

Broche echo

Le câblage

Reproduisez cet exercice !!


Exercice 4 : Récupérer une valeur d’un capteur ultrason

Forcer trig à 0 et attendre 2 microsecondes pour avoir un


Déclarer les variables
signal propre
utilisées par le capteur (trig
et echo) et les variables
utilisées pour la calcul Lancer un signal (=1) de 10 microsecondes sur trig pour
lancer les ultrason et ensuite éteindre le signal (=0) (étape 1
sur graphe)

Récupérer la durée (duration) pendant laquelle


echo est égale à HIGH (=1)
Calculer la distance avec la formule v=d/t sachant qu’on a le temps
avec “duration” et la vitesse avec la vitesse du son. On divise par 2
car on a la durée de l’aller retour hors on s'intéresse qu’à l’aller

Permet d’afficher la distance en cm


dans le moniteur série
Déclarer trig comme sortie
et lui donner 0 comme
valeur. Attendre 200 milliseconds avant la prochaine mesure
Déclarer echo comme entrée
et retourner la valeur dans le distance dans le
programme

La suite du programme en haut à droite


Le code
Exercice 5 : Utiliser un boucle if avec un moteur et un capteur
Ces 2 fils
correspondent aux
fils des piles qu’il
faut relier au
driver

Le câblage

Reproduisez cet exercice !!


Exercice 5 : Utiliser un boucle if avec un moteur et un capteur Dans ce void loop on utilise des fonctions comme
“mesurerdistance()” on vous explique ces fonctions sur la
diapositive suivante

Déclarer les variables On récupère la valeur calculée dans la


utilisées par le capteur fonction mesuredistance pour la mettre
ultrason et le moteur dans la variable centimètres

Une condition if (si en français) permet de tester une condition


pour ensuite réaliser une action si la condition est vérifiée. Ici
on regarde si la distance en centimètres est de moins de 5cm, si
elle l’est on arrête les moteurs pendant 5 secondes

Déclarer les entrées et Une condition else if (sinon si en français) permet de tester
sorties du capteur et du une autre condition après une boucle if, si la première n’a pas
moteur été vérifié. Ici on regarde si la distance en centimètres est de
plus de 5cm, si elle l’est on allume les moteurs pendant 1
seconde.

Le code n’est pas fini, après il y a la


déclaration des fonctions

Le code
Exercice 5 : Utiliser if avec un moteur et un capteur
Les fonctions
Les fonctions sont comme des “boîtes” où on stocke des commandes. Ensuite si on écrit simplement le
nom de la fonction alors on effectuera toutes les commandes qui y sont présentes. Dans le code, on
déclare les fonctions après le void loop.

exemple : La fonction arretermoteur() exemple : La fonction mesuredistance()

Le principe est le même que


pour l’autre fonction. La
différence est qu’on utilise
pas void avant le nom de la
fonction mais long car la
fonction permet de
retourner un nombre (ici la
Ce bloc est placé après le void loop. On y met distance en cm)
les commandes de la fonction ensuite on aura
juste à l’appeler dans le void loop pour
l’utiliser

Vous aimerez peut-être aussi