SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
L’ESSENTIEL SUR LE
MICROCONTRÔLEUR ET LA
CARTE ARDUINO UNO
Module I
Arduino Uno Rev3
Théorique
Préparé par:
TANDU SUAMUNU Byorn
MUNENA MPOYI Schadrack
NABURACHA MURANGA David
© 2016
PLAN
LES FONDAMENTALES DU MCU;
ENVIRONNEMENT ARDUINO;
PROGRAMMATION EN ARDUINO.
LES FONDAMENTALES DU MCU
Les MCUs sont à nos jours aussi fréquents dans les domaines tels
que: les télécommunications (téléphones mobiles, modem,...),
industriel (Automates programmables, imprimantes 3D,…),
automobile (tableau de bord, contrôle des sièges,…), domotique
(micro-ondes, machines à café,…), militaire (sonde, robots,
lanceurs des fusées,...), etc
1. OÙ EN SOMMES-NOUSAVEC LES MCUs?
Ils ont atteint une fréquente utilisation en 2014 avec 18,6 milliards
d’unités vendues et une croissance de 12% l’année dernière (2015)
(20.832.000.000 d’unités vendues) selon IC Insights. Ces bêtes
programmables deviennent de plus en plus des autoroutes pour
atteindre nos villes (targets) en pleine révolution.
LES FONDAMENTALES DU MCU
Le microcontrôleur (µC ou MCU pour MicroController Unit en
anglais) est un circuit programmable capable d’exécuter un
programme et possédant des circuits d’interface intégrés (entrées-
sorties) avec le monde extérieur. En d’autre terme, le MCU est un
mini-ordinateur sans clavier ni écran mais capable d’interagir avec
le monde extérieur grâce à ses interfaces d’entrées-sorties
intégrées.
2. QUID MCU?
Apparu vers les années 1970 dont Intel fut le premier, ce dernier
peut avoir 6 à 200 pattes pour interagir avec le monde extérieur (y
compris celles d’alimentation) et généralement de 4-bits (pour sa
première apparition et en disparition), 8-bits (le plus répandu), 16-
bits et 32-bits (de plus en plus fréquents à nos jours).
LES FONDAMENTALES DU MCU
Un système à MCU est un système ayant en global un interfaçage
d’entrée (une unité d’acquisition), une unité de traitement et un
interfaçage de sortie (une unité de sortie).
3. STRUCTURE D’UN SYSTÈME A MCU
INTERFACAGE
D’ENTREE
UNITE
CENTRALE DE
TRAITEMENT
INTERFACAGE
DE SORTIE
UNITE DETRAITEMENT ELECTRONIQUE
MCU
Capteur/
Données
en sortie
Actionneur/
Données en
sortie
LES FONDAMENTALES DU MCU
3. STRUCTURE D’UN SYSTÈME A MCU
LES DONNÉES EN ENTRÉE:
Les données en entrée peuvent être d’origine diverses, elles peuvent
provenir de capteurs (température, humidité,…), d’un clavier (pour le
dialogue homme-machine), etc. Donc, toutes ces données sont
acquisitionées par l’interface d’entrée.
L’UNITE CENTRALE DETRAITEMENT:
L’unité centrale de traitement est destinée au traitement de
données/informations acquisitionées par l’unitée d’interfaçage d’entrée
afin de fournir les données/informations nécessaires à la sortie.
LES DONNEES EN SORTIE:
Les données en sortie représentent le résultat attendu du traitement
spécifié par le programme des données en entrée.
LES FONDAMENTALES DU MCU
3. STRUCTURE D’UN SYSTÈME A MCU
Hormis cette vision globale, un MCU contient en son sein les éléments ci-après:
 Microprocesseur : Abrégé autre fois μP ou CPU pour Central Processing
Unit en anglais. Comme dans un ordinateur classique, il est le cerveau d’un
MCU.
 Mémoires : contrairement à un ordinateur classique, le MCU comprend trois
(3) types de mémoires qui se différentie dans l’utilisation avec celles d’un
ordinateur classique.
• RAM (Random Access Memory) : contient le programme d’exécution
du MCU et elle est volatile c’est-à-dire les informations stockées se
perdent dès mise hors tension. Sa taille peut aller de 256 octets à 1Ko
mais, elle peut être élargie par une RAM externe de 32Ko.
• ROM (Read Only Memory) : Elle contient généralement le
programme de l’utilisateur et n’est accessible qu’en lecture seule.
• EPROM (Erasable Programmable Read Only Memory) : est une
mémoire ayant les mêmes propriétés qu’une ROM mais
programmable. C’est-à-dire le programme en son sein peut être
effacé par les rayons UV ainsi, elle peut être reprogrammée.
LES FONDAMENTALES DU MCU
3. STRUCTURE D’UN SYSTÈME A MCU
 Timer/horloge : elle donne la référence temporelle au MCU pour exécuter
les instructions.
 Chien de garde : Est une structure de contrôle du bon déroulement du
programme pouvant être interne ou externe du MCU.
 Le reset à la mise sous tension : avant le lancement du programme, le MCU
a besoin d’un temps minimum qui est donné par la documentation du
constructeur et par conséquent, il faut produire un signal de durée
supérieure à la mise sous tension.
 Surveillance de l’alimentation : lorsqu’une chute de tension dans
l’alimentation est détectée, cette structure produit un reset au MCU.
 Les périphériques : sont les périphériques d’interfaçage d’entrées et sorties
du MCU, et de conversion du signal Analogique-Numérique ou l’inverse.
Entre autres : les ports d’entrées-sorties (parallèles et analogiques),, les ports
séries synchrones et asynchrones, la gestion Ethernet, les CAN, les CNA, la
gestion de bus USB, la gestion de bus CAN.
LES FONDAMENTALES DU MCU
4. APPLICATIONS
Ces bêtes programmables sont à nos jours présentes dans tous les systèmes
autonomes destinés à gérer des périphériques c’est-à-dire tout système
ayant le contrôle des périphériques. D’où, ses applications s’avèrent
énormes:
 La technique médicale ;
 Les systèmes de communication ;
 Les technologies de sécurité ;
 Mécatronique et automation industrielle ;
 Moyens de transport ;
 Électronique de consommation;
 Etc.
