0% ont trouvé ce document utile (0 vote)
9 vues63 pages

Initiation à Arduino et programmation

Ce document présente une initiation à la programmation avec Arduino, expliquant les composants de base comme la carte, le microcontrôleur et les entrées/sorties. Il fournit également des exemples d'applications possibles, telles que des robots et des capteurs. Le contenu est structuré pour aider les débutants à comprendre les fondamentaux de l'utilisation d'Arduino.

Transféré par

poubelle
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues63 pages

Initiation à Arduino et programmation

Ce document présente une initiation à la programmation avec Arduino, expliquant les composants de base comme la carte, le microcontrôleur et les entrées/sorties. Il fournit également des exemples d'applications possibles, telles que des robots et des capteurs. Le contenu est structuré pour aider les débutants à comprendre les fondamentaux de l'utilisation d'Arduino.

Transféré par

poubelle
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Initiation à la programmation

Avec Arduino !

Initiation Arduino 1
Arduino, Késako ?

Une carte

Une carte
Initiation Arduino 2
Arduino, Késako ?
01010101100110001100
10100110010001010011
00101010100101101011
01010101010101010101
01010101010101001110
11010110000010111111
00110010101111010101
01010011011001010011
01101111000111000111
00110011110011010011
Une carte Un programme

Un programme
Initiation Arduino 3
Arduino, Késako ?
01010101100110001100
10100110010001010011
00101010100101101011
01010101010101010101
01010101010101001110
11010110000010111111
00110010101111010101
01010011011001010011
01101111000111000111
00110011110011010011
Une carte Un programme Du matériel

Du matériel
Initiation Arduino 4
L’univers Arduino Exemples

Une serre
Une main robotique Robot dessinateur
intelligente

Initiation Arduino 5
L’univers Arduino Exemples

Un moniteur
Pendule d’échecs Fraiseuse
cardiaque

Initiation Arduino 6
Le matériel

Initiation Arduino 7
VCC ( A1) G ND D5 SCL SDA

BLE
HTU21D
Fa b -L a b .e u

A0
SCL
RXD

SDA
TXD

G ND
VCC
D5
FTDI
Re v B

ITALY
MADE IN
AREF

TX
RX
GND
13
IOREF

PWM
12
RESET
11
3 V3
10
9
8

POWER
6
A0 5
A1 4
A2 3
A3 2

ANALOG IN
A4 TX0 1
A5 RX0 0

Arduino
6

TM
A7 TX3 14
RX3 15
A8 TX2 16

COMMUNICATION

ON
A9 RX2 17
A10 TX1 18
L’univers Arduino

A11 RX1 19 BL K

MEGA
2560
A12 SDA 20
9 8 7 6 5 4 3 2 GND RST RXI TXO
A13 SCL 21
A14 DIGITAL

52
50
48
46
44
42
40
38
36
34
32
30
28
26
24
22

A15
5V
Arduino

M ini

Re s e t
MICRO
TM

Ard u i n o Pro

53
51
49
47
45
43
41
39
37
35
33
31

GND
A6 A7 A4 A5
L

GND VCC RXI TXO

10 11 12 13 A0 A1 A2 A3 VCC RST GND RAW


GRN

5
4

6
3

7
2

ON L TX RX BUZZER LIGHT
RESET
tx
1

8
0

9
rx
a5

10 ACCEL
TX RX

Y
a4

11
SELF-T

Z
6g

X
a3

12
1.5

13
a2

a0
a1

TM P3 6

TEMP
-

MICRO LINEAR LED

Initiation Arduino

5V
9
8
7
6
5
4
3
2
1
0

22
13
12
11
10

GND

PWM
AREF

SCL1
SDA1

24
TX3 14
RX3 15
TX2 16
RX2 17
TX1 18
RX1 19
SDA 20
SCL 21

TX0
RX0

26
COMMUNICATION 28
30 31
32 33
RX SPI 34 35
TX
1 36 37
L
ON 38 39
40 41
TM 42 43
44 45

RX1
46 47
ISCP
Arduino
48 49
TX1 DUE 50 51
DIGITAL

52 53
POWER ANALOG IN
IOREF
RESET
3 V3
A0
A1
A2
A3
A4
A5
6
A7
A8
A9
A10
A11
DAC0
DAC1
CANRX
CANTX

GND
-
+
Batt

4-12V
YLW
GRN

EXT
AREF
GND
-
+

RTS

RX-I
TX-0

GND
GND
5/3.3V

BATT

RESET
PWM
5/3.3V
5V

PWM
3.3V

C1 0 6
8MHz

VCC
20MHz
16MHz

