Vous êtes sur la page 1sur 56

Plan du cours

1. Présentation de carte Arduino


2. Présentation du logiciel Arduino IDE
3. Présentation du logiciel de simulation ISIS Proteus
4. Fonctionnalités de base
Plan du cours

1. Présentation de carte Arduino


2. Présentation du logiciel Arduino IDE
3. Présentation du logiciel de simulation ISIS Proteus
4. Fonctionnalités de base
1. Présentation de carte Arduino
 Qu’est ce qu’un microcontrôleur ?
Un microcontrôleur est un petit ordinateur sur un seul circuit intégré contenant un
processeur, mémoires et des périphériques d’entrée/sortie programmables. Comme la plupart
des ordinateurs, les microcontrôleurs sont tout simplement des exécuteurs d'instructions d'usage
général. L’élément principal d'un système informatique est un programme d'instructions qui est
fourni par un programmeur humain.
1. Présentation de carte Arduino
 Caractéristiques de la carte Arduino

La carte Arduino est un outil facile à utiliser. Elle est basée sur un microcontrôleur de type
Atmel ATMEGA328 (Arduino UNO) ou ATMEGA2560 (Arduino MEGA). Ce puissant ordinateur à
carte unique a réussi à se faire une bonne place dans le marché des amateurs ainsi que dans le
marché des professionnels et académiques.

Un des modèles les plus répandu de carte Arduino est l’Arduino UNO. C’est la première
version stable de carte Arduino.
1. Présentation de carte Arduino
 Caractéristiques de la carte Arduino
Les cartes Arduino sont disponibles en plusieurs types:
1. Présentation de carte Arduino
 Caractéristiques de la carte Arduino UNO
1. Présentation de carte Arduino
 Caractéristiques de la carte Arduino UNO
1. Présentation de carte Arduino
 Caractéristiques de la carte Arduino MEGA
1. Présentation de carte Arduino
 Caractéristiques de la carte Arduino MEGA
1. Présentation de carte Arduino
 Arduino en chiffres
ARDUINO UNO ARDUINO MEGA
Microcontrôleur ATmega328 ATmega2560
Tension de fonctionnement 5V 5V
Tension d'entrée (recommandé) 7-12 V 7-12 V
Tension d'entrée (limites) 6-20V 6-20V
Broches d’E/S numérique 14 (6 fournissent la sortie PWM) 54 (15 fournissent la sortie PWM)
Broches d'entrée analogiques 6 16
Courant DC par broche d’E/S 20 mA 20 mA
Courant DC de la sortie 3,3V 50 mA 50 mA
Mémoire Flash 32 Ko 256 Ko
SRAM 2 KB 8 KB
EEPROM 1 KB 4 KB
Vitesse d'horloge 16 MHz 16 MHz
Longueur 68,6 mm 101,52 mm
Largeur 53,4 mm 53,3 mm
Poids 25 g 37g
Plan du cours

1. Présentation de carte Arduino


2. Présentation du logiciel Arduino IDE
3. Présentation du logiciel de simulation ISIS Proteus
4. Fonctionnalités de base
2. Présentation du logiciel Arduino IDE

L’Arduino IDE est un logiciel libre disponible en téléchargement gratuit pour les systèmes
d’exploitation Linux, Windows et Mac OS X. L’environnement de développement permet d’éditer
les programmes, les compiler et les charger sur la carte Arduino.

Les étapes à suivre pour installer l’Arduino IDE sous Windows s’enchainent comme suit :
1. Ouvrez le dossier Arduino IDE et avec un clic droit lancez l’installation du logiciel "arduino-
1.8.5-windows.exe" en tant qu’administrateur.
2. Suivez les étapes de l’installation naïvement jusqu’à ce que Windows vous demande
l’autorisation pour installer le pilote USB Arduino, une fois que vous acceptez, l’installation
se termine.
2. Présentation du logiciel Arduino IDE

Il est doté d’un éditeur de code


[1], où la fonction setup contiendra
toutes les opérations nécessaires à la
configuration de la carte et la fonction
loop est exécutée en boucle après
l’exécution de la fonction setup. On
retrouve aussi une barre d’outils
rapide [2] et une barre de menus [3]
pour accéder aux fonctions avancées
de l’IDE. Enfin, une console [4]
affichant les résultats de la compilation
du code source, des opérations sur la
carte, etc.
Plan du cours

1. Présentation de carte Arduino


