Vous êtes sur la page 1sur 22

Traduit de Anglais vers Français - www.onlinedoctranslator.

com
2024-02-26

Cours de microcontrôleurs
Arduino
Pr. Karim El Mokhtari
Département de génie électrique
Faculté des sciences et technologies
Tanger

Qu’est-ce qu’Arduino ?

1
2024-02-26

Qu’est-ce qu’Arduino ?

• Arduino est une carte microcontrôleur dotée d'une prise de bus série
universelle (USB) pour se connecter à votre ordinateur

• De nombreuses prises de connexion pouvant être câblées à des composants électroniques externes tels
que des moteurs, des relais, des capteurs de lumière, …

• La conception de la carte est open source


• Les cartes de base sont complétées par des cartes de blindage accessoires
qui peuvent être branchées sur la carte Arduino.

Un microcontrôleur

• Le cœur de votre Arduino est un microcontrôleur + circuits périphériques

Architecture du microcontrôleur ATmega328

2
2024-02-26

Entrées/Sorties

• Entrées analogiques
• 6 broches étiquetées comme Analog In A0 à A5
• Mesurer la tension
• Haute résistance interne
• Ils peuvent être configurés pour fonctionner comme entrées/
sorties numériques

• Connexions numériques
• Étiqueté numérique 0 à 13
• Utilisé comme entrées ou sorties (0V/5V)
• Les broches 0 et 1 peuvent être utilisées comme Tx/Rx

• Courant de sortie maximum : 40 mA à 5 V

Microcontrôleur ATmega328

• 28 broches
• Processeur 8 bits, architecture Risc
• 2 Ko de RAM (données)
• ROM Flash de 32 Ko (code)
• 1 Ko EEPROM (données non volatiles)

Schéma fonctionnel ATmega328

3
2024-02-26

Alimentation et autres composants

• Arduino dispose d'un régulateur de tension 5V alimenté en 7V à 12V


• Arduino peut être alimenté avec la tension 5V de la prise USB
• Bouton de réinitialisation
• Oscillateur à cristal de quartz – 16 MHz. Une opération est effectuée à chaque
top d'horloge
• Puce d'interface USB : convertit le signal USB en niveaux utilisés par la
carte Arduino

Boucliers

• Les cartes de blindage se branchent directement sur le


dessus de la carte Arduino. Ils peuvent être empilés.

• Les boucliers les plus populaires sont :


• Ethernet
• Conducteur de moteur
• emplacement USB
• Relais

Arduino avec un blindage Ethernet

4
2024-02-26

Famille Arduino – cartes les plus populaires

Arduino Uno
Arduino Méga
Arduino-Nano
- 54 broches d'entrée/sortie
- 128 Ko de mémoire flash pour stocker des
croquis et des données fixes
- 8 Ko de RAM
- 4 Ko d'EEPROM

EDI Arduino

dix

5
2024-02-26

EDI Arduino

• Téléchargez et installez l'IDE Arduino


(environnement de développement
intégré). sur le site Arduino
(www.arduino.cc ).
• Le code Arduino est écrit en C. Une application
Arduino contient des fichiers programme appelés
« Sketches »
• L'IDE Arduino comprend plusieurs bibliothèques intégrées
(par exempleLiquide Crystalbibliothèque). Beaucoup
d’autres sont disponibles en ligne.

EDI Arduino

11

Exemples de croquis - The Blink Sktech

• Le logiciel Arduino est livré avec de nombreux


exemples (Fichier → Exemples)
• La LED clignotante est l'équivalent Arduino du
programme « Hello World ». Il fait clignoter la
LED intégrée à une fréquence de 0,5 Hz

Exemple d'esquisse clignotante

12

6
2024-02-26

Exemples de croquis - The Blink Sktech

• Branchez votre Arduino sur le port USB, sélectionnez le type de carte, le port série
(par exemple COM3) et chargez votre croquis sur Arduino