PWM
GND
Power
DIGITAL

Batt
C1 0 6
PWM
D ie c im

PWM
ila
A r d u in o

Arduino Pro
www.a rd u i n o .c c

PWM
ANALOG IN
Des Cartes

TX
1
Reset

RX
ISP
Du matériel La carte
USB LED Entrées / Sorties
… …

Alimentation Microcontrôleur
=
Un MINI ordinateur !

Entrées / Sorties

Initiation Arduino 9
Du matériel La carte
USB LED Entrées / Sorties
… …
MADE IN
5V
Microcontrôleur
ITALY 22

GND

9
8

7
6
5
4
3
2
1
0
AREF

SDA 20
13
12
11
10

RX3 15

RX2 17

RX1 19

SCL 21
=

TX3 14

TX2 16

TX1 18
24
PWM

RX0
TX0
26
L COMMUNICATION 28
30 31
Un MINI ordinateur !
Alimentation TX
RX
ON 32 33
34 35
36 37
38 39
40 41
42 43
TM
44 45

MEGA 46 47

DIGITAL
48 49
Arduino 2560
50 51
52 53
POWER ANALOG IN

RESET
IOREF

A10
A11
A12
A13
A14
A15
GND

3 V3

A0
A1
A2
A3
A4
A5

A7

A8
A9
6
Entrées / Sorties

Initiation Arduino 10
Du matériel La carte

USB LED Entrées / Sorties


… … …

Microcontrôleur
TM

TX RX

Arduino L

MICRO

=
Un MINI ordinateur !

Entrées / Sorties

Initiation Arduino 11
L’univers Arduino Des Shields
22
AREF
GND

SDA
9
8

7
6
5
4
3
2
1
0

RX3

RX2

RX1

SCL
13
12
11
10

TX1

TX2

TX1
PWM 24

De s i g n e d b y Pe te r Da v e n p o rt fo r SFE

TX

RX
13

12

11

10
GND
Are f
RX 5
26
TX 4
28

An a l o g In
CAN-BUS Shield
2 3
30 31

S3
AREFGND13 12 11 10 9 8 7 6 5 4 3 2 1 0 14151617 18192021 3 2
PWR_SEL DIGITAL 32 33
4 1
34 35
GND

5 0

S2
36 37

DIGITAL

Color LCD Shield


6 5 V GND CAN CAN
38 39 H L
VCC

22232425 26272829 30313233 34353637 38394041 42434445 7 VIN


ANALOG 40 41

S1
D8 D7 PWR GND
42 43 8
RESET
GND
44 45 9
+5 V
46 47 10
46474849 50515253 A0A1A2A3 A4A5A6A7 A8A9A10A11 A12A13A14A15 48 49 + 3 .3 V
11

Bluetooth SD Card APC220 50 51 RST

Arduino MEGA PWR 12


52 53 U
Sensor Shield 13

v2.0 ANALOG IN GND


GND

GND

GND
RST

3 V3

VIN

10
11
12
13
14
15
URF01
5V

0
1
2
3
4
5
6
7

8
9

AREF
L R

Re s e t

3 .3 V

GND

GND
An a l o g In

Vi n
5V
ICSP

5
TX D5 RX D4

LCD D
EM-406

Shield capteur Reset


Shield manette
Shield écran
Shield communication

1 1 -PWM B

PWM A 3
GND
SDA

2
~6

~5
~1 0
AREF
SCL

TX>1

RX<0
(*=PWM )
BRAKEA 9

BRAKEB 8
1 3 -DIRB

1 2 -DIRA
RESET
Arduino
GND

ETHShield
SD 1 0
AREF

TX RX
Ard u i n o

M OTOR
SHIEL D REV3
TWI-IN TWI-OUT OUT6 OUT5 IN2 IN3
MEGA compatible

ICSP

B-
B

B+
A-
A

A+
RESET

VIN GND
RESET

POWER ANAL OG

IOREF
WP

RES

+5 V
3 V3
ANALOG IN

VIN
3V3

GND 0 1 2 3 4 5
5V Gnd 9V A0 1 2 3 4 A5

Shield Ethernet Shield relais Shield écran Shield moteur


Initiation Arduino 12
L’univers Arduino Des Composants

10

15

20

25

30
1

5
J

J
F G H I

F G H I
Capteur de distance Capteur de distance

A B C D E

A B C D E
infrarouge ultrasons

10

15

20

25

30
1

5
Soil Moisture Sensor
Planche à pain Des moteurs

VCC
GND
SIG
Enceintes
Afficheurs
Capteur d’humidité Résistance

Piezzo