2. Présentation du logiciel Arduino IDE
3. Présentation du logiciel de simulation ISIS Proteus
4. Fonctionnalités de base
2. Présentation du logiciel de simulation ISIS
Proteus
Proteus est un outil logiciel permettant la conception électronique assistée par ordinateur.
Proteus est composé de deux logiciels principaux : ISIS, permet la création de schémas et la
simulation électrique, et ARES, dédié à la création de circuits imprimés. Grâce à des librairies
additionnels, ISIS est également capable de simuler le comportement d'un microcontrôleur (PIC,
Atmel, 8051, ARM, HC11...) et son interaction avec les composants qui l'entourent.
2. Présentation du logiciel de simulation ISIS
Proteus
L’installation de la version 7.6 de Proteus se fait comme suit :
1. Ouvrez le dossier Proteus 7.6 et lancez l’installation de "setup76 Sp4.exe" en tant
qu’administrateur.
2. Acceptez d’installer WinHelp.
3. Choisissez d’installer votre clé de licence installée localement.
4. Cliquez sur "Next" pour pouvoir indiquer au gestionnaire de licences le chemin de votre clé.
Cliquer en suite sur "Browse For Key File", indiquez le chemin de la clé, puis cliquer sur
"Install", confirmer avec "Yes" et enfin fermer le gestionnaire de licence avec "Close".
5. Poursuivez l’installation, mais n’oubliez pas de cocher "Converter Files" comme
composante à installer.
6. Cliquer sur "Next" jusqu’à fin de l’installation.
2. Présentation du logiciel de simulation ISIS
Proteus

Pour pouvoir simuler les cartes Arduino plus efficacement, il est nécessaire d’ajouter la librairie
Arduino à ISIS. La démarche suivante permet de le faire :
1. Copier les fichiers "ARDUINO.IDX", "ARDUINO.LIB", "AVR2.IDX", et "AVR2.LIB" du dossier
Librairie Arduino pour Proteus et collez-les dans le dossier : "C:\Program Files
(x86)\Labcenter Electronics\Proteus 7 Professional\LIBRARY".
2. Copier le fichier "AVR2.DLL" du dossier Librairie Arduino pour Proteus et collez-le dans le
dossier : "C:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\MODELS".

Maintenant votre logiciel ISIS est capable de simuler Arduino !


2. Présentation du logiciel de simulation ISIS
Proteus
1. Coller « proteus.pro.7.6.sp4-patch.exe » dans C:\Program Files\Labcenter Electronics\Proteus 7
Professional .
2. Désactiver l’anti-virus puis ouvrer le patch en tant qu’administrateur.

3. Cliquer sur Patch, puis aller à C:\Program Files\Labcenter Electronics\Proteus 7 Professional\BIN


(sélectionner le fichier puis cliquer sur OK) puis à C:\Program Files\Labcenter
Electronics\Proteus 7 Professional\MODELS (sélectionner le fichier puis cliquer sur OK)
Plan du cours

1. Présentation de carte Arduino


2. Présentation du logiciel Arduino IDE
3. Présentation du logiciel de simulation ISIS Proteus
4. Fonctionnalités de base
4. Fonctionnalités de base
 Configuration des Entrées/Sorties numériques
Le langage Arduino vient avec un nombre important de fonctions de base permettant
d’interagir avec son environnement. Les fonctions les plus utilisée sont les fonctions
d’entrées/sorties. Ce sont elles qui permettent d’envoyer ou de mesurer une tension sur une
des broches de la carte.
Dans un premier temps, 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(pin, état) en lui donnant la pin concernée et l’état:
void setup(){
pinMode(1,OUTPUT) ; // Pin 1 en sortie
pinMode(2,INPUT) ; // Pin 2 en entrée
}
4. Fonctionnalités de base
 Configuration des Entrées/Sorties numériques
Une fois la configuration est faite, on peut procéder à l’utilisation des broches. Toutes les
broches sont capables d’écrire et de lire des données numériques (c'est-à-dire des 0 (0V) ou des
1 (5V)).

 La fonction digitalRead(pin): mesure une donnée numérique sur une des broches, la
broche en question doit être réglée en entrée.
 La fonction digitalWrite(pin, valeur): écrit une donnée numérique sur une des broches, la
broche concernée doit être réglée en sortie. Le paramètre valeur doit être égal à HIGH
(état 1 soit 5V) ou LOW (état 0 soit 0V).
4. Fonctionnalités de base
 Timers
