0% found this document useful (0 votes)
3 views60 pages

Introduction à l'Électronique et Arduino

N

Uploaded by

Hamza El otmani
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views60 pages

Introduction à l'Électronique et Arduino

N

Uploaded by

Hamza El otmani
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Notions de base en Electronique

& Arduino Platform

Pr. Mejhoudi
Objectifs
Notions de base
Les systèmes embarqués
Les microcontrôleurs

 Acquérir des notion de base sur l’électronique, les systèmes embarqués et les
microcontrôleurs.
 Maitriser les outils de simulation et de développement sur la plateforme
Arduino. (Arduino IDE et ISIS Proteus)
 Découvrir les fonctionnalité de la carte Arduino.
 S’expérimenter à développer des prototypes d’objets interactifs.
Objectifs de la formation Le courant électrique
Notions de base La tension
Les systèmes embarqués La résistance
Les microcontrôleurs Le courant continu et le courant alternatif

Un électron est une particule élémentaire, c’est “un grain d’électricité”.

L’électricité est un déplacement d’électrons dans un matériau conducteur.

Les électrons se déplacent dans la même direction dans un circuit.


Objectifs de la formation Le courant électrique
Notions de base La tension
Les systèmes embarqués La résistance
Les microcontrôleurs Le courant continu et le courant alternatif

L’intensité (I) aussi appelée le courant est le débit(*) d’électrons circulants dans un matériau conducteur, elle se
mesure en Ampères (A).
Plus il y a d’électrons qui circulent à travers un circuit, plus la valeur du courant est forte.

(*) un débit est une quantité par seconde. Par exemple le débit du robinet est de 1 litre par seconde.
Objectifs de la formation Le courant électrique
Notions de base La tension
Les systèmes embarqués La résistance
Les microcontrôleurs Le courant continu et le courant alternatif

Tension (U) – ou généralement la différence de potentiel électrique est définie comme la quantité de travail
nécessaire pour déplacer une charge.

Autrement dit, la tension est la force qui permet aux électrons de bouger
dans un matériau conducteur, elle se mesure en Volts (V) qui est définie
comme Joule de travail par Coulomb de charge.
Objectifs de la formation Le courant électrique
Notions de base La tension
Les systèmes embarqués La résistance
Les microcontrôleurs Le courant continu et le courant alternatif

Résistance -l'opposition à l'écoulement de la charge électrique. Il se trouve dans les composants électriques, telles que
les ampoules et beaucoup d’autres éléments chauffants. L’unité de mesure de résistance est l’ohm (Ω).

• Plus la tension est importante aux bornes d‘une résistance, plus le courant qui la traverse est fort.

• Plus la résistance est grande, plus le courant à des difficultés à passer.

• Inversement, plus la résistance est faible, plus le courant passe facilement.

Loi d’Ohm
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

Le courant électrique peut être en courant continu (DC) ou courant alternatif (AC).

Le courant continu tel que celui généré par les batteries est caractérisé par une direction uniforme d'écoulement et une
quantité (tension) uniforme d'électricité.

Le courant alternatif est caractérisé par la direction de l'écoulement et une quantité d'électricité qui change de manière
cyclique en fonction du temps.
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

La résistance
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

Code couleur des résistances


Les bandes de couleurs autour de la résistance permettent
d‘en connaître la valeur.
• Dans le cas d‘une résistance à 4 bandes, les 2 premières
bandes donnent les chiffres significatifs (avec une
résistance à 5 bandes les 3 premières bandes donnent les
chiffres significatifs).
• La bande suivante indique le multiplicateur (il faut
multiplier les chiffres significatifs par cette valeur).
• La bande suivante indique la tolérance (incertitude sur la
valeur réelle de la résistance donnée par le fabricant).
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

La loi d‘Ohm Loi d’additivité des tensions Loi d’unicité des tensions Diviseur de tension

La tension aux bornes d’un


La loi d‘Ohm lie l‘intensité du ensemble de dipôles Lorsqu’ils sont branchés en
courant qui circule dans un électriques branchés en série dérivation, la tension aux
composant électrique à la est égale à la somme des bornes de plusieurs dipôles
tension à ses bornes et à sa tensions aux bornes de chacun électriques est identique.
résistance. d’eux. U1 = U2
U=RxI U = U1 + U2
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

La diode
Une diode est un appareil semi-conducteur qui agit principalement comme
commutateur à sens unique de courant. Elle permet au courant de circuler
facilement dans une direction, mais restreint fortement le courant de circuler
dans la direction opposée.
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

Diode électroluminescente

Une diode électroluminescente ou light-emitting diode (LED) émet de la