Capteur de
température LED Des moteurs
Initiation Arduino 13
Un Programme

Initiation Arduino 14
Arduino, Késako ?

Un ordinateur

Créer un programme pour Arduino


Initiation Arduino 15
Arduino, Késako ?

Logiciel Arduino
Un ordinateur

Créer un programme pour Arduino


Initiation Arduino 16
Arduino, Késako ?

01010101100110001100
10100110010001010011
00101010100101101011
01010101010101010101
01010101010101001110
11010110000010111111
00110010101111010101
01010011011001010011
Logiciel Arduino 01101111000111000111
Un ordinateur 00110011110011010011
Un programme

Créer un programme pour Arduino


Initiation Arduino 17
Un Programme

Une recette = une suite d’instructions

Un Algorithme

Initiation Arduino 18
Un Programme

Recette
Recette en français en C++ Recette en « 0 » et « 1 »

void loop()
01010101100110001100
{ 10100110010001010011
addFlour(375);
addSoda(0,5);
00101010100101101011
addEggs(3); 01010101010101010101
addSugar(1000); 01010101010101001110
while(!Mixed) 11010110000010111111
Mix();
bakeCookies();
00110010101111010101
} 01010011011001010011
} 01101111000111000111
00110011110011010011

Initiation Arduino 19
Un Programme Exercice 1
Instructions disponibles :
North(); // Monter d’une case
South(); //Descendre d’une case
East(); //Aller à droite d’une case
West(); // Aller à gauche d’une case

Programme()
{

Initiation Arduino 20
Un Programme Exercice 1
Instructions disponibles :
North(); // Monter d’une case
South(); //Descendre d’une case
East(); //Aller à droite d’une case
West(); // Aller à gauche d’une case

Programme()
{
East();
North();
North();
East();
East();
East();
South();
South();
}

Initiation Arduino 21
Le logiciel Arduino

Initiation Arduino 22
Le logiciel Arduino [Link]

.. .. ..
void setup() {
// put your setup code here, to run once:
}

Téléverser Ouvrir Moniteur Série void loop() {


// put your main code here, to run repeatedly:
Vérifier Nouveau Enregistrer }
}

Initiation Arduino 23
Le logiciel Arduino [Link]

.. .. ..
void setup() {
// put your setup code here, to run once:
}

Téléverser Ouvrir Moniteur Série void loop() {


// put your main code here, to run repeatedly:
Vérifier Nouveau Enregistrer }
}

Type de carte Port de communication

Arduino/Genuino Uno sur COM18

Initiation Arduino 24
Le logiciel Arduino
void setup() {
// put your setup code here, to run once:

Langage C++ }

Code minimal ! void loop() {


// put your main code here, to run repeatedly:

Initiation Arduino 25
Le logiciel Arduino
Une fonction void setup()
{
// put your setup code here, to run once:
}

void loop()
{
// put your main code here, to run repeatedly:

}
}

Initiation Arduino 26
Le logiciel Arduino
Une fonction : void setup()
• Type {
• Nom // put your setup code here, to run once:
• Paramètres }
• Commence par { et finis par }

void loop()
{
// put your main code here, to run repeatedly:

}
}

Initiation Arduino 27
Le logiciel Arduino
Une fonction : void setup()
• Type : void {
• Nom : setup // put your setup code here, to run once:
• Paramètres : aucun }
• Commence par { et finis par }

void loop()
{
// put your main code here, to run repeatedly:

}
}

Initiation Arduino 28
Le logiciel Arduino
Une fonction : void setup()
• Type : void {
• Nom : setup // put your setup code here, to run once:
• Paramètres : aucun }
• Commence par { et finis par }

void loop()
{
Un commentaire : // put your main code here, to run repeatedly:
• Commence par //
}
ou
• Commence par /* et finis par */ }

Initiation Arduino 29
Le logiciel Arduino
Une fonction : void setup()
• Type : void {
• Nom : setup // Commentaire
• Paramètres : aucun Instruction1
• Commence par { et finis par } Instruction2
}

Un commentaire : void loop()


• Commence par // {
/* Super
ou
commentaire sur
• Commence par /* et finis par */ plusieurs lignes
*/
}

Initiation Arduino 30
Le logiciel Arduino
void setup() {

Initialisation
// put your setup code here, to run once:

}
void setup()
{ void loop() {
// put your main code here, to run repeatedly:
}
}

void setup()
{
Préchauffer le four
}