Les Timers sont utilisés pour une variété de tâches, par exemple, pour gérer le temps
d’appui sur un bouton ou pour générer des signaux modulés en largeur d'impulsion (PWM) pour
le contrôle moteur à titre d’exemple. Le langage Arduino fournis quelques fonctions permettant
de gérer le temps:
 La fonction delay(): suspend le programme durant un laps de temps (en millisecondes)
spécifié comme paramètre.
 La fonction delayMicroseconds(): suspend le programme pour un laps de temps (en
microsecondes) spécifié comme paramètre.
 La fonction millis(): retourne le nombre de millisecondes depuis que la carte Arduino a
commencé à exécuter le programme jusqu’au moment de l’exécution de la fonction millis().
 La fonction micros(): retourne le nombre de microsecondes depuis que la carte Arduino a
commencé l'exécution du programme en cours.
4. Fonctionnalités de base
Premier Programme : BLINK
1. Tout d’abord ouvrez l’Arduino IDE, et allez vers Outils  Type de carte puis choisissez le
type de votre carte (Arduino/Genuino UNO ou Arduino/Genuino MEGA)
2. Allez à Fichier  Exemples  01.Basics  Blink. Le code source du programme est le
suivant :
4. Fonctionnalités de base
Premier Programme : BLINK
Pour pouvoir simuler l’Arduino sur ISIS, il faut lui indiquer le chemin du fichier ".hex" ; pour cela
nous devons activer une fonctionnalité d’Arduino IDE qui permet d’afficher le chemin du fichier
".hex".
1. Allez vers Fichier  Préférences
2. Cochez les deux cases suivantes :
Dès maintenant, à chaque fois que vous compilez un programme, la console en bas d’Arduino
IDE vous permettra de récupérer le chemin absolu de votre fichier ".hex".
4. Fonctionnalités de base
Premier Programme : BLINK
Réalisez le montage suivant sous ISIS, indiquer à la carte Arduino le chemin du programme
puis lancez la simulation du montage.
4. Fonctionnalités de base
Premier Programme : BLINK

 Le bouton ‘’Téléverser‘’ permet de charger le programme sur la mémoire Flash d’Arduino.

La LED de test branchée sur le PIN 13 va commencer à clignoter !


4. Fonctionnalités de base
Exercice 1
Réalisez un montage et écrivez un programme qui permet d’allumer une LED branchée sur le PIN
13 durant 5 secondes une fois un bouton poussoir lié au PIN A0 est actionné..
4. Fonctionnalités de base
Exercice 1 (Solution)
4. Fonctionnalités de base
Exercice 2
Réalisez un montage et écrivez un programme qui permet d’allumer une LED branchée sur le PIN
13 une fois un bouton poussoir actionné (A0). La LED s’éteint une fois un autre bouton poussoir (A5)
est poussé.
4. Fonctionnalités de base
Exercice 2 (Solution)
4. Fonctionnalités de base
Exercice 3
Maintenant nous voulons reprendre l’exercice 2 de la façon suivante : une fois que le bouton ON
est actionné la LED doit rester allumée durant 5 secondes, mais à tout instant si le bouton OFF est
poussé la LED doit s’éteindre instantanément. Réalisez le montage et écrivez un programme.
4. Fonctionnalités de base
Exercice 3 (Solution)
4. Fonctionnalités de base
 Interruptions
Il est parfois nécessaire d’attendre un événement externe (appui
sur un bouton, données d’un capteur, etc.) pour effectuer une
action. Pour ce type de problème, on utilise les interruptions. Il y a 2
broches d'interruption externes sur l’Arduino UNO, INT0 et INT1, et ils
sont mappés sur les broches 2 et 3 de la carte, et a 6 broches
d'interruption externes sur l’Arduino MEGA.
4. Fonctionnalités de base
 Interruptions
 La fonction attachInterrupt(): détermine une routine d'interruption à exécuter quand une
interruption se produit.
Syntaxe de la fonction: attachInterrupt(interruption, routine, mode)
 interruption : Numéro de l’interruption (0 (pin2) ou 1 (pin3))
 routine : fonction à appeler une fois que l’interruption se produit. Cette fonction ne
doit pas prendre de paramètres et ne retourne rien.
 mode : LOW, CHANGE, RISING, ou FALLING.