1. Sélectionnez le type de carte 2. Sélectionnez le port série (Windows) 3. Téléchargez le croquis sur la carte

13

Bases du langage C

14

7
2024-02-26

Processus de compilation

• Un programme écrit pour Arduino suit le processus ci-dessous. Le code reste


dans la mémoire Flash Arduino et peut s'exécuter indépendamment.

15

Structure d'esquisse

• Une esquisse contient deux fonctions par défaut :


• void setup():s'exécute une fois au démarrage de
l'esquisse. Utilisé pour l'initialisation/configuration.

•v définitivement. Contient le
m ntinuellement.

16

8
2024-02-26

Exemple d'esquisse

Fonction de configuration : s'exécute une fois

Configurer la broche de la sortie numérique 13 (LED) comme sortie

Fonction boucle : fonctionne en continu

Réglez la sortie numérique 13 (LED) sur 5 V

délai de 500 ms
Réglez la sortie numérique 13 (LED) sur 0 V

délai de 500 ms

17

Variables

• Les variables peuvent être initialisées et mises à


jour tout au long du code

• Dans cet exemple, la broche LED et la période de


retard sont définies comme des variables entières

• Pour que la LED clignote plus rapidement, il suffit


de mettre à jour ledélaiPériodevariable:

18

9
2024-02-26

Code de débogage avec le moniteur série

• Une méthode pour tester votre code C consiste à envoyer du texte de la carte
à l'IDE Arduino à l'aide du moniteur série.

Le texte reçu est


affiché sur la fenêtre
du moniteur série

Que doit afficher le


Esquisse qui envoie du texte au moniteur série ?
moniteur série

19

Conditions de test avec if

• Analyser le code et expliquer le rôle


dusitest

20

dix
2024-02-26

Conditions de test avec if

• Solution:
• Le délai augmente de 100 ms après chaque
itération. La vitesse de clignotement devient de
plus en plus lente.
• Lorsque le délai est supérieur à 3 s, le
ifblock le remet à 100 ms

21

Conditions de test avec if

• Opérateurs de comparaison

22

11
2024-02-26

Pour les boucles

• La boucle for fait clignoter la LED 20 fois. Une pause


de 3 secondes se produit avant de redémarrer
• Les ensembles de boucles forjeà 0, l'incrémente à
chaque itération et sort de la boucle lorsque i ≥ 20

23

Boucle while

• La boucle While itère tant qu'une


condition est vraie
• Dans cet exemple, la LED clignote alors que
i n'a pas atteint 20

24

12
2024-02-26

Définir une constante

• Pour les valeurs constantes – comme les affectations de broches – qui ne changent pas,
utilisez des constantes au lieu de variables.

• Utilisez le#définirprimitive pour définir une constante.

• Les constantes n'utilisent pas de mémoire.

25

Fonctions - Définition

• Une fonction est un morceau de code qui a un nom, des arguments facultatifs et
une valeur de retour facultative

• Une fonction peut être appelée depuis n'importe où dans une esquisse et peut
contenir ses propres variables locales

• Exemple:
• Écrivez une fonction flash() qui fait clignoter la LED une fois. Appelez cette fonction 20 fois, puis
faites une pause de 3 secondes

26

13
2024-02-26

Fonctions - Exemple

• Solution:

27

Fonctions - Paramètres

• Réécrivez la fonction flash pour qu'elle reçoive deux paramètres :


• numFlashes(entier) : nombre de flashs
• d(entier) : délai en millisecondes

void flash (int numFlashes, int d) {


}
Réécrivez le programme précédent en utilisant la nouvelle fonction flash

28

14
2024-02-26

Fonctions - Paramètres
Variable globale: accessible n'importe où dans le programme
• Solution:

Variable locale: accessible uniquement à l'intérieur


de la fonction

29

Fonctions – Valeur de retour

• Exemple de fonction qui convertit une température de °C en °F

• Appel de fonction :

30

15
2024-02-26