Initiation Arduino 31
Le logiciel Arduino
void setup() {
// put your setup code here, to run once:

void loop() {
Boucle // put your main code here, to run repeatedly:

}
void loop()
{ }

void loop()
{
Préparer les ingrédients
Mélanger les ingrédients en suivant la recette
Cuire les cookies
Manger les cookies
}

Initiation Arduino 32
Notre premier programme

Initiation Arduino 33
Hello World !
• Objectif : Faire clignoter une LED à la seconde

… … …

1s
Initiation Arduino 34
Les entrées et sorties numérique

GPIO = General Purpose Input Output


Modes de fonctionnement
Entrée numérique :
Permet de lire une valeur appliquée en
tension sur la broche :
• 0V  État bas / Faux / « 0 » / OFF
• 5V  État haut / Vrai / « 1 » / ON

Sortie numérique :
Permet d’imposer une tension sur la
broche :
• État bas / Faux / « 0 »  0V
• État haut / Vrai / « 1 »  5V

Initiation Arduino 35
Les entrées et sorties numérique

Bas
OFF
Broche « 7 » en sortie numérique à l’état «0»
Faux
0V

Initiation Arduino 36
Les entrées et sorties numérique

Haut
ON
Broche « 7 » en sortie numérique à l’état «1»
Vrai
5V

Initiation Arduino 37
Hello World !
• Objectif : Faire clignoter une LED à la seconde
LED Broche : 13

Initiation Arduino 38
Hello World !
• Objectif : Faire clignoter une LED à la seconde
Début

Broche 13 en sortie

Allumer la LED

Attendre 0,5 s

Éteindre la LED

Attendre 0,5 s

Allumer la LED
Initiation Arduino 39
Hello World !
• Objectif : Faire clignoter une LED à la seconde Début

Début
Broche 13 en sortie

Broche 13 en sortie
Allumer la LED
Allumer la LED

Attendre 0,5 s
Attendre 0,5 s
Éteindre la LED
Éteindre la LED
Attendre 0,5 s
Attendre 0,5 s

Allumer la LED
Initiation Arduino 40
Hello World !
• Objectif : Faire clignoter une LED à la seconde Début

Initialisation Broche 13 en sortie

Allumer la LED

Attendre 0,5 s
Boucle
Éteindre la LED

Attendre 0,5 s

Initiation Arduino 41
Hello World !
• Objectif : Faire clignoter une LED à la seconde

Initialisation : pinMode(pin, mode);


pin : Numéro du pin à initialiser

mode :
INPUT : Pour récupérer une information
OUTPUT : Pour envoyer une commande

Initiation Arduino 42
Hello World !
• Objectif : Faire clignoter une LED à la seconde

Boucle : digitalWrite(pin, état);


pin : Numéro du pin à commander

état :
HIGH : Allumé
LOW : Éteint
delay(temps);
temps : temps d’attente en millisecondes (1000ms = 1s)

Initiation Arduino 43
Hello world !
void setup()
Début
{
// put your setup code here, to run once:
pinMode(13, OUTPUT); Broche 13 en sortie
}

Allumer la LED
void loop()
{
Attendre 0,5 s
// put your main code here, to run repeatedly:
digitalWrite(13, HIGH);
delay(500); Éteindre la LED
digitalWrite(13, LOW);
delay(500); Attendre 0,5 s

}
Initiation Arduino 44
Des fils en pagaille
Représenter un montage électronique

Initiation Arduino 45
De l’éléctro-quoi ?
• Objectif : Brancher une LED Vue schématique

Calcul de la résistance R1
𝑉𝑉𝑓𝑓 = 1,2𝑉𝑉
�𝐼𝐼𝑁𝑁 = 20𝑚𝑚𝑚𝑚
𝑉𝑉𝑐𝑐𝑐𝑐 = 5𝑉𝑉

𝑉𝑉𝑐𝑐𝑐𝑐 − 𝑉𝑉𝑓𝑓 5 − 1,2


𝑅𝑅1 = = = 190Ω
𝐼𝐼𝑁𝑁 20 × 10−3

Valeur normalisée supérieure : 𝑅𝑅1 = 220Ω

Initiation Arduino 46
La Planche à pain – Reliez c’est gagné
• Objectif : Brancher une LED

10

15

20

25

30
1

5
J

J
F G H I

F G H I
A B C D E

A B C D E
10

15

20

25

30
1

Initiation Arduino 47
La Planche à pain
• Objectif : Brancher une LED

• Vue

Initiation Arduino 48
Communiquer avec l’ordinateur

Initiation Arduino 49
Liaison Série
• Objectif : Faire clignoter une LED à la seconde Début

Démarrer la liaison
série
Initialisation
Blab bla bla ...
Envoyer du texte

Boucle
Ne rien faire

Initiation Arduino 50
Comment tu t’appelles ?
• Objectif : Afficher son nom et son âge dans le moniteur série

Initialisation
[Link]("Texte a écrire");
[Link](9600); [Link]("Texte a écrire");

print : Écrit un texte à l’écran du moniteur série

println : Écrit un texte à l’écran et rajoute un saut de ligne

Initiation Arduino 51
Point chaussettes ! Ou, les variables

Des tiroirs dans la tête


Chaque tiroir à un nom
Chaque tiroir ne peut contenir qu’un seul
type d’objet

Initiation Arduino 52
Point chaussettes ! Ou, les variables
• Chaque tiroir à un nom Nom du tiroir
• Chaque tiroir ne peut Chaussettes
contenir qu’un seul
type d’objet

T-Shirts

Pantalons

Caleçons

Initiation Arduino 53
Point chaussettes ! Ou, les variables
• Chaque tiroir à un nom Nombre d’objets Nom du tiroir
• Chaque tiroir ne peut Chaussettes
contenir qu’un seul
type d’objet
1

T-Shirts

Pantalons

Caleçons

Initiation Arduino 54
Point chaussettes ! Ou, les variables
Chaque tiroir à un nom Nombre d’objets Nom du tiroir
Chaque tiroir ne peut Chaussettes
contenir qu’un seul
type d’objet
3

T-Shirts
2

Pantalons
4

0 Caleçons

Initiation Arduino 55
Point chaussettes ! Ou, les variables
Chaque variable à un nom Valeur ou Contenu Nom de la variable
Chaque variable ne peut Chaussettes
contenir qu’un seul
type d’objet
3

T-Shirts
2

Pantalons
4

0 Caleçons

Initiation Arduino 56
Le logiciel Arduino
Création d’une variable : int NombreDeChaussette;
• Type : int
}
• Nom : NombreDeChaussette
• Valeur : 0