• LOW : Lorsque la broche est à l’état 0 (0V).
• RISING : Lorsque la broche passe de l’état 0 (0V) à l’état 1 (5V) (front montant).
• FALLING : Lorsque la broche passe de l’état 1 (5V) à l’état 0 (0V) (front descendant).
• CHANGE : Lorsque la broche change d’état (front montant et front descendant).
 La fonction detachInterrupt(): Désactive une interruption.
Syntaxe de la fonction: detachInterrupt(interruption).
4. Fonctionnalités de base
 Interruptions

 La fonction noInterrupts(): permet de désactiver les interruptions. Les interruptions sont


activées par défauts.

 La fonction interrupts(): permet de réactiver les interruptions.


4. Fonctionnalités de base
Exercice 4
Reprenons l’exercice 3, mais cette fois en utilisant la fonction attachInterrupt() (non pas la
fonction millis). Réalisez le montage et écrivez le programme.
4. Fonctionnalités de base
Exercice 4 (Solution)
4. Fonctionnalités de base
 Communication série
Utilisée pour la communication entre la carte Arduino et un ordinateur ou d'autres appareils.
Toutes les cartes Arduino ont au moins un port série. Il communique sur les broches numériques 0
(Rx) et 1 (TX) et avec l'ordinateur via USB.
 Serial.begin(): configuration de la vitesse de transmission de données. Une vitesse s’exprime
en bits par seconde. Les vitesses les plus courantes sont 9600, 19200 et 115200 bits par
seconde.
 Serial.println(): transmet les données au port série sous forme de texte lisible ASCII suivie de
retour à la ligne à la fin du message envoyé.
 Serial.available(): permet d’obtenir le nombre d'octets disponibles pour lecture sur port série.
Ce sont des données qui ont déjà arrivé et ont été stockés dans la mémoire tampon de
réception série (qui détient 64 octets).
 Serial.read(): lit les données série reçues.
4. Fonctionnalités de base
Exercice 5
Réalisez un montage et écrivez un programme qui permet d’afficher l’état du bouton poussoir
connecté au pin A0 (état ‘ON’ ou ‘OFF’ en utilisant la fonction Serial.println())
4. Fonctionnalités de base
Exercice 5 (Solution)
4. Fonctionnalités de base
 Conversion Analogique/Numérique
o Qu’est ce qu’un Convertisseur Analogique Numérique (CAN)?
C’est un dispositif qui convertit des grandeurs analogiques en grandeurs numérique. La valeur
numérique obtenue sera proportionnelle à la valeur analogique fournie en entrée.

Le convertisseur analogique/numérique d’Arduino a une résolution de 10 bits, c’est-à-dire que


chaque valeur analogique réelle entre 0 et 5V sera représentée par un nombre entier entre 0 et
1023.
4. Fonctionnalités de base
 Conversion Analogique/Numérique
Le microcontrôleur de l'Arduino UNO contient 6 Le microcontrôleur de l'Arduino MEGA contient 16 canaux
canaux de conversion analogiques-numérique (A/D) de conversion analogiques-numérique (A/D) configurés sur les
configurés sur les broches analogiques A0 jusqu’à A5. broches analogiques A0 jusqu’à A15.

Entrées analogiques Entrées analogiques


4. Fonctionnalités de base
 Conversion Analogique/Numérique

 La fonction analogRead(pin):

 pin: le numéro de l’entrée analogique.


 La valeur retournée sera le résultat de la conversion analogique numérique (comprise
entre 0 et 1023)
4. Fonctionnalités de base
Exercice 6
Pour créer une variation de la tension, nous allons utiliser un potentiomètre raccordé au pin A0.
Ecrivez un programme qui permet de récupérer la valeur analogique de A0 (utilisez analogRead(A0)) et de
l’afficher sur le moniteur série.
4. Fonctionnalités de base
Exercice 6 (Solution)
Pour créer une variation de la tension, nous allons utiliser un potentiomètre raccordé au pin A0. Ecrivez un
programme qui permet de récupérer la valeur analogique de A0 (utilisez analogRead) et de l’afficher sur le
moniteur série.
4. Fonctionnalités de base
Contrôle de puissance par modulation de largeur d'impulsion (PWM)
PWM : Pulse Width Modulation (ou Modulation à Largeur d’Impulsion) est une technique
pour contrôler la puissance électrique fournie aux appareils. Le signal PWM est constitué d’une
série d’impulsions sous forme d’un signal rectangulaire.

