Formation Pratique Ats
Formation Pratique Ats
I – Proteus
1 – Présentation de Proteus
PROTEUS est une suite logicielle permettant la CAO (Conception Assistée par
Ordinateur) électronique. Proteus est composé de deux logiciels principaux :
ISIS, permettant entre autres la création et la modélisation de schémas
électrique, et ARES, destiné à la création de circuits imprimés.
2 – Quelques composants de base à connaitre
Vous trouverez dans le tableau ci-dessous l’ensemble des composants
électroniques disponibles dans le logiciel Proteus et utilisés dans ce TP. Vous
ferez systématiquement référence à ce tableau pour connaître les noms exacts
et les catégories des différents composants. Rappelons que l’utilisation des «
Mots clés » accélère la recherche des composants dans la boîte de dialogue «
Pick Devices » de Proteus Cochez la case identique sur tous les mots si vous
saisissez le nom complet du composant dans « Mots clés ».
Nom réel du composant Nom exact du composant (colonne Catégorie
Device dans la catégorie) contenant
à saisir dans Mots clés le
composant
1
Une ampoule LAMP Optoelectronics
Un bouton poussoir BUTTON Switches &
Relays
Un interrupteur simple SWITCH Switches &
Relays
Un interrupteur va-et-vient SW-SPDT Switches &
Relays
Un condensateur CAPACITOR CAPACITOR
Un régulateur de tension +5V ANALOG ICs 7805
Un transformateur INDUCTEUR Transformer
Une tension Vcc (+5V) TERMINAL MODE Power
La masse (0V) TERMINAL MODE Ground
Une diode DIODES 1N4001
2
Remarque au sujet des voltmètres et des ampèremètres :
- Le préfixe DC indique que l’appareil est fait pour mesurer du courant
continu
(DC = Direct Current en anglais = courant continu en français).
- Le préfixe AC indique que l’appareil est fait pour mesurer du courant
alternatif (AC = Alternating Current en anglais = courant alternatif en
français).
Dans la pratique nous ne mesurerons que des courants continus et des
tensions continues en TP : il faut donc systématiquement utiliser le voltmètre
et l’ampèremètre préfixés par DC.
- L’ampèremètre possède 3 calibres (microampère, milliampère et ampère)
qu’il faut choisir consciemment afin d’obtenir une précision maximale dans
la mesure : le choix du calibre n’est pas automatique.
3
Travaux pratiques
Travaux pratiques N°1
Réaliser en Proteus un Montage comportant une pile CELL configurée à 12V,
un interrupteur SWITCH et une ampoule de 12V LAMP puis lancez la simulation
en appuyant sur le bouton Jouer disponible en bas à gauche de l’écran. Cliquez
sur l’interrupteur et observez l’état de l’ampoule. Remarque : le bouton Arrêt
disponible en bas à gauche de l’écran permet d’arrêter la simulation afin de
pouvoir modifier le schéma.
Réponses
Liste des matériels
- Lampe 12V
- Générateur de 12V
L1
- Interrupteur BAT1 12V
12v
4
Réponses
D1
R1
220R
LED-GREEN
D1 D2
R1
220R
LED-GREEN LED-GREEN
D3
R2
220R
LED-GREEN
D4
R3
220R
LED-GREEN
5
Mesure des tensions aux bornes de chaque lampe
D1 D2
R1
220R
LED-GREEN LED-GREEN
+2.80
Volts
+2.20
Volts
+5.00
Volts
D3
R2
220R
LED-GREEN
D4
R3
220R
LED-GREEN
+5.00
Volts
On constate qu’en parallèle l’éclat des LED est plus important quand série
Travaux pratiques N°3
Réaliser dans Proteus une alimentation DC +5V, 9V et 12V
Réponses
Matériels
Transformateur abaisseur de tension (220V~, 12V ~) : Ce composant
électrique permettra d’abaisser la tension de la source en une tension de 12
V sans changer la nature
TR1
220 V~ 12 V ~
TRAN-2P2S
6
D1 D3
1N4001 1N4001
D2 D4
1N4001 1N4001
C1
100u
U1 U2
7805 7809
1 3 1 3
VI VO VI VO
GND
GND
U3
2
7812
1 3
VI VO
GND
2
Schéma de l’alimentation
U1 U2 U3
7812 7809 7805
1 3 1 3 1 3
VI VO VI VO VI VO
GND
GND
GND
TR1 D1 D3
1N4001 1N4001
2
C1 C2
100u 100u
TRAN-2P2S
D2 D4
1N4001 1N4001
7
II - Présentation d’Arduino
Arduino est une plateforme matérielle et logicielle de développement
d'applications embarquées. Côté matériel, elle se compose d'une carte
électronique basée autour d’un microcontrôleur comportant un certain
nombre d’entrées et de sorties (les ports) permettant la connexion de
capteurs, ou d’actionneurs. Le logiciel de programmation des modules
ARDUINO est une application Java, libre et multi- plateformes, servant
d’éditeur de code et de compilateur, et qui peut transférer le programme au
travers de la liaison USB.
1- Présentation de la carte
Pour commencer notre découverte de la carte Arduino, je vais vous présenter
la carte en elle-même. Nous allons voir comment s’en servir et avec quoi.
8
Constitution de la carte
Voyons quels sont ces points importants et à quoi ils servent.
- Le microcontrôleur
Voilà le cerveau de notre carte (en 1). C’est lui qui va recevoir le programme
que vous aurez créé et qui va le stocker dans sa mémoire puis l’exécuter.
Grâce à ce programme, il va savoir faire des choses, qui peuvent être par
exemple : faire clignoter une LED, afficher des caractères sur un écran,
envoyer des données à un ordinateur …
- Alimentation :
Pour fonctionner, la carte a besoin d’une alimentation. Le microcontrôleur
fonctionnant sous 5V, la carte peut être alimentée en 5V par le port USB (en
9
2) ou bien par une alimentation externe (en 3) qui est comprise entre 7V et
12V. Cette tension doit être continue et peut par exemple être fournie par
une pile 9V. Un régulateur se charge ensuite de réduire la tension à 5V pour
le bon fonctionnement de la carte. Pas de danger de tout griller donc !
Veuillez seulement à respecter l’intervalle de 7V à 15V.
- Visualisation
Les trois points blancs entourés en rouge (en 4) sont en fait des LED dont la
taille est de l’ordre du millimètre. Ces LED servent à deux choses :
Celle tout en haut du cadre : elle est connectée à une broche du
microcontrôleur et va servir pour tester le matériel : Quand on branche la carte
au PC, elle clignote quelques secondes. Les deux LED du bas du cadre : servent
à visualiser l’activité sur la voie série (une pour l’émission et l’autre pour la
réception). Le téléchargement du programme dans le microcontrôleur se
faisant par cette voie, on peut les voir clignoter lors du chargement.
- La connectique
La carte Arduino ne possédant pas de composants qui peuvent être utilisés
pour un programme, mis a par la LED connectée à la broche 13 du
microcontrôleur, il est nécessaire de les rajouter. Mais pour ce faire, il faut les
connecter à la carte. C’est là qu’intervient la connectique de la carte (en 5a et
5b). Par exemple, on veut connecter une LED sur une sortie du
microcontrôleur. Il suffit juste le la connecter, avec une résistance en série, à la
carte, sur les fiches de connections de la carte. Cette connectique est
importante et a un brochage qu’il faudra respecter. Nous le verrons quand
nous apprendrons à faire notre premier programme. C’est avec cette
connectique que la carte est “extensible”, car l’on peut y brancher tous types
de montages et modules.
- Créez votre premier programme sur Arduino
Dans ce programme nous allons apprendrons à clignoter une LED
Mais d’abord familiarisons-nous un peu avec le logiciel Arduino
Bon, il faut savoir que le langage utilisé par le logiciel Arduino pour
programmer le microcontrôleur est basé sur les langages C/C++.
Pour ceux qui sont déjà initiés, cette section vous semblera d’une clarté
cristalline. Toutefois, quelques différences subtiles ont été introduites par les
10
ingénieurs pour correspondre au fonctionnement du microcontrôleur, je vous
conseille donc tout de même une lecture attentive. ;)
Vous allez de ce pas créé les premières lignes de votre premier programme
Arduino. À partir de maintenant, il va falloir admettre que si votre programme
plante, ce n'est pas la faute de l'ordinateur ou de l'Arduino, mais la vôtre. En
effet, un ordinateur, même de la taille de l'Arduino, va vous obéir au doigt et à
l'œil, mais jamais ne réfléchira par lui-même. Donc si la série d'instructions que
vous lui donnez l'amène à sa destruction, et bien il se détruira. Ou au mieux, il
se bloquera. Nous allons donc devoir apprendre à éviter ces situations
énervantes que provoquent les bugs.
Mais voyons plutôt notre premier programme. Je vais vous demander d'ouvrir
le logiciel Arduino, pour le moment nous n'allons pas connecter la carte à votre
ordinateur. Une fois la fenêtre d'accueil ouverte, vous allez taper dans la zone
blanche ce qui suit (soyez rigoureux et faites attention aux ponctuations et
majuscules) :
void setup ()
{
void loop ()
{
}
Voici ce que ça donne sur votre console de programmation :
Pour ceux qui ont une version récente d’Arduino, ces lignes apparaîtront par
défaut dans la fenêtre, je vous demanderai de tout effacer et d'écrire à partir
de la page blanche, c'est pour mieux comprendre la suite.
Alors vous avez sûrement remarqué que les mots se colorent lorsqu'on les a
saisis. C'est un petit plus très pratique qui s'appelle la coloration syntaxique.
11
Elle est très employée en informatique. Elle nous permet de faire la différence
entre les mots clés du langage utilisé, et les autres.
Ces cinq boutons sont quasiment les seuls que nous aurons à utiliser pour
lancer le programme (nous verrons d'autres fonctionnalités par la suite). Nous
allons donc les étudier un par un dans ce chapitre. Vous remarquerez qu'en les
survolant, un texte d'aide s'affiche sur la droite des icônes.
Le premier bouton à gauche : le V de vérifier.
12
Ça signifie que le programme est correct.
En fait le programme que vous écrivez n'est pas celui que recevra l'Arduino.
C'est un programme adapté pour que les humains le lisent et le comprennent
sans trop de difficulté. La machine, elle, ne comprend que le langage machine,
une succession de 1 et de 0, qu'elle va interpréter et exécuter.
La compilation est la transformation du langage de programmation utilisé par
l'homme, en langage machine utilisé par la machine. C'est d'ailleurs le rôle de
l'interface pour l'Arduino.
Vous pouvez maintenant essayer de modifier votre programme en enlevant la
première accolade, vous cliquez la vérification et vous obtenez en bas un
message du genre :
On sent tout de suite à la couleur qu'il se passe quelque chose de pas net, et on
a raison !
13
Le logiciel de l'Arduino propose aussi un petit débuggeur. Il ne va pas vous
réparer tout seul l'erreur, mais il vous indique où il pense qu'elle se trouve.
C'est ce qui se passe dans notre cas.
Les erreurs fréquentes sont que vous avez oublié de taper quelque chose ou
que vous n'avez pas respecté le format attendu. Dans les premiers temps, vous
oublierez surtout des points-virgules et des fermetures d'accolades ou de
parenthèses. Plus tard, les problèmes se corseront car le logiciel ne verra pas
forcément d'erreur et pourtant votre programme ne fera pas ce que vous
souhaitez. Mais nous n'en sommes pas là.
Je vous conseille de vous amuser dès le début à créer des erreurs volontaires.
Elles vous permettront de mieux comprendre le fonctionnement du débuggeur
et vous dérouteront moins par la suite.
Passons à l'icône suivante :
La flèche de téléversement
14
Ecrivons un code qui nous permettra de clignoter une LED
Code
int led =2 ; // nous avons initier la led sur le port 2 de la carte
}
NB :
Le point-virgule à une importance primordiale ! Il indique à l'Arduino la fin
d'une instruction. Si vous l'oubliez (et vous l'oublierez parfois) le programme ne
pourra pas se compiler.
J'attire votre attention sur des nouveaux mots-clés : pinMode (),
digitalWrite (), OUTPUT, HIGH , LOW.
Ils ne sont pas colorés pareil, nous verrons plus tard pourquoi. Vous observez
que la structure de tout à l'heure n'a pas changé, on a juste ajouté entre les
accolades des instructions.
. Ce sont des valeurs que l'Arduino connaît et utilise. Dans notre cas, le mot clé
HIGH signifie "valeur haute". Il existe son contraire : LOW qui signifie "valeur
15
basse". On pourrait aussi dire que HIGH vaut 1 et LOW vaut 0, ou encore que
HIGH veut dire que la connexion est à +5V et LOW, qu'elle est à est à 0V.
SIM1
AREF
13
ARDUINO
RESET 12
~11
5V ~10
SIMULINO ~9
POWER
GND 8
ATMEGA328P
DIGITAL (PWM~)
7
~6
ATMEL
ANALOG IN
A0 ~5 R1
A1 4
A2 ~3
220R LED1
A3 2 LED-RED
A4 TX > 1
A5 RX < 0
www.arduino.cc
blogembarcado.blogspot.com
SIMULINO UNO
SIM1
AREF
13
ARDUINO
RESET 12
~11
5V ~10
~9
SIMULINO
POWER
GND 8
ATMEGA328P
DIGITAL (PWM~)
7
~6
ATMEL
ANALOG IN
A0 ~5
R1
A1 4
A2 ~3
220R LED1
A3 2 LED-RED
A4 TX > 1
A5 RX < 0
www.arduino.cc
blogembarcado.blogspot.com
SIMULINO UNO
En résumé
Vous savez maintenant connecter votre Arduino, écrire la structure de base
d'un programme, sauvegarder et transférer le programme dans le
microcontrôleur, et débugger certaines erreurs de code.
Vous avez appris les mots-clés :
setup() qui s'exécute qu'une fois ;
loop() qui s'exécute à l'infini ;
16
void (qui se met toujours devant loop et setup et dont vous comprendrez
le sens plus loin dans ce cours) ;
pinMode() qui permet de définir une sortie en mode envoi d'électricité
ou non ;
digitalWrite () qui envoie de l'électricité par une sortie ;
delay() qui met le programme en pause pendant un nombre défini de
millisecondes.
Vous savez aussi que les accolades délimitent des blocs d'instructions et que le
point-virgule termine une instruction.
17
TRAVAUX PRATIQUES ET APPLICATION COURS
Travaux Pratiques NO1
Ecrire un code Arduino pour réaliser un chenillard de 5 LED qui s’allume les
unes après les autres dans un sens et s’éteint les unes après les autres dans
l’autre sens.
Liste matériels Code arduino
Schéma de câblage
Schéma de câblage
19
Travaux Pratiques NO3
Réalise un Feu tricolore à deux temps
Liste matériels
Schéma de câblage
20
PREMIERE EVALUATION SOMMATIVE
EPREUVE : Programmation arduino
NOM : …………………………………………………………
PRENOMS : ………………………………………………………
NIVEAU : ………………
NOTE
Exercice 1
Le schéma ci-dessous est celui de câblage d’un feu tricolore à deux temps
permettant de gérer le trafic routier d’un carrefour
FEU 2 FEU 1
SIM1
AREF
13
ARDUINO
RESET 12
~11
5V ~10
~9
SIMULINO
POWER
GND 8
ATMEGA328P
DIGITAL (PWM~)
7
~6
ATMEL
ANALOG IN
A0 ~5
A1 4
A2 ~3
A3 2
A4 TX > 1
A5 RX < 0
www.arduino.cc
blogembarcado.blogspot.com
SIMULINO UNO
21
void setup() {
// boucle d’innitiation
pinMode (1, OUTPUT);
pinMode(2, OUTPUT); ………………….……………………………………………………………
pinMode(3, OUTPUT); ……………………………………………………………………………….
pinMode(4, OUTPUT); ……………………………………………………………………………….
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop() {
// Boucle infinie
digitalWrite(rouge2, HIGH); // ………………………………………………………………………………
digitalWrite(jaune1,HIGH);
delay(100);
digitalWrite(jaune1,LOW);
delay(100);
digitalWrite(jaune1,HIGH);
delay(100);
digitalWrite(jaune1,LOW); ………………………………………………………………………
delay(100);
digitalWrite(jaune1,HIGH); ……………………………………………………………………….
delay(100);
digitalWrite(jaune1,LOW);
delay(100);
digitalWrite(jaune1,HIGH);
delay(100);
digitalWrite(jaune1,LOW);
delay(100);
digitalWrite(jaune1,HIGH);
delay(100);
digitalWrite(jaune1,LOW);
delay(100);
digitalWrite(rouge1,HIGH); // ……………………………………………………………………………
22
// FEU 2
digitalWrite(rouge2,LOW); // ……………………………………………………………………………………
digitalWrite (vert2, HIGH); // ……………………………………………………………………………………
delay (3000); // ……………………………………………………………………………………
digitalWrite (vert2, LOW); // ……………………………………………………………………………………
23
Exercice 2
Un super marché de la place vous invite à lui réaliser une enseigne lumineuse
nommée O P E N. Réalise le schéma de câblage et propose le code pour
l’allumage (tu allumeras les caractères les l’une après les autres en utilisant une
temporisation d’une seconde dans un premier temps et tu feras clignoter toutes
les caractères deux fois dans un second temps).
24
A- Etude des composants et capteurs Arduino
Plusieurs composant et capteurs fonctionnent sous Arduino en 3,3V ou en 5V
max. Pour piloter un composant dont la tension électrique dépasse 5V avec
Arduino il faudra utiliser un relais.
1- Les composants (actionneurs)
a- Les moteurs à courant continu
C’est une machine rotative qui convertit l’énergie électrique à courant continu
en énergie mécanique et inversement.
Symbole :
Schéma :
b- Driver L 298N
Le module L 298N est une carte de développement basé sur le circuit intégré
L298N permettant de piloter les moteurs à courant continu dans les deux sens.
Il peut piloter deux moteurs cc. Il délivre un courant de sortir allant jusqu’à 2A.
Image :
25
Application
Réalise dans Proteus le schéma de câblage d’un moteur CC et écris un
algorithme pouvant contrôler sa rotation dans les deux sens. (Ajoute un code
pour faire varier sa vitesse de rotation). Utilise le schéma de câblage ci-
dessous.
Résultat
26
C- Servo moteur
Un servo moteur souvant abrégé “ Servo” est un moteur à type particulier très
utilisé pour faire tourner un objet jusqu’à une position bien précise et capable
de maintenir cette position jusqu’à l’arrivée d’une nouvelle instruction. Il
comporte 3 fils,
Rouge pour le Vcc ; Noir pour le ground et le Jaune pour la commande
numérique
Image :
Application
Reproduis le schéma ci-dessous dans Arduino et écris un code pour faire
fonctionner le servo pour une position angulaire de O° - 90° - 180°.
27
D- Module relais
Comme le microcontroleur de Arduino ne déliver que 5V max en continu, pour
piloter un actionneur sous tension continue ou alternative supérieur à 5V, il nous
faut un relais.
Nous allons utiliser le module relais compatible avec Arduino et facile à utilser.
Le module relais est constitué d’un électroaimant et d’un contacteur mécanique.
Lorsque le courant est suffisamment important sur la borne d’entrée, le
solénoïde se magnétise ce qui force le contacteur à fermer le circuit de
puissance. Le module relais est très utilsée pour faire le lien entre électronique
et l’électricité. Il permet d’ouvrir ou de fermer un contacteur sur un circuit de
puissance en fonction d’un signal entre O et 5V.
Image:
Application
Écris un code arduino pour clignoter une lampe de 220V.
Schéma de càblage
28
E- Afficheur 7 segments
Un afficheur 7 segments est un composant électronique permettant
d’afficher les chiffres décimaux et hexadécimaux. Il est compose de 7 LED
Image:
29
Tableau de remplissage des chiffres et lettres
NB : Allumer = 1 ; Eteund = 0
a b c d e f g
Application1
Fait un schéma de càblage en Proteus et écris un code Arduino pour afficher les
caractères hexadécimaux.
30
31
32
Application 2
Utilise le schéma du feu tricolore précédent et dynamise le avec un afficheur
sur chaque bloc de feu.
33
34
B- Etude des capteurs
a- Capteur ultra son (HC- 04)
Le Capteur HC-SR04 est un Capteur à ultrason low cost. Il fonctionne avec une
tension d’alimentation de 5V, et dispose d’un angle de mesure de 15° environ
et permet de faire des mesures de distance entre 2 cm et 4 m avec une
precision de 3 mm.
Image:
Application
Propose un code arduino pour controller l’allumage et extinction d’une led
lorsque le Capteur ultrason détect ou non.
35
b- La télécommande IR
C’est une télécommande utilisée pour controller les éléments connectés à
Arduino. Elle est sans fil et composée d’un encodeur et d’une LED émettrice.
Lorsqu’on appuie sur un bouton de la télécommande, il y a un signal binaire
qui est envoyé à l’encodeur. L’encodeur convertit le signal binaire en un signal
électrique module. Ce signal est envoyé à la diode émettrice qui convert le
signal électrique en un signal lumieneux (infrarouge).
Image:
Application
Propose un code arduino pour controller l’allumage et extinction d’une led
lorsque la LED IR détecte ou non.
36
37
C- Module Peltier
C’est un composant électronique qui alimenté sous 12V, il donne de la chaleur
ou de la fraicheur selon sa face. Il est souvant utilisé dans les minis projets de
fabrication de mini-réfrigérateur
Image :
38