lumière lorsqu’elle est parcourue par un courant.
Une diode ne laisse passer le courant que dans un sens, de l’anode (+) vers la
cathode (-). L’anode est la broche la plus longue.

Attention à ne pas faire passer un courant trop fort dans une LED, sinon elle
risque de “griller”. L’utilisation d’une résistance est obligatoire.
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

Le condensateur
Un condensateur est un composant passif qui possède deux
armatures conductrices séparées par un isolant.

Des charges électriques opposées vont pouvoir être stockées sur


ces deux armatures.

Un condensateur peut être vu comme un accumulateur


d’énergie, mais il a de nombreux autres usages (filtrage des
parasites, temporisation, éviter les discontinuités de tension…).

Un condensateur est caractérisé par sa capacité, qui correspond


au pouvoir qu’a ce dernier à emmagasiner de l’énergie.

L’unité de capacité est le Farad (F). Plus sa capacité est grande,


plus le condensateur peut emmagasiner de l’énergie.
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

Le transistor

Un transistor bipolaire NPN possède 3 bornes :


le collecteur par lequel le courant entre dans le
transistor, l’émetteur par lequel le courant sort du
transistor et la base qui commande le passage du
courant.
En fonction du courant reçu sur sa base, le
transistor va laisser passer une certaine proportion
(tout, rien, en partie) du courant du collecteur vers NPN
l’émetteur.
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

Le relais

Les relais sont des commutateurs à commande électrique


qui permettent à un circuit électrique de commander un
ou plusieurs autres circuits en ouvrant et en fermant ses
contacts en réponse à la mise sous tension ou hors tension
de sa bobine.
Objectifs de la formation La tension
Notions de base La résistance
Les systèmes embarqués Le courant continu et le courant alternatif
Les microcontrôleurs Les composants électroniques de base

Platine d’expérimentation (breadboard)

 Les connecteurs sont reliés entre eux par 5 (exemple en


violet a2, b2, c2, d2 et e2 sont reliés ensemble)

 Il n’y a pas de lien électrique au travers de la ligne de


partage du milieu (en jaune)

 Les connecteurs des lignes extérieures sont reliés entre eux