Le principe de la PWM repose sur le rapport cyclique (en anglais Duty Cycle) qui désigne le
fait que le niveau logique 1 peut ne pas durer le même temps que le niveau logique 0. Le rapport
cyclique est mesuré en pourcentage (%). Plus le pourcentage est élevé plus le niveau logique 1
est présent dans la période.
4. Fonctionnalités de base
Contrôle de puissance par modulation de largeur d'impulsion (PWM)

 La fonction analogWrite(pin, value): écrit une valeur sous forme de PWM sur une des
broches réglée en sortie.

 pin: identifiant de la broche de sortie.


 value: valeur du rapport cyclique entre 0 (0%) et 255 (100%).
4. Fonctionnalités de base
Contrôle de puissance par modulation de largeur d'impulsion (PWM)
4. Fonctionnalités de base
Exercice 7
Réalisez un montage et écrivez un programme qui permet la visualisation du signal PWM sur l’oscilloscope attaché
au pin 9, en agissant sur un potentiomètre attaché au pin A0. (en utilisant la fonction analogWrite)
4. Fonctionnalités de base
Exercice 7 (Solution)
Réalisez un montage et écrivez un programme qui permet la visualisation du signal PWM sur
l’oscilloscope attaché au pin 9, en agissant sur un potentiomètre attaché au pin A0. (en utilisant la
fonction analogWrite)
4. Fonctionnalités de base
 Contrôle de moteurs
L’Arduino comme tout cerveau d’un système embarqué est utilisé dans des applications pour
commander et interagir avec des actionneurs mécaniques, parmi lesquels les moteurs. Ce sont des
dispositifs permettant d’effectuer des mouvements physiques à partir d’énergie (dans notre cas
électrique).

 Le moteur DC: ou moteur à courant continu convertit l'énergie électrique


sous forme d’un courant continu en puissance mécanique. Généralement
ces moteurs ont deux bornes, l’application d’une tension continue à ces
bornes conduit à la rotation du moteur dans un sens, l’inversion de la
polarité de la tension le conduit à tourner dans le sens contraire.
4. Fonctionnalités de base
Exercice 8
Réalisez un montage et écrivez un programme qui permet la commande d’un moteur DC 12V
unidirectionnel à l’aide d’un transistor NPN (Darlington) TIP122. Deux boutons poussoirs relié à l’Arduino,
seront responsables de la mise en marche/arrêt du moteur.
4. Fonctionnalités de base
Exercice 8 (Solution)
4. Fonctionnalités de base
 Contrôle de moteurs

 Le servo-moteur: un moteur (rotatif) qui peut effectuer des


rotations très précises (dans une portion de tour seulement) et
en un certain nombre de pas (de micro-déplacements). Il y a
toutes sortes de servo-moteurs. Un des avantages des servo-
moteurs est sa possibilité de maintenir avec force une position
donnée. On peut piloter des rotations avec l’Arduino, quelques
fois directement avec la carte si le moteur n’est pas trop puissant,
sinon en passant par un montage associé.
4. Fonctionnalités de base
 Contrôle de moteurs
 Le servo-moteur:

 Composition: un moteur à courant continu, un circuit électronique pour commander le


moteur avec un signal, un système d'engrenage pour amplifier le couple de rotation et un
potentiomètre qui fournit l’information sur la position (angle de rotation).
 Connexion: le servo-moteur a besoin de trois fils de connexion pour fonctionner. Deux fils
servent à son alimentation, le dernier étant celui qui reçoit le signal de commande:
• : pour l’alimentation (4.5V à 6V en général).
• ou : pour la masse (0V).
• , , ... : entrée du signal de commande, codé en PWM. Cela signifie
que c'est la durée des impulsions qui détermine l'angle absolu de l'axe de sortie et donc
la position du bras de commande du servomoteur. Le signal est répété périodiquement,
en général toutes les 20 millisecondes.
4. Fonctionnalités de base
 Contrôle de moteurs
 Le servo-moteur:

 Commande d’un servomoteur par Arduino: La bibliothèque Servo.h permet à une


carte Arduino de contrôler des servomoteurs. Les modèles standards permettent
l'arbre d’être positionné à divers angles, généralement entre 0 et 180 degrés.

• La fonction attach(): associe un objet "servomoteur" à une broche de l’Arduino.


• La fonction write(): commande l’arbre du servomoteur à tourner vers l’angle donné
en paramètre (0°- 180°).
• La fonction read(): retourne la valeur de l’angle de l’arbre du moteur (0°-180°).
• La fonction detach(): désassocie un servo d’une broche.