Académique Documents
Professionnel Documents
Culture Documents
Arduino
Présenté par
CHOUKIR DOUAE
CPGE – Safi 2023/2024
Plan
1 Généralités
3 Présentation du logiciel
4 Fonctionnalité de base
5 Exemple d’application
2
17/01/2024 16:21:24
1 Généralités 2 3 4 5
Exemples d’application
Mesure et détection
Station météorologique automatisée,
suivi du soleil pour orientation des panneaux solaires,
système de sécurité domestique ou professionnel.
Contrôle
Petits robots,
drones multi-rotor,
Automatisation
Serre automatisée,
Art
Contrôle d'éclairage et sonore dynamique,
4
17/01/2024 16:21:24
1 2 Présentation du carte Arduino 3 4 5
5
17/01/2024 16:21:24 Architecture interne de base d’un microcontrôleur
1 2 Présentation du carte Arduino 3 4 5
6
17/01/2024 16:21:24
1 2 Présentation du carte Arduino 3 4 5
Elle est basée sur un microcontrôleur ATMEL de référence ATMega328 cadencé à 16 MHz.
7
17/01/2024 16:21:24
1 2 Présentation du carte Arduino 3 4 5
8
17/01/2024 16:21:24
1 2 Présentation du carte Arduino 3 4 5
12
17/01/2024 16:21:24
1 2 Présentation du carte Arduino 3 4 5
13
17/01/2024 16:21:25
1 2 Présentation du carte Arduino 3 4 5
Ces shield viennent généralement avec une librairie permettant de les contrôler : des shields
Ethernet, de contrôle de moteur, lecteur de carte SD, etc.
Carte Arduino + Shields Shield Wifi
Relais
Le principal avantage de ces shields est leurs simplicités d’utilisation : il suffit de les emboiter
sur la carte Arduino pour les connecter. 14
17/01/2024 16:21:25
1 2 3 Présentation du logiciel 4 5
16
17/01/2024 16:21:25
1 2 3 Présentation du logiciel 4 5
Langage Arduino
Le langage Arduino est inspiré de plusieurs langages. On retrouve notamment des
similarités avec le C, le C++ et le Java. Le langage impose une structure particulière
typique de l’informatique embarquée.
Le programme principal consiste en deux fonctions :
- La fonction setup : contiendra toutes les opérations nécessaires à
la configuration de la carte (directions des entrées sorties, débits de
communications série, etc.).
- La fonction loop : est exécutée en boucle après l’exécution de la
fonction setup. Elle continuera de boucler tant que la carte n’est
pas mise hors tension.
17
17/01/2024 16:21:25
1 2 3 Présentation du logiciel 4 5
(unsigned) int Entier 2 (16 bits) ([0; 65535]) [-32768 ; 32767] signé
(unsigned) long Entier 4 (32 bits) ([0; 4294967296]) [-2147483648 ; 2147483647] signé
(unsigned) char Entier ou caractère 1 (8 bits) ([0; 255]) [−128; 127] signé
Langage Arduino
Le programme se déroule
de la façon suivante :
19
17/01/2024 16:21:25
1 2 3 Présentation du logiciel 4 5
Pour déclarer une constante, il suffit d’ajouter « const » devant le type : const int val = 20 ;
On peut aussi les déclarer de cette façon sans « ; » à la fin de l’instruction : #define val 20
21
17/01/2024 16:21:25
1 2 3 Présentation du logiciel 4 5
Boucles
Une boucle for sert à exécuter une série d’instructions un nombre définit de fois.
Une boucle while sert à exécuter une série d’instructions tant qu’une condition est vérifiée.
while (condition) {
instructions; }
22
17/01/2024 16:21:25
1 2 3 Présentation du logiciel 4 5
Conditions
Les instructions contenues dans le « if » sont exécutées lorsqu’une (ou plusieurs) condition est
vrai, si ce n’est pas le cas, ce sont les instructions contenues dans le « else » qui sont exécutées :
if (condition) { if (condition) {
instructions; } instructions; }
else { else if (condition) {
instructions; } instructions; }
else if (condition) {
instructions; }
else {
instructions; } 23
17/01/2024 16:21:25
1 2 3 Présentation du logiciel 4 5
Conditions
l’instruction conditionnelle à choix multiples « switch case » permet de tester des valeurs
particulières pour la variable qui est testée.
switch (variable) {
case valeur1 :
« break » permet de sortie du « switch »
instructions;
break;
« default » permet de prendre en compte les cas case valeur2 :
qui ne sont pas explicités dans les différents « case ». instructions;
break;
default :
instructions; }
break; } 24
17/01/2024 16:21:25
1 2 3 4 Fonctionnalité de base 5
Entrées / sorties
Le langage Arduino vient avec un nombre important de fonction de base permettant
d’interagir avec son environnement.
Avant d’effectuer une mesure ou d’envoyer une commande. Il est nécessaire de définir la
direction des broches utilisées. Pour cela on fait appel à la fonction pinMode (X,Y).
void setup() {
pinMode(1,OUTPUT) ; // Broche 1 en sortie
pinMode(2,INPUT) ; // Broche 2 en entrée
}
25
17/01/2024 16:21:25
1 2 3 4 Fonctionnalité de base 5
Entrées / sorties
digitalRead (pin) : mesure une donnée numérique sur une des broches, la broche en
question doit être réglée en entrée.
digitalWrite (pin, value) : écrit une donnée numérique sur une des broches, la broche
concernée doit être réglée en sortie. Le paramètre value doit être égal à HIGH (état 1 soit
5V) ou LOW (état 0 soit 0V). void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
} 26
17/01/2024 16:21:25
1 2 3 4 Fonctionnalité de base 5
Entrées / sorties
analogRead (pin) : mesure une donnée analogique sur une des broches (compatible
seulement), la broche doit être réglée sur entrée.
analogWrite (pin, value) : écrit une donnée sous forme de PWM sur une des broches
(compatible uniquement), la broche doit être réglée en sortie. Le paramètre value doit
être compris dans l’intervalle [0;255].
void setup() {
pinMode(6, OUTPUT);
}
void loop() {
analogWrite(6, 85);
27
17/01/2024 16:21:25 }
1 2 3 4 Fonctionnalité de base 5
Timers
La fonction Delay() suspend le programme durant un laps de temps (en millisecondes)
spécifié comme paramètre. (Il y a 1000 millisecondes dans une seconde) .
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
} 28
17/01/2024 16:21:25
1 2 3 4 Fonctionnalité de base 5
29
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
Exemple 1 : Programmation
Le but est d’écrire un programme qui fait clignoter une led rouge , connectée
sur la broche 9 , à une fréquence de 0,5 Hz.
void setup() {
pinMode(9, OUTPUT);
void loop() {
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(1000);
} 30
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
Le but est de réaliser le montage suivant sous ISIS, et tester le même exemple sur
la carte Arduino.
31
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
32
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
Barre de menu
34
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
35
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
36
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
Lancer Proteus…
vous allez obtenir
l’interface suivante.
Après cliquer sur
l’icône la dessus.
37
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
38
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
39
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
40
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
41
17/01/2024 16:21:23
1 2 3 4 5 Exemple d’application
Après la fin de la compilation, vous devez copier le chemin de fichier .hex, ce chemin se trouve
dans la partie consacré à l'affichage des messages de compilation :
42
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
43
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
44
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
45
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
Exemple 2 :
Réalisez un montage qui permet d’allumer une LED branchée sur le PIN 9 une fois le
bouton poussoir (A5) est poussé et elle s’éteint une fois ce bouton est relâché.
46
17/01/2024 16:21:25
1 2 3 4 5 Exemple d’application
47
17/01/2024 16:21:25
Merci de votre attention