Création et initialisation d’une int NombreDePantalons = 4;


variable: }
• Type : int
• Nom : NombreDePantalons
• Valeur : 4

Initiation Arduino 57
Le logiciel Arduino
Types de variables :

Type Représente Minimum Maximum


int -32 768 32 768
unsigned int Un entier 0 65 535
long -2,147,483,648 2,147,483,648
char -127 127
Un caractère
unsigned char 0 255
float Nombre à virgule
- 3.4028235 E +38 3.4028235E+38
double flottante

Initiation Arduino 58
Point chaussettes ! Ou, les variables

Créer une variable: int NombreDeChaussettes;


Type : int Représente un nombre entier (-32 768 à 32 768)

Stocker dans une variable :

int NombreDeVetements = NombreDeChaussettes + NombreDePantalons;


Opérations sur les variables :

Initiation Arduino 59
Point chaussettes ! Ou, les variables

Créer une variable: int NombreDeChaussettes;


Stocker dans une variable : NombreDeChaussettes = 2;
int NombreDePantalons = 3;
Opérations sur les variables :

int NombreDeVetements = NombreDeChaussettes + NombreDePantalons;

Initiation Arduino 60
Que la lumière soit

• Objectif : Allumer une LED si il fait jour !


pinMode(pin, mode);
pin : Numéro du pin à initialiser

mode:
- INPUT : Pour récupérer une information (ex : capteur
- OUTPUT : Sortie

Valeur = analogRead(pin);
pin : Numéro du dont on veux lire la valeur

Initiation Arduino 61
Que la lumière soit !

• Objectif : Allumer une LED SI il fait jour !

if(Luminosite > 400)


{
Si Luminosité > 400
Éteindre la LED
Éteindre la LED
}
Sinon
else
Allumer la LED
{
Allumer la LED
}

Initiation Arduino 62
A votre tour !
pinMode(pin, mode); Les variables
pin : Numéro du pin à initialiser Créer une variable: int NombreDeChaussettes;
mode:
INPUT : Pour récupérer une information (ex : capteur) Stocker dans une variable : NombreDeChaussettes = 2;
OUTPUT : Sortie
int NombreDePantalons = 3;

digitalWrite(pin, état); Opérations sur les variables :


pin : Numéro du pin à commander int NombreDeVetements = NombreDeChaussettes + NombreDePantalons;
état :
HIGH : Allumé Les conditions
LOW : Éteint
if(Luminosite > 400)
Valeur = analogRead(pin); {
Éteindre la LED
pin : Numéro du dont on veux lire la valeur
}

delay(temps); else
{
temps : temps d’attente en millisecondes (1000ms = 1s)
Allumer la LED
}

Initiation Arduino 63

Vous aimerez peut-être aussi