Types de données en C

31

commentaires

• Les commentaires améliorent la clarté du code


• Ils commencent par//pour une seule ligne. Les commentaires multilignes
sont enveloppés par/*et*/
/*
Une fonction qui fonctionne sans interruption. Ceci
est un commentaire multiligne
*/

32

16
2024-02-26

Tableaux

• Un tableau est une liste de valeurs du même type.


• Exemple de tableau d'entiers :

• Exemple d'utilisation : imprimer toutes les valeurs du tableau sur le port série.

33

Tableaux

• Faire clignoter la LED avec


des durées différentes

34

17
2024-02-26

Cordes

• Une chaîne est une séquence de caractères


• Une chaîne peut être définie comme un littéral (constante) ou une variable (tableau de
caractères)

Chaîne littérale (constante) Variable de chaîne

35

Contrôle des sorties numériques

• Écrivons un programme qui


contrôle la broche numérique
4 via le moniteur série
• Analyser le code et expliquer
ce qu'il fait
• Répondre:
• L'envoi de 1 sur le moniteur série définit
la broche numérique 4 à 5V
• L'envoi de 0 définit la même broche sur
0V
• Astuce : câblez une LED externe à la
broche 4 pour visualiser son état

36

18
2024-02-26

Lecture des entrées numériques

• Ce programme lit l'état de la


broche numérique 5
• Analyser le code et expliquer

• Solution:
• L'état de la broche 5 est envoyé au
moniteur série chaque seconde
• Remarque : Lorsque l'entrée n'est pas
connectée, dans quel état se trouve-t-elle ?

37

Lecture des entrées numériques – résistances de rappel

• Si vous utilisez un switch pour mettre une entrée à 0V, il est nécessaire d'ajouter une
résistance pull-up pour amener la broche à 5V lorsque le switch est ouvert

Switch (au sol)

Résistance pull-up externe (jusqu'à 5V)

38

19
2024-02-26

Lecture des entrées numériques – résistances de rappel

• Heureusement, le microcontrôleur dispose de résistances de rappel internes qui


sont activées en écrivant sur l'entrée numérique :

Switch (au sol)

39

Lecture des entrées numériques – Anti-rebond

• Lorsqu'un bouton est enfoncé, les contacts


métalliques du bouton rebondissent. Une seule
presse devient une série de presses.

• Le programme bascule l'état de la LED lorsque


le bouton est enfoncé.
• Expliquez pourquoi la LED basculera de manière aléatoire.

40

20
2024-02-26

Lecture des entrées numériques – Anti-rebond

• La LED basculera plusieurs fois


en raison du rebond.
• La solution est d'ajouter un délai de 500 ms.
Suffisamment de temps pour que tout rebond
se soit atténué.

41

Sorties analogiques - PWM

• L'Arduino n'a pas de véritables sorties analogiques. Il utilise PWM (Pulse


width Modulation) pour contrôler les sorties analogiques 3, 5, 6, 9, 10 et 11.

• Les impulsions sont délivrées au même rythme (environ 500 Hz), mais le rapport
cyclique varie pour correspondre à la valeur de sortie.

42

21
2024-02-26

Sorties analogiques - PWM

• Analyser et expliquer ce croquis

• Répondre:
• Ce croquis lit un chiffre entre 0
et 5 et affiche le
tension équivalente sur la broche 3. en
utilisant la commandeanalogWrite.

• Les valeurs PWM sont comprises entre 0


(0 V) et 255 (5 V)

43

Entrées analogiques

• Les entrées analogiques donnent une valeur comprise entre 0 (pour 0 V) et 1023
(pour 5 V) en fonction de la tension à la broche d'entrée analogique (A0 à A5). Ils
utilisent un ADC (convertisseur analogique-numérique) 10 bits

• Ce croquis mesure la tension appliquée


à A0 et imprime le résultat sur le
moniteur série

44

22

Vous aimerez peut-être aussi