LES FONDAMENTALES DU MCU
5. CRITERES DE CHOIX
Le choix d’un MCU est porté sur son nombre de pattes, la fréquence du CPU,
la taille du bus de données (8-bits, 16-bits ou 32-bits) et le prix.
6. AVANTAGES
 Diminution de l’encombrement du matériel et du circuit imprimé;
 Simplification du tracé du circuit imprimé p(lus besoin de tracer de bus;
 Augmentation de la fiabilité du système
- nombre de composants réduits;
- connexions composants/supports et composant circuit imprimé.
 Intégration en technologie MOS, CMOS, ou HCMOS:
- diminution de la consommation
 Le microcontrôleur contribue à réduire les coûts à plusieurs niveaux:
- moins cher que les composants qu’il remplace ;
- Diminution des coûts de main d’oeuvre (conception et montage).
 Environnement de programmation et de simulation évolués.
LES FONDAMENTALES DU MCU
7. INCONVENIENTS/DEFAUTS
 le microcontrôleur est souvent surdimensionné devant les besoins de l’application;
 Investissement dans les outils de développement;
 Fabrication uniquement en grande série >1000.
ENVIRONNEMENT ARDUINO
1. QUID ARDUINO?
Arduino est un projet Open Source développé en 2005 par : Massimo
Banzi, David Cuertielles, Tom Igoe, Gianluca Martino, David Mellis, Nicolas
Zambetti. C’est un concept à la fois matériel et logiciel appelé « système
Arduino ».
Retenons qu’Arduino n’est pas un microcontrôleur en soi mais un
environnement à MCU et constitué de plusieurs cartes électroniques
programmables entre autre: entre autre : Uno, Mega, leonardo, Yun,
Duemilanove, Diecimila, Nano, Mini, LilyPAd et Serial. Toutes
programmées par un langage proche/semblable du C appelé langage
Arduino et faisant l’objet de nos travaux pratiques.
ENVIRONNEMENT ARDUINO
2. CARACTERISTIQUES ARDUINO UNO
 Microcontrôleur : ATmega328
 Tension de fonctionnement : 5V
 Tension d'Input (recommandée) : 7-12V
 Tension d'Input : (limites) : 6 -20V
 Pins I/O digitales : 14 (dont 6 sont des PWM - modulation de largeur d'impulsions)
 Pins InputAnalogiques : 6 (A0, A1, A2, A3, A4 et A5)
 Courant DC par pin I/O : 40 mA
 Courant DC pour la broche 3.3V : 50 mA
 Mémoire Flash : 32 KB (ATmega328) dont 0.5 KB utilisé par le 'bootloader'
 SRAM : 2 KB (ATmega328)
 EEPROM : 1 KB (ATmega328)
 Fréquence d'horloge: 16 MHz
La carte Arduino Uno a les caractéristiques ci-après:
ENVIRONNEMENT ARDUINO
2. CARACTERISTIQUES ARDUINO UNO
ENVIRONNEMENT ARDUINO
3. QUE PILOTERA ARDUINO?
Tout dispositif technique (ou un appareil ou une machine d’un domaine
quelconque) peut être contrôlé d’une manière automatique ou par un
ordinateur, il suffit juste d’une interface compatible avec ce dispositif et
d’un programme/logiciel adapté.
De même, la carte Arduino peut commander/piloter une large gamme de
dispositifs, il suffit de la munir d’un programme adapté. En réalité, elle est
une des interfaces pour piloter ces dispositifs techniques.
Donc, la carte Arduino comme tout MCU peut commander un actionneur
ou un pré-actionneur pour commander une partie puissance (le cas des
Moteurs avec des relais).
ENVIRONNEMENT ARDUINO
3. QUE POURRA PILOTER LA CARTE ARDUINO?
C’est ainsi, elle peut piloter:
 Un moteur;
 Un afficheur ou plus (le cas de montre digitale ou chronomètre);
 Une télévision;
 Des lampes;
 Une plaque chauffante;
 Une alarme (le cas de détecteur d’intrusion, )
 Une micro-onde;
 Etc.
En conclusion, les applications de la carte Arduino ou du
MCU se différent selon l’imagination du programmeur
car, elles sont multiples.
ENVIRONNEMENT ARDUINO
3. PROBLEMATIQUE DE PILOTAGE?
Comment utiliser ladite carte avec ces diverses
applications d’autant plus qu’elle ne délivre qu’une
tension de +5v DC sur toutes ses bornes (le cas d’un
moteur à 12v DC par exemple), elle ne possède aucune
antenne pour envoyer les informations à distance (le cas
d’une alarme détecteur d’intrusion),…?
ENVIRONNEMENT ARDUINO
Les développeurs du projet Arduino ont prévu les solutions ci-après:
4. SOLUTIONS/ASTUCES
 Les cartes d’extension pour remplir certaines fonction, entre autre:
• Shield Motor;
• Shield GSM;
• Etc.
 Utilisation des montages électroniques;
 Utilisation des circuits intégrés pour élargir les E/S afin de remplir certaines
fonctions.
De même, seule la carte ne suffit pour répondre à certaines attentes. C’est
ainsi, elle est raccordé à des composants tels que: Les composants actifs et
passifs (Résistances fixe et variables, diodes, condensateurs,…), Décodeur
BCD, etc.
PROGRAMMATION EN ARDUINO
Comme évoqué ci-haut, un MCU est une bête programmable. alors
comment le programmer et avec quel langage s’y prendre?
Un MCU est programmé grâce à un programmateur (ressemblant à un
socket) dont le programme (codé dans un langage approprié) est téléversé à
partir d’un PC moyennant un compilateur.
Un MCU peut être programmé dans un langage:
o Machine;
o Assembleur;
o Haut niveau (C, C++, Java,…).
Mais, la majorité des MCUs sont programmés en C. Ainsi,Arduino est proche
de C.
LE LANGAGE ARDUINO
Un langage de programmation est une grammaire formelle qui inclut
des symboles et des règles syntaxiques auxquels on associe des règles
sémantiques.
PROGRAMMATION EN ARDUINO
Il en est ainsi pour Arduino qui, malgré sa ressemblance avec le C a ses
propres règles, symboles et syntaxiques.
Donc, avec Arduino, il y a une phase de déclaration, d’initialisation,
appel de fonction, appel de librairies,…
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Commentaire
Un commentaire en langage de programmation est un bout de
mots destinés à documenter le programme et n’est pas exécuté par
le compilateur.
// Ceci est un commentaire simple
/* ceci est un long commentaire */
Son importance est pour un repérage facile lors de la
programmation d’un gros programme contenant beaucoup de
lignes tant faciles que complexes.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Déclaration des variables
Une variable est un espace réservé dans la mémoire contenant une
information (valeur), qui est caractérisée par un nom et un type.
int nomVariable1 ;
float nomVariable2 ;
char nomVariable3 ;
long nomVariable4 ;
Déclarer une variable, c’est créer cet espace prêt à acquérir
l’information. Ainsi, nous avons : int (entier), float (flottant), char
(caractère), long int (entier long), byte et volatile.
Forme : <type> <nom_de_la_variable>
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Déclaration des constantes
Il est parfois nécessaire de déclarer des variables qui ne changeront
pas tout au long de l’exécution du programme, ces variables sont
appelées les constantes.
Const int nomVariable1 ;
Const float nomVariable2 ;
Const char nomVariable3 ;
Forme : <mot_clef> <type> <nom_de_la_variable>
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Déclaration des tableaux
Un tableau est une variable particulière contenant des lignes et des
colonnes. En d’autre terme un tableau est un ensemble fini
d'éléments de même type.
int tab[5] ;
int tab2[3][2] ;
int tab3[2] ;
Forme une dimension : <type> <nom_du_tableau> [<nombre_éléments>]
Forme 2D :<type> <nom_du_tableau> [<nombre_éléments1>][<nombre_éléments2>]
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Affectation
Affecter une variable/tableau, c’est lui attribuer de l’information
(valeur) pour une bonne manipulation. Ce processus est remarqué
par l’opérateur égal (=) et des accolades {} pour le tableau.
int nomVariable1 = 5;
float nomVariable2 = 2.3 ;
char nomVariable3 =’a’;
long nomVariable4 = 1000;
int tab [5] = {1, 2, 3, 4, 5, 6} ;
float tab2 [3] = {1.0, 2.0, 3.0} ;
char tab [] = {’a’, ’c’} ;
Forme : <type> <nom_de_la_variable> = <valeur>
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Opérateurs arithmétiques
L’addition (+), la soustraction (-), la division (/), la multiplication (*)
et le modulo (%) sont des opérateurs arithmétiques.
int nomVariable1 = 5;
int nomVariable2 = 2;
int somme ;
somme = nomVariable1 + nomVariable2
 Opérateurs rationnels
Ces opérateurs comparent deux valeurs, nous avons :
< Strictement inférieur
> Strictement supérieur
!= Différent de
== égal (à ne pas confondre avec le signe d’affectation =)
<= inférieur ou égal
>= supérieur ou égal
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Autres opérations
Hormis les opérations arithmétiques citées ci-haut, le C offre un
raccourci d’ajout et de soustraction d’un nombre que celui existant
appelé l’incrémentation et la décrémentation. Elles sont
remarquées par les signes (++) pour la première (incrémentation) et
(--) pour la deuxième (décrémentation).
int nomVariable1 = 5;
int nomVariable2=nomVariable1++;
int nomVariable3=4 ;
int nomVariable4=nomVariable3-- ;
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Instructions de controle
Une instruction de contrôle permet de contrôler le fonctionnement
d'un programme. Parmi ces instructions, on distingue les
instructions de branchement et les boucles.
If (expression1)
Instruction1 ;
Else Instruction2 ;
a. Instruction de branchement
Les instructions de branchement permettent de
déterminer quelles instructions seront exécutées et
dans quel ordre.
If (expression1)
Instruction1;
Else if (expression2)
Instruction2;
Else Instruction3;
Branchement simple:
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
//illustration de la forme 1
int nomVariable1 = 5;
int nomVariable2=3
int nomVariable3 ;
if (nomVariable1=5);
nomVariable3=nomVariable1+nomVariable2;
else nomVariable3=nomVariable1-nomVariable2;
//illustration de la forme 2
int nomVariable4 = 4 ;
int nomVariable5 = 2;
int nomVariable6 ;
if (nomVariable4 = 4)
nomVariable6 = nomVariable4 + nomVariable5;
else if (nomVariable4 > 5)
nomVariable6 = nomVariable4 - nomVariable5;
else nomVariable6=nomVariable4 * nomVariable5;
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
Branchement multiple:
switch (expression) {
case valeur1 : Instruction1;
break ;
Case valeur2 : Instruction2;
break ;
Case valeurN : InstructionN;
break ;
}
int nomVariable1 = 5;
int nomVariable2=3
int nomVariable3 ;
switch (nomVariable1){
case nomVariable1 = 5 :
nomVariable1 = nomVariable1 + nomVariable2 ;
break ;
case nomVariable1 = 2 :
nomVariable1 = nomVariable1- nomVariable2 ;
break ;
}
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
b. Les boucles
while (expression){
Instruction;
}
int nomVariable1 = 2 ;
int nomVariable2 = 3;
int nomVariable3 ;
while (nomVariable1 = 2){
nomVariable3 = nomVariable2++;
}
BoucleWHILE
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
Do {
Instruction
}
while (expression)
int nomVariable1 = 2 ;
int nomVariable2 = 3;
int nomVariable3 ;
do {
nomVariable3 = nomVariable2++}
while (expression)
Boucle DO…WHILE
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
void nomProcedure () {
Instruction-bloc;
}
int nomFonction (int nomVariable)
{
Instruction-bloc;
Return <expression>;
}
 Procédure et fonction
Une fonction est un bout de codes destiné à effectuer une
tache précise et renvoie généralement une valeur, résultat d’un
calcul.Tandis qu’une méthode ne renvoie pas un résultat.
Forme : déclaration :<type> <nom_de_la_fonction> (<paramètre(s)_de_la_fonction>)
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
pinMode(13,OUTPUT);pinMode(13,INPUT);
 Initialisation des pins
Il est évident que le MCU est une bête donc, ne sait faire que ce que
l’on lui dit de faire c’est-à-dire lui préciser réellement ce que ses pins
seront soit à l’état d’acquisition (initialisé comme entrée) ou de
restitution (initialisé comme sorties)
o Initialisation des pins en entrée et en sortie
Pour initialiser une pin avec Arduino, il suffit d’appeler la fonction
prédéfinie pinMode() en lui donnant comme paramètre, le numéro
de port et l’état, soit en entrée (INPUT) ou soit en sortie (OUTPUT).
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
Void setup(){
pinMode(13,OUTPUT);
}
Void setup(){
pinMode(13,INPUT);
}
o Où appeler cette fonction pour initialiser les pins?
Dans la programmation de la carte Arduino, il a été prévu deux
fonctions prédéfinies dont l’une est pour l’initialisation ou la
configuration (void setup()) et l’autre pour la boucle (void loop()).
D’où, comme il s’agit de l’initialisation, toutes ces commandes
seront faites dans void setup().
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
Void loop(){
digitalRead(13);
}
Void loop{
digitalWrite(13,HIGH);
}
 LES FONCTIONS DigitalWrite() et DigitalRead()
Après la configuration, il sera question d’activer lesdites pins à l’état
haut qui correspond à fournir une tension de +5v (HIGH) ou bas qui
correspond à 0v (LOW) ou encore de lire l’état du capteur au cas où,
la pin a été initialisée en entrée.
DigitaWrite() sert à configurer l’état d’une pin digitale et reçoit deux
paramètres dont le numéro de la pin et son état (HIGH ou LOW).
DigitalRead() sert à lire l’état d’un capteur connectée sur une pin
digitale et recoit en paramètre le numéro de la pin, si possible avec
son état (HIGH ou LOW).
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LES FONCTIONS analogWrite() et analogRead()
Pour lire/afficher une valeur (ou l’état d’un capteur) analogique, il
est évident qu’il faut utiliser les pins analogiques (A1, A2, A3, AA4 et
A5) en utilisant les fonctions soit analogRead() pour la lire et
analogWrite() pour afficher. Ces fonctions reçoivent en paramètre
le numéro de la pin.
Elles peuvent être tout comme les deux précédentes (digitalWrite()
et digitalRead()) appelées partout dans le programme.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
Il est possible qu’un MCU puisse communiquer avec un autre
système à CPU tel qu’un PC, MCU,…
Ainsi, cette interface/liaison permet cette communication entre
systèmes à CPU reposant sur la norme RS232.
C’est-à-dire avec cette liaison, nous pouvons faire communiquer
deux MCUs, cartes Arduino, PCs et autres appareils/dispositifs
supportant cette norme.
La dite liaison est obtenue par un connecteur DB9 qui est presque
plus existant à nos jours mais cela est remédié par un câble USB le
cas de communication PC-Arduino.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
 Communication Arduino Uno et PC
Pour utiliser cette liaison, il faut l’établir non seulement
physiquement c’est-à-dire par un câble mais aussi dans le
programme tout en définissant la vitesse de communication
exprimée en bauds (bds).
void setup(){
Serial.begin(vitesse);
}
Pour établir une communication série, il suffit d’ajouter la syntaxe
ci-dessous dans setup() :
La vitesse s’étend de 110 à
115200 bauds (bds).
void setup(){
Serial.begin(9600);
}
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
 Communication d’une carte Arduino avec une autre.
Pour relier une carte Arduino avec une autre, il suffit de relier les
deux broches Rx et Tx de l’une avec les Rx et Tx de l’autre. C’est-à-
dire relier Rx de l’une avec Tx de l’autre et Tx de l’une avec Rx de
l’autre.
Rx
Rx
Tx
Tx
Carte 1 Carte 2
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
o Envoi de données
Relier deux systèmes implique le partage des données entre ces
derniers, pour ce cas précis (entre une carte Arduino et un PC) ce
partage se fait dans les deux sens.
Les données qu’enverront la carte Arduino seront prélevées par des
capteurs et envoyées dans un PC via une liaison série pour être
informé de quelques détails.
Pour envoyer des données via cette liaison, il suffit de taper la
commande ci-après:
void loop ()
{
Serial.print(valeur_a_envoyer);
Serial.println(valeur_a_envoyer);
}
La valeur à envoyer est celle
contenant une variable
récupérée par un capteur.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
o Réception de données
Il est évident que cette réception devra se faire soit du PC-Arduino
soit Arduino-PC pour ce cas, c’est la carte qui reçoit donc PC-
Arduino.
 Les fonctions Serial.avalaible() et Serial.read()
Les deux fonctions de l’objet Serial ci-haut permettent de vérifier et
lire les données dans le buffer de réception d’une liaison série. L’une
vérifie la présence d’une donnée si non elle revoie -1.
void loop(){
int donnee = Serial.avalaible();
}
En réalité, ladite fonction
renvoie le nombre de caractères
dans le buffer de réception et au
cas où il y a l’absence, elle
renvoie -1.
En somme, la fonction vérifie seulement la présence des données.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
o Réception de données
Dès que les données sont présentent dans le buffer de réception, il est
possible de les lire avec la fonction read() du même objet:
void loop(){
char donnee = Serial.read();
}
Le caractère lu est stocké dans une
variable afin si possible d’être utilisée
ultérieurement.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 ENTREESANALOGIQUES
Ces entrées correspondent à la manipulation des données analogiques via les
pins analogiques (A0, A1, A2, A3, A4, A5)
Les données analogiques proviennent de capteurs tels que: un
potentiomètre, une LDR, un piézoélectrique, un capteur de température,
etc.
Un signal analogique est constitué d’une fréquence, période et amplitude; la
fréquence est le nombre de fois que ce signal change de l’alternance en une
seconde et est l’inverse de la période, et l’amplitude est le niveau maximal de
ce signal.
Une fois l’une de ces entrées est connectée à un capteur le dit signal sera
converti en numérique grâce à un convertisseur analogique-numérique (CAN
intégré dans la carte) afin d’être manipulé par le MCU.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 ENTREESANALOGIQUES
L’acquisition est faite par la fonction analogRead() et reçoit en argument le
numéro de pin analogique.
La fonction retourne une valeur int comprise entre 0 et 1023, et devra être
converti en volt en la multipliant par 5 puis diviser par 1024.
Int valeur=0;
Int capteur=0;
float vExacte=0;
void loop(){
valeur = analogRead(capteur);
vExacte = (valeur*5)/1024;
}
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 ENTREESANALOGIQUES
Il est possible avec la fonction map() de raccourcir le processus pour
atteindre le même but. Elle prend en argument cinq (5) paramètres dont la
valeur à convertir (acquise par le capteur), le 0, 1023, o et 5000 (5000mV ce
puis diviser par 1000 pour avoir 5v).
Int valeur=0;
Int capteur=0;
float vExacte=0;
void loop(){
valeur = analogRead(capteur);
vExacte = map(valeur, 0, 1023, 0, 5000);
vExacte = vExacte/1000;
}
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
L’acronyme PWM pour Pulse Width Modulation en français Modulation à
Largeur d’Impulsion. Elle est en fait un signal numérique qui, à une fréquence
donnée, a un rapport cyclique qui change.
 PWM/MLI
Le rapport cyclique avec un signal numérique désigne le fait que le niveau
logique 1 peut ou ne pas durer le même temps que le niveau logique 0. Il est
mesuré en pour cent (%). Plus le pourcentage est élevé, plus le niveau
logique 1 est présent dans la période et moins le niveau logique 0 l'est. Et
inversement.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
D’où, la PWM est un signal de
fréquence fixe ayant un rapport
cyclique variant dans le temps.
Ainsi, la fréquence de la PWM avec la
carte Arduino est de 490Hz.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 PWM/MLI
D’autant plus que la PWM est un signal numérique, sa génération est faite
par la fonction analogWrite() via les pins 3, 5, 6, 9, 10 et 11 dites pins PWM
marquées avec le symbole tilde (~).
La dite fonction reçoit deux (2) paramètres:
1. le numéro de la pin;
2. la valeur du rapport cyclique
(comprise entre 0 et 255).
- 0 représente un rapport cyclique de 0%;
- 127 représente 50%;
- 255 représente 100%;
- pour avoir un rapport cyclique quelconque, il suffit de diviser la valeur
par 255 multipliée par 100 (e.g. 169/255 = 0,6627*100 = 66,27%).
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 PWM/MLI
int capteur=0;
void setup(){
pinMode(capteur, OUTPUT);
}
void loop(){
analogWrite(capteur,169);
}
Cette commande/fonction analogWrite()
génère de la PWM avec un rapport cyclique de
66,2%.
Ainsi, avec la PWM il est possible de varier la vitesse d’un moteur à DC.
PROGRAMMATION EN ARDUINO
ANALOG : Analogique.
AREF : Abréviation pour Analog REFerence, référence analogique.
AVAILABLE : Disponible.
BEGIN : Début.
BIT : bit, unit d'information informatique pouvant prendre soit la valeur 0
soit la valeur 1.
BUFFER : Tampon, dans le sens de "zone tampon".
BYTE : Octet, soit un groupe de 8 bits.
bps : Abréviation pour Bits Per Second, Bits Par Seconde. Attention,
abréviation toujours en minuscules.
Les termes ci-dessous sont les plus employés dans ledit domaine de
l’életronique programmée:
LEXIQUE DESTERMES EN ANGLAIS
PROGRAMMATION EN ARDUINO
BREADBOARD: plaque d’expérimentation
CAPACITOR: condensateur
CHAR : Abréviation de CHARacter, caractère (typographique). Type de variable d'une
taille d'un octet. C'est un synonyme de "byte" utilisé pour déclarer des variables
stockant
un caractère ou des chaines de caractères.
DEFINE : Définit.
DIGITAL : Numérique.
DO : Faire.
FALSE : Faux.
FOR : Pour.
GND : Abréviation pour GrouND, la terre. C'est la masse, 0Volt.
HIGH : Haut.
ICSP : Abréviation pour In Circuit Serial Programming, programmation série sur circuit.
IF /THEN/ ELSE : Si / Alors / Sinon.
IN : Souvent l'abréviation pour INput, Entre. Est toujours en rapport avec le sens
extérieur vers carte Arduino.
LEXIQUE DESTERMES EN ANGLAIS
PROGRAMMATION EN ARDUINO
INCLUDE : Inclut.
INPUT : Entrée.
IS : Est (souvent dans le sens d'une question : Est ?).
INT : Abréviation pour INTeger, entier. Groupe de 16 bits, 2 octets groupés, considérés
comme représentant un nombre entier négatif ou positif.
LONG : Abréviation pour "entier long". Groupe de 32 bits, 4 octets groupés, considérés
comme représentant un nombre entier négatif ou positif.
LOOP : Boucle.
LOW : Bas.
OUT : Souvent l'abréviation pour OUTput, Sortie. Est toujours en rapport avec le sens
carte Arduino vers extérieur.
OUTPUT : Sortie.
PIN : Broche.
POWER : Puissance, alimentation.
PWM : Abréviation de (Pulse Width Modulation), soit Modulation en Largeur
d'Impulsion.
PWR : Abréviation pour PoWeR, puissance, alimentation.
READ: Lire.
LEXIQUE DESTERMES EN ANGLAIS
PROGRAMMATION EN ARDUINO
RESISTOR: résistance.
RELAY: relais.
RX : Abréviation pour Receive, réception.
SERIAL : Série.
SETUP : Initialisation.
SENSOR: capteur
TRUE : Vrai.
TX: AbréviationTransmit, transmission (mission).
WIRE: câble
WHILE : Tant que.
WORD : mot, soit dans le mot de langage ; soit dans le sens d'un groupe de 16 bits, 2
octets groups considérés comme représentant un nombre entier positif (>= 0).
WRITE: Écrire.
LEXIQUE DESTERMES EN ANGLAIS
BIBLIOGRAPHIE - WEBOGRAPHIE
WEBOGRAPHIE
1. http://www.electronique-mixte.fr/kits-de-developpement-processeurs-et-
microcontroleurs/kit-msp430-de-ti/.
2. http://www.wikipedia.org/wiki/Langage_de_programmation
1. Arduino pour bien commencer en électronique et en programmation,
Astalaseven, Eskimon et olyte, site du zero, 2012 inédit;
2. Les microcontrôleurs dans les systèmes embarqués, Elham Firouzi, Haute
école spécialisée bernoise, Janvier 2012 inédit;
3. Microprocesseurs & Microcontrôleurs, Sylvain MONTAGNY, Université de
Savoie,
4. Les microcontrôleurs, JérômeVICENTE, université de Marseille, 2005 inédit.
BIBLIOGRAPHIE
FEEDBACK
E-mails: byorntandu@gmail.com
naburacha.muranga@gmail.com
Mobiles: +243 85 10 66 991
+243 81 32 20 189
+243 81 74 11 819
Microcontroleur arduino uno

Contenu connexe

Tendances

Chapitre 1 technique de transmission
Chapitre 1 technique de transmissionChapitre 1 technique de transmission
Chapitre 1 technique de transmissionFodé Ndiaye
 
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemplePrésentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exempleMax Benana
 
Gestion de la production de films promotionnels - Projet en bases de données
Gestion de la production de films promotionnels - Projet en bases de donnéesGestion de la production de films promotionnels - Projet en bases de données
Gestion de la production de films promotionnels - Projet en bases de donnéesCédric Mouats
 
Les transmissions et les supports
Les transmissions et les supportsLes transmissions et les supports
Les transmissions et les supportsFouad Root
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busSana Aroussi
 
Projet de communication numérique Réalisation d'une chaîne de transmission nu...
Projet de communication numérique Réalisation d'une chaîne de transmission nu...Projet de communication numérique Réalisation d'une chaîne de transmission nu...
Projet de communication numérique Réalisation d'une chaîne de transmission nu...Yassine Nasser
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Mémoire de fin d'études FTIC-UPAC 2012
Mémoire de fin d'études FTIC-UPAC 2012Mémoire de fin d'études FTIC-UPAC 2012
Mémoire de fin d'études FTIC-UPAC 2012jstvevy
 
Techniques de communication ppt
Techniques de communication pptTechniques de communication ppt
Techniques de communication ppt056611678
 
Gestion de stress
Gestion de stress Gestion de stress
Gestion de stress Hamada Dary
 
Concept et réalisation d’un système de communication unifiée multi-sites
Concept et réalisation d’un système de communication unifiée multi-sitesConcept et réalisation d’un système de communication unifiée multi-sites
Concept et réalisation d’un système de communication unifiée multi-sitesAmadou Dia
 
cours transmission numerique.pdf
cours transmission numerique.pdfcours transmission numerique.pdf
cours transmission numerique.pdfHassnTAI
 
Power point Règlement de conflits en milieur de travail
Power point   Règlement de conflits en milieur de travailPower point   Règlement de conflits en milieur de travail
Power point Règlement de conflits en milieur de travailSelexionLapointe
 
Présentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODPrésentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODwebmasterref68
 
Travaux dirigés Réseau Ethernet
Travaux dirigés Réseau EthernetTravaux dirigés Réseau Ethernet
Travaux dirigés Réseau EthernetInes Kechiche
 
La gestion des exceptions avec Java
La gestion des exceptions avec JavaLa gestion des exceptions avec Java
La gestion des exceptions avec JavaPapa Cheikh Cisse
 
chap3 numerisation_des_signaux
chap3 numerisation_des_signauxchap3 numerisation_des_signaux
chap3 numerisation_des_signauxBAKKOURY Jamila
 

Tendances (20)

Chapitre 1 technique de transmission
Chapitre 1 technique de transmissionChapitre 1 technique de transmission
Chapitre 1 technique de transmission
 
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemplePrésentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
 
Gestion de la production de films promotionnels - Projet en bases de données
Gestion de la production de films promotionnels - Projet en bases de donnéesGestion de la production de films promotionnels - Projet en bases de données
Gestion de la production de films promotionnels - Projet en bases de données
 
Les transmissions et les supports
Les transmissions et les supportsLes transmissions et les supports
Les transmissions et les supports
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
 
Projet de communication numérique Réalisation d'une chaîne de transmission nu...
Projet de communication numérique Réalisation d'une chaîne de transmission nu...Projet de communication numérique Réalisation d'une chaîne de transmission nu...
Projet de communication numérique Réalisation d'une chaîne de transmission nu...
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Présentation UMTS
Présentation UMTSPrésentation UMTS
Présentation UMTS
 
Mémoire de fin d'études FTIC-UPAC 2012
Mémoire de fin d'études FTIC-UPAC 2012Mémoire de fin d'études FTIC-UPAC 2012
Mémoire de fin d'études FTIC-UPAC 2012
 
Techniques de communication ppt
Techniques de communication pptTechniques de communication ppt
Techniques de communication ppt
 
Gestion de stress
Gestion de stress Gestion de stress
Gestion de stress
 
La communication et ses enjeux
La communication et ses enjeuxLa communication et ses enjeux
La communication et ses enjeux
 
Concept et réalisation d’un système de communication unifiée multi-sites
Concept et réalisation d’un système de communication unifiée multi-sitesConcept et réalisation d’un système de communication unifiée multi-sites
Concept et réalisation d’un système de communication unifiée multi-sites
 
cours transmission numerique.pdf
cours transmission numerique.pdfcours transmission numerique.pdf
cours transmission numerique.pdf
 
Power point Règlement de conflits en milieur de travail
Power point   Règlement de conflits en milieur de travailPower point   Règlement de conflits en milieur de travail
Power point Règlement de conflits en milieur de travail
 
Présentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODPrésentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HOD
 
Travaux dirigés Réseau Ethernet
Travaux dirigés Réseau EthernetTravaux dirigés Réseau Ethernet
Travaux dirigés Réseau Ethernet
 
Chapitre 2 - Réseaux locaux
Chapitre 2 - Réseaux locauxChapitre 2 - Réseaux locaux
Chapitre 2 - Réseaux locaux
 
La gestion des exceptions avec Java
La gestion des exceptions avec JavaLa gestion des exceptions avec Java
La gestion des exceptions avec Java
 
chap3 numerisation_des_signaux
chap3 numerisation_des_signauxchap3 numerisation_des_signaux
chap3 numerisation_des_signaux
 

En vedette

Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduinoAhmed Sakr
 
Arduino technical session 1
Arduino technical session 1Arduino technical session 1
Arduino technical session 1Audiomas Soni
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduinoavikdhupar
 
Rastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar droneRastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar dronePET Computação
 
MobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinMobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinDextra
 
Un�Un�Un�Facebook Aparece A Comprar fotovoltaica Drone Empresa (Reemplazar)
Un�Un�Un�Facebook Aparece A Comprar fotovoltaica Drone Empresa (Reemplazar) Un�Un�Un�Facebook Aparece A Comprar fotovoltaica Drone Empresa (Reemplazar)
Un�Un�Un�Facebook Aparece A Comprar fotovoltaica Drone Empresa (Reemplazar) hovertweet4
 
Carte sous sol AD GB
Carte sous sol AD GBCarte sous sol AD GB
Carte sous sol AD GBguest5ad23fe8
 
The Role of the "Capteur Logement" to Improve Access to Housing and Housing R...
The Role of the "Capteur Logement" to Improve Access to Housing and Housing R...The Role of the "Capteur Logement" to Improve Access to Housing and Housing R...
The Role of the "Capteur Logement" to Improve Access to Housing and Housing R...FEANTSA
 
GAZ DE SCHISTE : LE TRÉSOR EMPOISONNÉ DU SOUS-SOL FRANÇAIS
GAZ DE SCHISTE : LE TRÉSOR EMPOISONNÉ DU SOUS-SOL FRANÇAISGAZ DE SCHISTE : LE TRÉSOR EMPOISONNÉ DU SOUS-SOL FRANÇAIS
GAZ DE SCHISTE : LE TRÉSOR EMPOISONNÉ DU SOUS-SOL FRANÇAISlyago
 
6151 capteur-et-chaine-dacquisition-ens
6151 capteur-et-chaine-dacquisition-ens6151 capteur-et-chaine-dacquisition-ens
6151 capteur-et-chaine-dacquisition-ensOutazkrit Mbarek
 
Capteur de-vitesse-de-rotation-de-roue-131201143430-phpapp01
Capteur de-vitesse-de-rotation-de-roue-131201143430-phpapp01Capteur de-vitesse-de-rotation-de-roue-131201143430-phpapp01
Capteur de-vitesse-de-rotation-de-roue-131201143430-phpapp01Kader Bouafia
 
Categorie de travaux eligibles à l'eco-ptz
Categorie de travaux eligibles à l'eco-ptzCategorie de travaux eligibles à l'eco-ptz
Categorie de travaux eligibles à l'eco-ptzLudovic Clerima
 
Document de présentation relios
Document de présentation reliosDocument de présentation relios
Document de présentation reliosRELIOS
 
Stéréo-signes : Extraire/traiter/générer un fossile de données
Stéréo-signes : Extraire/traiter/générer un fossile de donnéesStéréo-signes : Extraire/traiter/générer un fossile de données
Stéréo-signes : Extraire/traiter/générer un fossile de donnéesstereolux
 
Sécurité des systèmes d’information industriels
Sécurité des systèmes d’information industrielsSécurité des systèmes d’information industriels
Sécurité des systèmes d’information industrielsPRONETIS
 
Act 00033 traitement efficace des projets photogrammétriques par drones
Act 00033 traitement efficace des projets photogrammétriques par dronesAct 00033 traitement efficace des projets photogrammétriques par drones
Act 00033 traitement efficace des projets photogrammétriques par dronesACSG - Section Montréal
 

En vedette (20)

Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduino
 
Arduino uno-schematic
Arduino uno-schematicArduino uno-schematic
Arduino uno-schematic
 
Arduino technical session 1
Arduino technical session 1Arduino technical session 1
Arduino technical session 1
 
Arduino uno
Arduino unoArduino uno
Arduino uno
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 
Arduino
ArduinoArduino
Arduino
 
Raspberry pi
Raspberry pi Raspberry pi
Raspberry pi
 
Rastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar droneRastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar drone
 
MobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinMobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto Marin
 
Un�Un�Un�Facebook Aparece A Comprar fotovoltaica Drone Empresa (Reemplazar)
Un�Un�Un�Facebook Aparece A Comprar fotovoltaica Drone Empresa (Reemplazar) Un�Un�Un�Facebook Aparece A Comprar fotovoltaica Drone Empresa (Reemplazar)
Un�Un�Un�Facebook Aparece A Comprar fotovoltaica Drone Empresa (Reemplazar)
 
Carte sous sol AD GB
Carte sous sol AD GBCarte sous sol AD GB
Carte sous sol AD GB
 
The Role of the "Capteur Logement" to Improve Access to Housing and Housing R...
The Role of the "Capteur Logement" to Improve Access to Housing and Housing R...The Role of the "Capteur Logement" to Improve Access to Housing and Housing R...
The Role of the "Capteur Logement" to Improve Access to Housing and Housing R...
 
GAZ DE SCHISTE : LE TRÉSOR EMPOISONNÉ DU SOUS-SOL FRANÇAIS
GAZ DE SCHISTE : LE TRÉSOR EMPOISONNÉ DU SOUS-SOL FRANÇAISGAZ DE SCHISTE : LE TRÉSOR EMPOISONNÉ DU SOUS-SOL FRANÇAIS
GAZ DE SCHISTE : LE TRÉSOR EMPOISONNÉ DU SOUS-SOL FRANÇAIS
 
6151 capteur-et-chaine-dacquisition-ens
6151 capteur-et-chaine-dacquisition-ens6151 capteur-et-chaine-dacquisition-ens
6151 capteur-et-chaine-dacquisition-ens
 
Capteur de-vitesse-de-rotation-de-roue-131201143430-phpapp01
Capteur de-vitesse-de-rotation-de-roue-131201143430-phpapp01Capteur de-vitesse-de-rotation-de-roue-131201143430-phpapp01
Capteur de-vitesse-de-rotation-de-roue-131201143430-phpapp01
 
Categorie de travaux eligibles à l'eco-ptz
Categorie de travaux eligibles à l'eco-ptzCategorie de travaux eligibles à l'eco-ptz
Categorie de travaux eligibles à l'eco-ptz
 
Document de présentation relios
Document de présentation reliosDocument de présentation relios
Document de présentation relios
 
Stéréo-signes : Extraire/traiter/générer un fossile de données
Stéréo-signes : Extraire/traiter/générer un fossile de donnéesStéréo-signes : Extraire/traiter/générer un fossile de données
Stéréo-signes : Extraire/traiter/générer un fossile de données
 
Sécurité des systèmes d’information industriels
Sécurité des systèmes d’information industrielsSécurité des systèmes d’information industriels
Sécurité des systèmes d’information industriels
 
Act 00033 traitement efficace des projets photogrammétriques par drones
Act 00033 traitement efficace des projets photogrammétriques par dronesAct 00033 traitement efficace des projets photogrammétriques par drones
Act 00033 traitement efficace des projets photogrammétriques par drones
 

Similaire à Microcontroleur arduino uno

Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industrielsHafsaELMessaoudi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Chapitre3.pptx
Chapitre3.pptxChapitre3.pptx
Chapitre3.pptxHachmi3
 
cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)Hạ Cháy
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicmorin moli
 
Automates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfAutomates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfMENNANIZinedine
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptwafawafa52
 
L'application de l'amdec sur le valideur vpe 412
L'application de l'amdec sur le valideur vpe 412L'application de l'amdec sur le valideur vpe 412
L'application de l'amdec sur le valideur vpe 412Mohamed Amine SERHANI
 
Cours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptCours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptAbdo Brahmi
 
L'automate programmable - www.cours-online.com
L'automate programmable - www.cours-online.comL'automate programmable - www.cours-online.com
L'automate programmable - www.cours-online.commorin moli
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxAbdo Brahmi
 
Chap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfChap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfDAPcreat
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptxSihemNasri3
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfWahideArabe
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurssarah Benmerzouk
 

Similaire à Microcontroleur arduino uno (20)

Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industriels
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
cours2 ARM.pptx
cours2 ARM.pptxcours2 ARM.pptx
cours2 ARM.pptx
 
T ps dsp
T ps dspT ps dsp
T ps dsp
 
Chapitre3.pptx
Chapitre3.pptxChapitre3.pptx
Chapitre3.pptx
 
Cours formation automate
Cours formation automateCours formation automate
Cours formation automate
 
cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
 
Automates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfAutomates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdf
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.ppt
 
L'application de l'amdec sur le valideur vpe 412
L'application de l'amdec sur le valideur vpe 412L'application de l'amdec sur le valideur vpe 412
L'application de l'amdec sur le valideur vpe 412
 
Cours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptCours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.ppt
 
L'automate programmable - www.cours-online.com
L'automate programmable - www.cours-online.comL'automate programmable - www.cours-online.com
L'automate programmable - www.cours-online.com
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptx
 
Chap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfChap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdf
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdf
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 

Microcontroleur arduino uno

  • 1. L’ESSENTIEL SUR LE MICROCONTRÔLEUR ET LA CARTE ARDUINO UNO Module I Arduino Uno Rev3 Théorique Préparé par: TANDU SUAMUNU Byorn MUNENA MPOYI Schadrack NABURACHA MURANGA David © 2016
  • 2. PLAN LES FONDAMENTALES DU MCU; ENVIRONNEMENT ARDUINO; PROGRAMMATION EN ARDUINO.
  • 3. LES FONDAMENTALES DU MCU Les MCUs sont à nos jours aussi fréquents dans les domaines tels que: les télécommunications (téléphones mobiles, modem,...), industriel (Automates programmables, imprimantes 3D,…), automobile (tableau de bord, contrôle des sièges,…), domotique (micro-ondes, machines à café,…), militaire (sonde, robots, lanceurs des fusées,...), etc 1. OÙ EN SOMMES-NOUSAVEC LES MCUs? Ils ont atteint une fréquente utilisation en 2014 avec 18,6 milliards d’unités vendues et une croissance de 12% l’année dernière (2015) (20.832.000.000 d’unités vendues) selon IC Insights. Ces bêtes programmables deviennent de plus en plus des autoroutes pour atteindre nos villes (targets) en pleine révolution.
  • 4. LES FONDAMENTALES DU MCU Le microcontrôleur (µC ou MCU pour MicroController Unit en anglais) est un circuit programmable capable d’exécuter un programme et possédant des circuits d’interface intégrés (entrées- sorties) avec le monde extérieur. En d’autre terme, le MCU est un mini-ordinateur sans clavier ni écran mais capable d’interagir avec le monde extérieur grâce à ses interfaces d’entrées-sorties intégrées. 2. QUID MCU? Apparu vers les années 1970 dont Intel fut le premier, ce dernier peut avoir 6 à 200 pattes pour interagir avec le monde extérieur (y compris celles d’alimentation) et généralement de 4-bits (pour sa première apparition et en disparition), 8-bits (le plus répandu), 16- bits et 32-bits (de plus en plus fréquents à nos jours).
  • 5. LES FONDAMENTALES DU MCU Un système à MCU est un système ayant en global un interfaçage d’entrée (une unité d’acquisition), une unité de traitement et un interfaçage de sortie (une unité de sortie). 3. STRUCTURE D’UN SYSTÈME A MCU INTERFACAGE D’ENTREE UNITE CENTRALE DE TRAITEMENT INTERFACAGE DE SORTIE UNITE DETRAITEMENT ELECTRONIQUE MCU Capteur/ Données en sortie Actionneur/ Données en sortie
  • 6. LES FONDAMENTALES DU MCU 3. STRUCTURE D’UN SYSTÈME A MCU LES DONNÉES EN ENTRÉE: Les données en entrée peuvent être d’origine diverses, elles peuvent provenir de capteurs (température, humidité,…), d’un clavier (pour le dialogue homme-machine), etc. Donc, toutes ces données sont acquisitionées par l’interface d’entrée. L’UNITE CENTRALE DETRAITEMENT: L’unité centrale de traitement est destinée au traitement de données/informations acquisitionées par l’unitée d’interfaçage d’entrée afin de fournir les données/informations nécessaires à la sortie. LES DONNEES EN SORTIE: Les données en sortie représentent le résultat attendu du traitement spécifié par le programme des données en entrée.
  • 7. LES FONDAMENTALES DU MCU 3. STRUCTURE D’UN SYSTÈME A MCU Hormis cette vision globale, un MCU contient en son sein les éléments ci-après:  Microprocesseur : Abrégé autre fois μP ou CPU pour Central Processing Unit en anglais. Comme dans un ordinateur classique, il est le cerveau d’un MCU.  Mémoires : contrairement à un ordinateur classique, le MCU comprend trois (3) types de mémoires qui se différentie dans l’utilisation avec celles d’un ordinateur classique. • RAM (Random Access Memory) : contient le programme d’exécution du MCU et elle est volatile c’est-à-dire les informations stockées se perdent dès mise hors tension. Sa taille peut aller de 256 octets à 1Ko mais, elle peut être élargie par une RAM externe de 32Ko. • ROM (Read Only Memory) : Elle contient généralement le programme de l’utilisateur et n’est accessible qu’en lecture seule. • EPROM (Erasable Programmable Read Only Memory) : est une mémoire ayant les mêmes propriétés qu’une ROM mais programmable. C’est-à-dire le programme en son sein peut être effacé par les rayons UV ainsi, elle peut être reprogrammée.
  • 8. LES FONDAMENTALES DU MCU 3. STRUCTURE D’UN SYSTÈME A MCU  Timer/horloge : elle donne la référence temporelle au MCU pour exécuter les instructions.  Chien de garde : Est une structure de contrôle du bon déroulement du programme pouvant être interne ou externe du MCU.  Le reset à la mise sous tension : avant le lancement du programme, le MCU a besoin d’un temps minimum qui est donné par la documentation du constructeur et par conséquent, il faut produire un signal de durée supérieure à la mise sous tension.  Surveillance de l’alimentation : lorsqu’une chute de tension dans l’alimentation est détectée, cette structure produit un reset au MCU.  Les périphériques : sont les périphériques d’interfaçage d’entrées et sorties du MCU, et de conversion du signal Analogique-Numérique ou l’inverse. Entre autres : les ports d’entrées-sorties (parallèles et analogiques),, les ports séries synchrones et asynchrones, la gestion Ethernet, les CAN, les CNA, la gestion de bus USB, la gestion de bus CAN.
  • 9. LES FONDAMENTALES DU MCU 4. APPLICATIONS Ces bêtes programmables sont à nos jours présentes dans tous les systèmes autonomes destinés à gérer des périphériques c’est-à-dire tout système ayant le contrôle des périphériques. D’où, ses applications s’avèrent énormes:  La technique médicale ;  Les systèmes de communication ;  Les technologies de sécurité ;  Mécatronique et automation industrielle ;  Moyens de transport ;  Électronique de consommation;  Etc.
  • 10. LES FONDAMENTALES DU MCU 5. CRITERES DE CHOIX Le choix d’un MCU est porté sur son nombre de pattes, la fréquence du CPU, la taille du bus de données (8-bits, 16-bits ou 32-bits) et le prix. 6. AVANTAGES  Diminution de l’encombrement du matériel et du circuit imprimé;  Simplification du tracé du circuit imprimé p(lus besoin de tracer de bus;  Augmentation de la fiabilité du système - nombre de composants réduits; - connexions composants/supports et composant circuit imprimé.  Intégration en technologie MOS, CMOS, ou HCMOS: - diminution de la consommation  Le microcontrôleur contribue à réduire les coûts à plusieurs niveaux: - moins cher que les composants qu’il remplace ; - Diminution des coûts de main d’oeuvre (conception et montage).  Environnement de programmation et de simulation évolués.
  • 11. LES FONDAMENTALES DU MCU 7. INCONVENIENTS/DEFAUTS  le microcontrôleur est souvent surdimensionné devant les besoins de l’application;  Investissement dans les outils de développement;  Fabrication uniquement en grande série >1000.
  • 12. ENVIRONNEMENT ARDUINO 1. QUID ARDUINO? Arduino est un projet Open Source développé en 2005 par : Massimo Banzi, David Cuertielles, Tom Igoe, Gianluca Martino, David Mellis, Nicolas Zambetti. C’est un concept à la fois matériel et logiciel appelé « système Arduino ». Retenons qu’Arduino n’est pas un microcontrôleur en soi mais un environnement à MCU et constitué de plusieurs cartes électroniques programmables entre autre: entre autre : Uno, Mega, leonardo, Yun, Duemilanove, Diecimila, Nano, Mini, LilyPAd et Serial. Toutes programmées par un langage proche/semblable du C appelé langage Arduino et faisant l’objet de nos travaux pratiques.
  • 13. ENVIRONNEMENT ARDUINO 2. CARACTERISTIQUES ARDUINO UNO  Microcontrôleur : ATmega328  Tension de fonctionnement : 5V  Tension d'Input (recommandée) : 7-12V  Tension d'Input : (limites) : 6 -20V  Pins I/O digitales : 14 (dont 6 sont des PWM - modulation de largeur d'impulsions)  Pins InputAnalogiques : 6 (A0, A1, A2, A3, A4 et A5)  Courant DC par pin I/O : 40 mA  Courant DC pour la broche 3.3V : 50 mA  Mémoire Flash : 32 KB (ATmega328) dont 0.5 KB utilisé par le 'bootloader'  SRAM : 2 KB (ATmega328)  EEPROM : 1 KB (ATmega328)  Fréquence d'horloge: 16 MHz La carte Arduino Uno a les caractéristiques ci-après:
  • 15. ENVIRONNEMENT ARDUINO 3. QUE PILOTERA ARDUINO? Tout dispositif technique (ou un appareil ou une machine d’un domaine quelconque) peut être contrôlé d’une manière automatique ou par un ordinateur, il suffit juste d’une interface compatible avec ce dispositif et d’un programme/logiciel adapté. De même, la carte Arduino peut commander/piloter une large gamme de dispositifs, il suffit de la munir d’un programme adapté. En réalité, elle est une des interfaces pour piloter ces dispositifs techniques. Donc, la carte Arduino comme tout MCU peut commander un actionneur ou un pré-actionneur pour commander une partie puissance (le cas des Moteurs avec des relais).
  • 16. ENVIRONNEMENT ARDUINO 3. QUE POURRA PILOTER LA CARTE ARDUINO? C’est ainsi, elle peut piloter:  Un moteur;  Un afficheur ou plus (le cas de montre digitale ou chronomètre);  Une télévision;  Des lampes;  Une plaque chauffante;  Une alarme (le cas de détecteur d’intrusion, )  Une micro-onde;  Etc. En conclusion, les applications de la carte Arduino ou du MCU se différent selon l’imagination du programmeur car, elles sont multiples.
  • 17. ENVIRONNEMENT ARDUINO 3. PROBLEMATIQUE DE PILOTAGE? Comment utiliser ladite carte avec ces diverses applications d’autant plus qu’elle ne délivre qu’une tension de +5v DC sur toutes ses bornes (le cas d’un moteur à 12v DC par exemple), elle ne possède aucune antenne pour envoyer les informations à distance (le cas d’une alarme détecteur d’intrusion),…?
  • 18. ENVIRONNEMENT ARDUINO Les développeurs du projet Arduino ont prévu les solutions ci-après: 4. SOLUTIONS/ASTUCES  Les cartes d’extension pour remplir certaines fonction, entre autre: • Shield Motor; • Shield GSM; • Etc.  Utilisation des montages électroniques;  Utilisation des circuits intégrés pour élargir les E/S afin de remplir certaines fonctions. De même, seule la carte ne suffit pour répondre à certaines attentes. C’est ainsi, elle est raccordé à des composants tels que: Les composants actifs et passifs (Résistances fixe et variables, diodes, condensateurs,…), Décodeur BCD, etc.
  • 19. PROGRAMMATION EN ARDUINO Comme évoqué ci-haut, un MCU est une bête programmable. alors comment le programmer et avec quel langage s’y prendre? Un MCU est programmé grâce à un programmateur (ressemblant à un socket) dont le programme (codé dans un langage approprié) est téléversé à partir d’un PC moyennant un compilateur. Un MCU peut être programmé dans un langage: o Machine; o Assembleur; o Haut niveau (C, C++, Java,…). Mais, la majorité des MCUs sont programmés en C. Ainsi,Arduino est proche de C.
  • 20. LE LANGAGE ARDUINO Un langage de programmation est une grammaire formelle qui inclut des symboles et des règles syntaxiques auxquels on associe des règles sémantiques. PROGRAMMATION EN ARDUINO Il en est ainsi pour Arduino qui, malgré sa ressemblance avec le C a ses propres règles, symboles et syntaxiques. Donc, avec Arduino, il y a une phase de déclaration, d’initialisation, appel de fonction, appel de librairies,…
  • 21. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Commentaire Un commentaire en langage de programmation est un bout de mots destinés à documenter le programme et n’est pas exécuté par le compilateur. // Ceci est un commentaire simple /* ceci est un long commentaire */ Son importance est pour un repérage facile lors de la programmation d’un gros programme contenant beaucoup de lignes tant faciles que complexes.
  • 22. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Déclaration des variables Une variable est un espace réservé dans la mémoire contenant une information (valeur), qui est caractérisée par un nom et un type. int nomVariable1 ; float nomVariable2 ; char nomVariable3 ; long nomVariable4 ; Déclarer une variable, c’est créer cet espace prêt à acquérir l’information. Ainsi, nous avons : int (entier), float (flottant), char (caractère), long int (entier long), byte et volatile. Forme : <type> <nom_de_la_variable>
  • 23. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Déclaration des constantes Il est parfois nécessaire de déclarer des variables qui ne changeront pas tout au long de l’exécution du programme, ces variables sont appelées les constantes. Const int nomVariable1 ; Const float nomVariable2 ; Const char nomVariable3 ; Forme : <mot_clef> <type> <nom_de_la_variable>
  • 24. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Déclaration des tableaux Un tableau est une variable particulière contenant des lignes et des colonnes. En d’autre terme un tableau est un ensemble fini d'éléments de même type. int tab[5] ; int tab2[3][2] ; int tab3[2] ; Forme une dimension : <type> <nom_du_tableau> [<nombre_éléments>] Forme 2D :<type> <nom_du_tableau> [<nombre_éléments1>][<nombre_éléments2>]
  • 25. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Affectation Affecter une variable/tableau, c’est lui attribuer de l’information (valeur) pour une bonne manipulation. Ce processus est remarqué par l’opérateur égal (=) et des accolades {} pour le tableau. int nomVariable1 = 5; float nomVariable2 = 2.3 ; char nomVariable3 =’a’; long nomVariable4 = 1000; int tab [5] = {1, 2, 3, 4, 5, 6} ; float tab2 [3] = {1.0, 2.0, 3.0} ; char tab [] = {’a’, ’c’} ; Forme : <type> <nom_de_la_variable> = <valeur>
  • 26. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Opérateurs arithmétiques L’addition (+), la soustraction (-), la division (/), la multiplication (*) et le modulo (%) sont des opérateurs arithmétiques. int nomVariable1 = 5; int nomVariable2 = 2; int somme ; somme = nomVariable1 + nomVariable2  Opérateurs rationnels Ces opérateurs comparent deux valeurs, nous avons : < Strictement inférieur > Strictement supérieur != Différent de == égal (à ne pas confondre avec le signe d’affectation =) <= inférieur ou égal >= supérieur ou égal
  • 27. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Autres opérations Hormis les opérations arithmétiques citées ci-haut, le C offre un raccourci d’ajout et de soustraction d’un nombre que celui existant appelé l’incrémentation et la décrémentation. Elles sont remarquées par les signes (++) pour la première (incrémentation) et (--) pour la deuxième (décrémentation). int nomVariable1 = 5; int nomVariable2=nomVariable1++; int nomVariable3=4 ; int nomVariable4=nomVariable3-- ;
  • 28. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Instructions de controle Une instruction de contrôle permet de contrôler le fonctionnement d'un programme. Parmi ces instructions, on distingue les instructions de branchement et les boucles. If (expression1) Instruction1 ; Else Instruction2 ; a. Instruction de branchement Les instructions de branchement permettent de déterminer quelles instructions seront exécutées et dans quel ordre. If (expression1) Instruction1; Else if (expression2) Instruction2; Else Instruction3; Branchement simple:
  • 29. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO //illustration de la forme 1 int nomVariable1 = 5; int nomVariable2=3 int nomVariable3 ; if (nomVariable1=5); nomVariable3=nomVariable1+nomVariable2; else nomVariable3=nomVariable1-nomVariable2; //illustration de la forme 2 int nomVariable4 = 4 ; int nomVariable5 = 2; int nomVariable6 ; if (nomVariable4 = 4) nomVariable6 = nomVariable4 + nomVariable5; else if (nomVariable4 > 5) nomVariable6 = nomVariable4 - nomVariable5; else nomVariable6=nomVariable4 * nomVariable5;
  • 30. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO Branchement multiple: switch (expression) { case valeur1 : Instruction1; break ; Case valeur2 : Instruction2; break ; Case valeurN : InstructionN; break ; } int nomVariable1 = 5; int nomVariable2=3 int nomVariable3 ; switch (nomVariable1){ case nomVariable1 = 5 : nomVariable1 = nomVariable1 + nomVariable2 ; break ; case nomVariable1 = 2 : nomVariable1 = nomVariable1- nomVariable2 ; break ; }
  • 31. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO b. Les boucles while (expression){ Instruction; } int nomVariable1 = 2 ; int nomVariable2 = 3; int nomVariable3 ; while (nomVariable1 = 2){ nomVariable3 = nomVariable2++; } BoucleWHILE
  • 32. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO Do { Instruction } while (expression) int nomVariable1 = 2 ; int nomVariable2 = 3; int nomVariable3 ; do { nomVariable3 = nomVariable2++} while (expression) Boucle DO…WHILE
  • 33. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO void nomProcedure () { Instruction-bloc; } int nomFonction (int nomVariable) { Instruction-bloc; Return <expression>; }  Procédure et fonction Une fonction est un bout de codes destiné à effectuer une tache précise et renvoie généralement une valeur, résultat d’un calcul.Tandis qu’une méthode ne renvoie pas un résultat. Forme : déclaration :<type> <nom_de_la_fonction> (<paramètre(s)_de_la_fonction>)
  • 34. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO pinMode(13,OUTPUT);pinMode(13,INPUT);  Initialisation des pins Il est évident que le MCU est une bête donc, ne sait faire que ce que l’on lui dit de faire c’est-à-dire lui préciser réellement ce que ses pins seront soit à l’état d’acquisition (initialisé comme entrée) ou de restitution (initialisé comme sorties) o Initialisation des pins en entrée et en sortie Pour initialiser une pin avec Arduino, il suffit d’appeler la fonction prédéfinie pinMode() en lui donnant comme paramètre, le numéro de port et l’état, soit en entrée (INPUT) ou soit en sortie (OUTPUT).
  • 35. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO Void setup(){ pinMode(13,OUTPUT); } Void setup(){ pinMode(13,INPUT); } o Où appeler cette fonction pour initialiser les pins? Dans la programmation de la carte Arduino, il a été prévu deux fonctions prédéfinies dont l’une est pour l’initialisation ou la configuration (void setup()) et l’autre pour la boucle (void loop()). D’où, comme il s’agit de l’initialisation, toutes ces commandes seront faites dans void setup().
  • 36. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO Void loop(){ digitalRead(13); } Void loop{ digitalWrite(13,HIGH); }  LES FONCTIONS DigitalWrite() et DigitalRead() Après la configuration, il sera question d’activer lesdites pins à l’état haut qui correspond à fournir une tension de +5v (HIGH) ou bas qui correspond à 0v (LOW) ou encore de lire l’état du capteur au cas où, la pin a été initialisée en entrée. DigitaWrite() sert à configurer l’état d’une pin digitale et reçoit deux paramètres dont le numéro de la pin et son état (HIGH ou LOW). DigitalRead() sert à lire l’état d’un capteur connectée sur une pin digitale et recoit en paramètre le numéro de la pin, si possible avec son état (HIGH ou LOW).
  • 37. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LES FONCTIONS analogWrite() et analogRead() Pour lire/afficher une valeur (ou l’état d’un capteur) analogique, il est évident qu’il faut utiliser les pins analogiques (A1, A2, A3, AA4 et A5) en utilisant les fonctions soit analogRead() pour la lire et analogWrite() pour afficher. Ces fonctions reçoivent en paramètre le numéro de la pin. Elles peuvent être tout comme les deux précédentes (digitalWrite() et digitalRead()) appelées partout dans le programme.
  • 38. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE Il est possible qu’un MCU puisse communiquer avec un autre système à CPU tel qu’un PC, MCU,… Ainsi, cette interface/liaison permet cette communication entre systèmes à CPU reposant sur la norme RS232. C’est-à-dire avec cette liaison, nous pouvons faire communiquer deux MCUs, cartes Arduino, PCs et autres appareils/dispositifs supportant cette norme. La dite liaison est obtenue par un connecteur DB9 qui est presque plus existant à nos jours mais cela est remédié par un câble USB le cas de communication PC-Arduino.
  • 39. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE  Communication Arduino Uno et PC Pour utiliser cette liaison, il faut l’établir non seulement physiquement c’est-à-dire par un câble mais aussi dans le programme tout en définissant la vitesse de communication exprimée en bauds (bds). void setup(){ Serial.begin(vitesse); } Pour établir une communication série, il suffit d’ajouter la syntaxe ci-dessous dans setup() : La vitesse s’étend de 110 à 115200 bauds (bds). void setup(){ Serial.begin(9600); }
  • 40. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE  Communication d’une carte Arduino avec une autre. Pour relier une carte Arduino avec une autre, il suffit de relier les deux broches Rx et Tx de l’une avec les Rx et Tx de l’autre. C’est-à- dire relier Rx de l’une avec Tx de l’autre et Tx de l’une avec Rx de l’autre. Rx Rx Tx Tx Carte 1 Carte 2
  • 41. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE o Envoi de données Relier deux systèmes implique le partage des données entre ces derniers, pour ce cas précis (entre une carte Arduino et un PC) ce partage se fait dans les deux sens. Les données qu’enverront la carte Arduino seront prélevées par des capteurs et envoyées dans un PC via une liaison série pour être informé de quelques détails. Pour envoyer des données via cette liaison, il suffit de taper la commande ci-après: void loop () { Serial.print(valeur_a_envoyer); Serial.println(valeur_a_envoyer); } La valeur à envoyer est celle contenant une variable récupérée par un capteur.
  • 42. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE o Réception de données Il est évident que cette réception devra se faire soit du PC-Arduino soit Arduino-PC pour ce cas, c’est la carte qui reçoit donc PC- Arduino.  Les fonctions Serial.avalaible() et Serial.read() Les deux fonctions de l’objet Serial ci-haut permettent de vérifier et lire les données dans le buffer de réception d’une liaison série. L’une vérifie la présence d’une donnée si non elle revoie -1. void loop(){ int donnee = Serial.avalaible(); } En réalité, ladite fonction renvoie le nombre de caractères dans le buffer de réception et au cas où il y a l’absence, elle renvoie -1. En somme, la fonction vérifie seulement la présence des données.
  • 43. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE o Réception de données Dès que les données sont présentent dans le buffer de réception, il est possible de les lire avec la fonction read() du même objet: void loop(){ char donnee = Serial.read(); } Le caractère lu est stocké dans une variable afin si possible d’être utilisée ultérieurement.
  • 44. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  ENTREESANALOGIQUES Ces entrées correspondent à la manipulation des données analogiques via les pins analogiques (A0, A1, A2, A3, A4, A5) Les données analogiques proviennent de capteurs tels que: un potentiomètre, une LDR, un piézoélectrique, un capteur de température, etc. Un signal analogique est constitué d’une fréquence, période et amplitude; la fréquence est le nombre de fois que ce signal change de l’alternance en une seconde et est l’inverse de la période, et l’amplitude est le niveau maximal de ce signal. Une fois l’une de ces entrées est connectée à un capteur le dit signal sera converti en numérique grâce à un convertisseur analogique-numérique (CAN intégré dans la carte) afin d’être manipulé par le MCU.
  • 45. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  ENTREESANALOGIQUES L’acquisition est faite par la fonction analogRead() et reçoit en argument le numéro de pin analogique. La fonction retourne une valeur int comprise entre 0 et 1023, et devra être converti en volt en la multipliant par 5 puis diviser par 1024. Int valeur=0; Int capteur=0; float vExacte=0; void loop(){ valeur = analogRead(capteur); vExacte = (valeur*5)/1024; }
  • 46. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  ENTREESANALOGIQUES Il est possible avec la fonction map() de raccourcir le processus pour atteindre le même but. Elle prend en argument cinq (5) paramètres dont la valeur à convertir (acquise par le capteur), le 0, 1023, o et 5000 (5000mV ce puis diviser par 1000 pour avoir 5v). Int valeur=0; Int capteur=0; float vExacte=0; void loop(){ valeur = analogRead(capteur); vExacte = map(valeur, 0, 1023, 0, 5000); vExacte = vExacte/1000; }
  • 47. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI L’acronyme PWM pour Pulse Width Modulation en français Modulation à Largeur d’Impulsion. Elle est en fait un signal numérique qui, à une fréquence donnée, a un rapport cyclique qui change.  PWM/MLI Le rapport cyclique avec un signal numérique désigne le fait que le niveau logique 1 peut ou ne pas durer le même temps que le niveau logique 0. Il est mesuré en pour cent (%). Plus le pourcentage est élevé, plus le niveau logique 1 est présent dans la période et moins le niveau logique 0 l'est. Et inversement.
  • 48. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI D’où, la PWM est un signal de fréquence fixe ayant un rapport cyclique variant dans le temps. Ainsi, la fréquence de la PWM avec la carte Arduino est de 490Hz.
  • 49. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  PWM/MLI D’autant plus que la PWM est un signal numérique, sa génération est faite par la fonction analogWrite() via les pins 3, 5, 6, 9, 10 et 11 dites pins PWM marquées avec le symbole tilde (~). La dite fonction reçoit deux (2) paramètres: 1. le numéro de la pin; 2. la valeur du rapport cyclique (comprise entre 0 et 255). - 0 représente un rapport cyclique de 0%; - 127 représente 50%; - 255 représente 100%; - pour avoir un rapport cyclique quelconque, il suffit de diviser la valeur par 255 multipliée par 100 (e.g. 169/255 = 0,6627*100 = 66,27%).
  • 50. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  PWM/MLI int capteur=0; void setup(){ pinMode(capteur, OUTPUT); } void loop(){ analogWrite(capteur,169); } Cette commande/fonction analogWrite() génère de la PWM avec un rapport cyclique de 66,2%. Ainsi, avec la PWM il est possible de varier la vitesse d’un moteur à DC.
  • 51. PROGRAMMATION EN ARDUINO ANALOG : Analogique. AREF : Abréviation pour Analog REFerence, référence analogique. AVAILABLE : Disponible. BEGIN : Début. BIT : bit, unit d'information informatique pouvant prendre soit la valeur 0 soit la valeur 1. BUFFER : Tampon, dans le sens de "zone tampon". BYTE : Octet, soit un groupe de 8 bits. bps : Abréviation pour Bits Per Second, Bits Par Seconde. Attention, abréviation toujours en minuscules. Les termes ci-dessous sont les plus employés dans ledit domaine de l’életronique programmée: LEXIQUE DESTERMES EN ANGLAIS
  • 52. PROGRAMMATION EN ARDUINO BREADBOARD: plaque d’expérimentation CAPACITOR: condensateur CHAR : Abréviation de CHARacter, caractère (typographique). Type de variable d'une taille d'un octet. C'est un synonyme de "byte" utilisé pour déclarer des variables stockant un caractère ou des chaines de caractères. DEFINE : Définit. DIGITAL : Numérique. DO : Faire. FALSE : Faux. FOR : Pour. GND : Abréviation pour GrouND, la terre. C'est la masse, 0Volt. HIGH : Haut. ICSP : Abréviation pour In Circuit Serial Programming, programmation série sur circuit. IF /THEN/ ELSE : Si / Alors / Sinon. IN : Souvent l'abréviation pour INput, Entre. Est toujours en rapport avec le sens extérieur vers carte Arduino. LEXIQUE DESTERMES EN ANGLAIS
  • 53. PROGRAMMATION EN ARDUINO INCLUDE : Inclut. INPUT : Entrée. IS : Est (souvent dans le sens d'une question : Est ?). INT : Abréviation pour INTeger, entier. Groupe de 16 bits, 2 octets groupés, considérés comme représentant un nombre entier négatif ou positif. LONG : Abréviation pour "entier long". Groupe de 32 bits, 4 octets groupés, considérés comme représentant un nombre entier négatif ou positif. LOOP : Boucle. LOW : Bas. OUT : Souvent l'abréviation pour OUTput, Sortie. Est toujours en rapport avec le sens carte Arduino vers extérieur. OUTPUT : Sortie. PIN : Broche. POWER : Puissance, alimentation. PWM : Abréviation de (Pulse Width Modulation), soit Modulation en Largeur d'Impulsion. PWR : Abréviation pour PoWeR, puissance, alimentation. READ: Lire. LEXIQUE DESTERMES EN ANGLAIS
  • 54. PROGRAMMATION EN ARDUINO RESISTOR: résistance. RELAY: relais. RX : Abréviation pour Receive, réception. SERIAL : Série. SETUP : Initialisation. SENSOR: capteur TRUE : Vrai. TX: AbréviationTransmit, transmission (mission). WIRE: câble WHILE : Tant que. WORD : mot, soit dans le mot de langage ; soit dans le sens d'un groupe de 16 bits, 2 octets groups considérés comme représentant un nombre entier positif (>= 0). WRITE: Écrire. LEXIQUE DESTERMES EN ANGLAIS
  • 55. BIBLIOGRAPHIE - WEBOGRAPHIE WEBOGRAPHIE 1. http://www.electronique-mixte.fr/kits-de-developpement-processeurs-et- microcontroleurs/kit-msp430-de-ti/. 2. http://www.wikipedia.org/wiki/Langage_de_programmation 1. Arduino pour bien commencer en électronique et en programmation, Astalaseven, Eskimon et olyte, site du zero, 2012 inédit; 2. Les microcontrôleurs dans les systèmes embarqués, Elham Firouzi, Haute école spécialisée bernoise, Janvier 2012 inédit; 3. Microprocesseurs & Microcontrôleurs, Sylvain MONTAGNY, Université de Savoie, 4. Les microcontrôleurs, JérômeVICENTE, université de Marseille, 2005 inédit. BIBLIOGRAPHIE