(exemple en vert tous les connecteurs sont utilisés pour
connecter la masse (GND)
Objectifs
Notions de base
Les systèmes embarqués
Les microcontrôleurs

Un système embarqué est un système de calcul avec une fonction bien déterminée au sein d'un système
mécanique ou électrique plus grande, souvent avec des contraintes de calcul en temps réel. Il est intégré dans le
cadre d'un dispositif complet comprenant souvent d’autres périphériques et des actionneurs mécaniques.
Objectifs
Notions de base
Les systèmes embarqués
Les microcontrôleurs

ASIC
µC
CPU

FPGA
Notions de base
Les systèmes embarqués
Les microcontrôleurs
Présentation de la plateforme Arduino
Notions de base
Les systèmes embarqués
Les microcontrôleurs
Présentation de la plateforme Arduino

L’Arduino UNO en chiffres


Référence Broches d’E/S
Bouton de Masse LED de test
analogique numériques Microcontrôleur : ATmega328
remise à
zéro PIN13 (2-13)
Entrée
Tension de fonctionnement : 5V
Port USB série Tension d'entrée (recommandé) : 7-12 V
Échange de Tension d'entrée (limites) : 6-20V
données et
alimentation
Sortie Broches d’E/S numérique : 14 (dont 6 fournissent la sortie PWM)
série
Aľmega328 Broches d'entrée analogiques : 6

Quartz
(Horloge)
LED témoin Courant DC par broche d’E/S : 40 mA
d’alimentation
Régulateur de Broches
Courant DC de la sortie 3,3V : 50 mA
tension ICSP Mémoire Flash : 32 Ko dont 0,5 KB utilisé par bootloader
LEDs témoin SRAM : 2 KB EEPROM : 1 KB
de communication
série
Vitesse d'horloge : 16 MHz
Entrée
d’alimentation Longueur : 68,6 mm
Entrées
Masse Entrée analogiques Largeur : 53,4 mm
Broche de
remise à
Sortie 3.3V
Sortie 5V d’alimentation Poids : 25 g
zéro régulée
Les systèmes embarqués
Les microcontrôleurs
Présentation de la plateforme Arduino
Premier Programme : Blink

void setup() {
pinMode(13, OUTPUT);
}

void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

La fonction delay()
La fonction Delay() Suspend le programme durant un laps de temps (en millisecondes) spécifié comme
paramètre.
void setup() {
pinMode(13, OUTPUT);
}

void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 1 :
Le but de l’exercice est d’écrire un programme qui fait clignoter une LED avec un delay graduel au fil du
temps ; au début la LED commencera à clignoter à 100ms de pause, et à chaque itération du programme la
pause va se doubler.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 1 : Solution
int LED=13;
int i=100;
void setup() {

pinMode(LED, OUTPUT);
}

void loop() {
digitalWrite(LED, HIGH);
delay(i);
digitalWrite(LED, LOW);
delay(i);
i=i*2;
}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 2 :

Nous voulons réaliser un montage qui permet


d’allumer une LED branchée sur le PIN 13 durant
5 secondes une fois un bouton poussoir actionné. Le
bouton poussoir est lié au PIN A0. Réaliser le
montage et écrivez le programme approprié.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 2 : Solution int LED=13;


int bouton=A0;
int etat;
void setup() {
pinMode(LED, OUTPUT);
pinMode(bouton, INPUT);
}
void loop() {
etat=digitalRead(bouton);
if(etat==0)
{
digitalWrite(LED, HIGH);
delay(5000);
digitalWrite(LED, LOW);
}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 3 :
Réalisez un montage 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é.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

int LED=13;
Exercice 3 : Solution int boutonON=A0;
int boutonOFF=A5;

void setup() {

pinMode(LED, OUTPUT);
pinMode(boutonON, INPUT);
pinMode(boutonOFF, INPUT);
}

void loop() {

if(digitalRead(boutonON)==0)
digitalWrite(LED, HIGH);
if(digitalRead(boutonOFF)==0)
digitalWrite(LED, LOW);
}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Casse-tête 1:

Maintenant nous voulons reprendre l’exercice 3 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.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

La fonction millis()

Retourne le nombre de millisecondes depuis la carte Arduino a commencé à exécuter le


programme jusqu’au moment de l’exécution de la fonction millis(). La valeur de retour de millis()
est remise à zéro après 50 jours de fonctionnement.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Casse-tête 1: Solution
void loop() {
int LED=13; present=millis();
int boutonON=A0; if(digitalRead(boutonON)==0)
int boutonOFF=A5; {
long passe; digitalWrite(LED, HIGH);
long present=0; passe=millis();
void setup() { }
pinMode(LED, OUTPUT); if(digitalRead(boutonOFF)==0||present-
pinMode(boutonON, INPUT); passe>5000)
pinMode(boutonOFF, INPUT); {digitalWrite(LED, LOW);}
} }
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 4 :
Réutiliser le même montagequi précède, cette fois pour restreindre le droit de l’utilisateur à allumer la
LED qu’une fois toutes les 20 secondes.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 4 : Solution
int LED=13;
int boutonON=A0;
int boutonOFF=A5;
if(digitalRead(boutonON)==0&&present-ON>20000)
long passe;
{
long ON=20001;
digitalWrite(LED, HIGH);
long present;
ON=millis();
void setup() {
passe=millis();
pinMode(LED, OUTPUT);
}
pinMode(boutonON, INPUT);
if(digitalRead(boutonOFF)==0||present-passe>5000)
pinMode(boutonOFF, INPUT);
digitalWrite(LED, LOW);
}
}
void loop() {
present=millis();
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

La fonction micros()

Retourne le nombre de microsecondes depuis la carte Arduino a commencé l'exécution du programme en


cours. La fonction a une résolution de 4 microsecondes (Arduino UNO) et sa valeur de retour est remise à
zéro après 70 minutes de fonctionnement.

La fonction delayMicroseconds()

Suspend le programme pour un laps de temps (en microsecondes) spécifié comme paramètre.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Les interruptions

Un programme s’exécute sur un µcontrôleur qui tourne normalement d’une façon séquentielle : instruction par
instruction.

Une interruption est un événement extérieur qui interrompt le programme en cours et exécute un programme
spécial (routine d'interruption). Après la routine d’interruption a été terminé, le programme en cours se
poursuit avec l'instruction suivante.

Une Instruction signifie une seule instruction de la machine, et non pas une ligne de code.

Autrement dit une interruption est un réflexe à une excitation, que le µC doit exécuter sans y réfléchir.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Les interruptions

Le processeur au cœur de tout Arduino a deux types d'interruptions: externe et par changement d’état d’une
broche (pin). Il y a seulement deux broches d'interruption externes sur l’Arduino, I NT 0 et INT1, et ils sont
mappés sur les broches 2 et 3 de la carte.
Ces interruptions peuvent être configurées pour déclencher sur front montant (RISING), descendant
(FALLING), ou zéro logique (LOW). Les déclencheurs sont interprétés par le matériel, et l'interruption est très
rapide.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Les interruptions

La fonction noInterrupts()

La fonction noInterrupts() permet de désactiver les interruptions. Les interruptions sont activées par défauts.

La fonction interrupts()

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


Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Les interruptions

La fonction attachInterrupt()
Détermine une routine d'interruption nommé (ISR) pour l’exécuter quand une interruption se produit. Elle
remplace toute fonction précédente qui a été attaché à l'interruption.
La plupart des cartes Arduino ont deux interruptions externes: numéros 0 (sur la broche numérique 2) et 1
(sur la broche numérique 3).
Syntaxe de la fonction : attachInterrupt(interruption, routine, mode)

Interruption : Numéro de l’interruption (0 (pin 2) 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.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Les interruptions

La function detachInterrupt()
Désactive une interruption.
Syntaxe de la fonction: detachInterrupt(interrption)
Interruption : Numéro de l’interruption
Remarque : Typiquement les variables globales sont utilisées pour transmettre des données entre une routine
et le programme principal. Pour s'assurer que les variables utilisées dans une routine sont correctement
mises à jour, déclarez-les comme volatile.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 5 :
Reprenons le casse-tête 1, nous allons nous forcer à le résoudre mais cette fois sans avoir recourt à la
fonction millis() ni aux autres fonction du temps.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 5 : Solution
if(digitalRead(boutonON)==0)
volatile int LED=13;
{
int boutonON=A0;
digitalWrite(LED, HIGH);
void setup() {
delay(5000);
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
pinMode(boutonON, INPUT);
}
attachInterrupt(0, OFF, LOW);
}
}
void OFF() {
void loop() {
digitalWrite(LED, LOW);
}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Utilisé 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 (également connu comme un UART ou USART).
Il communique sur les broches numériques 0 (Rx) et 1 ( T X ) et avec l'ordinateur via USB.
Ainsi, si vous utilisez ces fonctions, vous ne pouvez pas utiliser également broches 0 et 1 comme entrée
ou sortie numérique.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

La fonction begin()

Cette fonction une fois insérée dans la partie setup du programme, permet d’initialiser le port série de la carte
Arduino. La vitesse de transmission des données est donnée en paramètre à la fonction [Link]().

Exemple :

void setup() {
[Link](9600);
}
void loop() {}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

La fonction println()

Transmet les données au port série sous forme de texte lisible ASCII suivie d'un caractère de retour

chariot (ASCII 13, ou '\ r') et un caractère de nouvelle ligne (ASCII 10, ou '\ n').

Exemple :
void setup() {
[Link](9600);
}
void loop() {
[Link](“Hello world”);
delay(500);
}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 6 :
Réaliser un montage sous ISIS, reliant la carte Arduino à un moniteur série (Virtual Terminal). Le moniteur
servira à afficher l’état du bouton poussoir connecté au pin A0 en temps réel.
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 6 : Solution int bouton=A0;


int valeur;
void setup() {
pinMode(bouton,INPUT);
[Link](9600);
}
void loop() {
valeur = digitalRead(bouton);
if(!valeur)
[Link]("ON");
else
[Link]("OFF");
delay(10);
}
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

La fonction available()

Lorsque la carte Arduino est configurée pour recevoir des données sur le port série, il est nécessaire de pouvoir
vérifier à tout instant si une nouvelle trame de données a été reçue est prête à être traité. La fonction
[Link]() permet d’obtenir le nombre d'octets (caractères) 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).

La fonction read()

Lit les données série reçues.


Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 7 :
Réalisons un montage de simulation qui consiste à transmettre des caractères à la carte Arduino via le
terminal virtuel. Arduino retransmettra chaque caractère au terminal virtuel pour qu’il soit affiché
Présentation de la plateforme Arduino
Premier Programme : Blink
Timers et interruptions
Communication série

Exercice 7 : Solution
char flux;
void setup() {
[Link](9600);
}
void loop() {
if ([Link]() > 0)
{
flux = [Link]();
[Link]("Vous avez tappe:");
[Link](flux);
}
delay(10);
}
Premier Programme : Blink
Timers et interruptions
Communication série
Conversion Analogique/Numérique

Les µcontrôleurs ATMega utilisés pour l'Ar duino contiennent six canaux de conversion analogiques-numérique
(A/D). Le convertisseur 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.

La fonction analogRead()
Lit la valeur de la broche analogique spécifiée.
Syntaxe : analogRead(pin)
pin : A0-A5

Entrées analogiques
Premier Programme : Blink
Timers et interruptions
Communication série
Conversion Analogique/Numérique

Exercice 8 :
Pour créer une variation de la tension, nous allons utiliser un potentiomètre raccordé au pin A0. L’objectif de
l’exercice est d’écrire un programme qui permettra de récupérer la valeur analogique de A0 et de l’afficher sur
le terminal virtuel.
Premier Programme : Blink
Timers et interruptions
Communication série
Conversion Analogique/Numérique

Exercice 8 : Solution
int valeur;
void setup() {
pinMode(A0,INPUT);
[Link](9600);
}
void loop() {
valeur=analogRead(A0);
[Link](valeur);
delay(500);
}
Premier Programme : Blink
Timers et interruptions
Communication série
Conversion Analogique/Numérique

Exercice 9 :
Réalisons un montage avec lequel nous pourrons commander l’allumage et l’extinction d’une LED par degré de
luminosité. Pour cela une photorésistance doit être branchée sur l’une des entrées analogiques. Si la valeur de
l’entrée analogique dépasse un seuil donnée la LED doit s’éteindre et s’allumer dans le cas contraire.
Premier Programme : Blink
Timers et interruptions
Communication série
Conversion Analogique/Numérique

Exercice 9 : Solution

void loop() {
valeur=analogRead(A0);
int LED=13;
if(valeur>=500)
int valeur;
void setup() { digitalWrite(LED,LOW);

pinMode(A0,INPUT); else
pinMode(13,OUTPUT); digitalWrite(LED,HIGH);
} delay(10);
}
Timers et interruptions
Communication série Le moteur DC
Le servomoteur
Conversion Analogique/Numérique
Le moteur pas-à-pas
Contrôle de moteurs

L’Arduino comme tout cerveau d’un système embarqué est utilisé dans un large éventail d’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).
Timers et interruptions
Communication série Le moteur DC
Le servomoteur
Conversion Analogique/Numérique
Le moteur pas-à-pas
Contrôle de moteurs

Commande unidirectionnel par transistor

Exercice 10 :
Réalisons un circuit de 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.
Timers et interruptions
Communication série Le moteur DC
Le servomoteur
Conversion Analogique/Numérique
Le moteur pas-à-pas
Contrôle de moteurs

Commande unidirectionnel par transistor

Exercice 10 : Solution

int moteur=13; void loop() {


int boutonON=A0; if(!digitalRead(boutonON))
int boutonOFF=A1; digitalWrite(moteur, HIGH);
void setup() {
if(!digitalRead(boutonOFF))
pinMode(moteur, OUTPUT);
digitalWrite(moteur, LOW);
pinMode(boutonON, INPUT);
delay(10);
pinMode(boutonOFF, INPUT);
}
}
Timers et interruptions
Communication série Le moteur DC
Le servomoteur
Conversion Analogique/Numérique
Le moteur pas-à-pas
Contrôle de moteurs

Commande unidirectionnel par relai

Exercice 11 :
Reprenons l’exercice 10, mais nous allons choisir de commander un
moteur DC 120V par un relai au lieu d’un transistor.
Timers et interruptions
Communication série Le moteur DC
Le servomoteur
Conversion Analogique/Numérique
Le moteur pas-à-pas
Contrôle de moteurs

Commande bidirectionnel par relai

Exercice 12 :
Réalisons un circuit de commande d’un
moteur DC 120V bidirectionnel à l’aide
de deux relais. Deux boutons poussoirs
relié à l’Arduino, seront responsables
de la mise en marche du moteur, l’un
dans un sens et l’autre dans le sens
contraire. Un troisième bouton poussoir
servira à arrêter le moteur.
Timers et interruptions
Communication série Le moteur DC
Le servomoteur
Conversion Analogique/Numérique
Le moteur pas-à-pas
Contrôle de moteurs

Commande bidirectionnel par relai void loop() {


if(!digitalRead(boutonSens1))
Exercice 12 : Solution {
int sens1=0; digitalWrite(sens1, HIGH);
int sens2=1; digitalWrite(sens2, LOW);
int boutonSens1=A0; }
int boutonSens2=A1; if(!digitalRead(boutonSens2))
int boutonArret=A2; {
void setup() { digitalWrite(sens1, LOW);
pinMode(sens1, OUTPUT); digitalWrite(sens2, HIGH);
pinMode(sens2, OUTPUT); }
digitalWrite(sens2, LOW); if(!digitalRead(boutonArret))
digitalWrite(sens1, LOW); {
pinMode(boutonSens1, INPUT); digitalWrite(sens1, LOW);
pinMode(boutonSens2, INPUT); digitalWrite(sens2, LOW);
pinMode(boutonArret, INPUT); }
} delay(10);
}

You might also like