Sie sind auf Seite 1von 22

Microcontrôleur NG

SEANCE 4

24 mai 2018 1
PROGRAMME :
CHAPITRE 1 : ARCHITECTURE DES ORDINATEURS

CHAPITRE 2 : PRESENTATION DE LA CARTE ARDUINO

CHAPITRE 3 : INTRODUCTION A LA PROGRAMMATION EN LANGAGE « C ARDUINO »

CHAPITRE 4 : GESTION DES ENTREES/SORTIES NUMERIQUES

CHAPITRE 5 : COMMUNICATION PAR LIAISON SERIE

CHAPITRE 6 : GESTION DES ENTREES ANALOGIQUES

24 mai 2018 2
CHAPITRE 5 : COMMUNICATION PAR LIAISON SERIE

Objectifs :
 Comprendre le fonctionnement de la communication par liaison série ;
 Etudier des fonctions C Arduino spécifiques aux broches RX et TX ;
 Elaborer un organigramme et un programme en langage C Arduino.

24 mai 2018 3
COMMUNICATION PAR LIAISON SÉRIE
I - PRESENTATION DES BROCHES
Une liaison série est un moyen de communication qui se fait bit par bit, et ce, de
manière séquentielle entre deux systèmes électroniques.

La carte Arduino UNO assure la communication par liaison série asynchrone avec
d'autres systèmes électroniques en utilisant les broches numériques 0 (RX) et 1 (TX) ou
le port USB.
23 mai 2018 4
COMMUNICATION PAR LIAISON SÉRIE
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

1- Initialisation de la communication

La fonction « Serial.begin () » permet d’initialiser la communication par liaison série en


ouvrant le port série de la carte Arduino et en fixant le débit de communication.

Syntaxe : Serial.begin (Param1) ;

La fonction « Serial.begin () » accepte un paramètre obligatoire.


Param1 : débit de communication en caractères par seconde (ou baud).

Pour communiquer avec un ordinateur il est possible d’utiliser l'un de ces débits : 300,
1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 ou 115200.

23 mai 2018 5
COMMUNICATION PAR LIAISON SÉRIE
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

2- Transmission de données

 La fonction « Serial.write () »
La fonction « Serial.write () » permet d’écrire les données binaires sur le port série. Ces
données sont envoyées comme un octet ou une série d'octets.

Syntaxe : Serial.write (Param1, Param2) ;

La fonction « Serial.print () » accepte un à deux paramètres obligatoires selon la nature de


la donnée.
Param1 : donnée à écrire (une valeur, un caractère ou un tableau).
Param2 : longueur du tableau. Utilisé uniquement si la donnée à écrire
se trouve dans un tableau.
23 mai 2018 6
COMMUNICATION PAR LIAISON SÉRIE
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

2- Transmission de données
 La fonction « Serial.print () »
La fonction « Serial.print () » permet d’afficher les données envoyées sur le port série
sous la forme d'une chaîne de caractères ASCII.

Syntaxe : Serial.print (Param1, Param2) ;

La fonction « Serial.print () » accepte un paramètre obligatoire et un paramètre


optionnel.
Param1 : donnée à afficher.
Param2 : format de la donnée.
Lorsque Param2 n’est pas spécifié, la fonction « Serial.print () » affiche la donnée (Param1) sous la forme
d'une chaîne de caractères ASCII.
La fonction « Serial.println () » permet d’afficher les données reçues avec un retour à la ligne.
23 mai 2018 7
COMMUNICATION PAR LIAISON SÉRIE
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

3- Réception de données

 La fonction « Serial.available () »
La fonction « Serial.available () » permet d’indiquer la présence de données sur un port
série.

Syntaxe : Serial.available () ;

La fonction « Serial.available () » ne prend aucun paramètre.


Elle renvoie le nombre d'octets disponible pour la lecture dans la file d'attente du port
série. Elle renvoie « 0 » si aucun caractère n'est disponible. La file d'attente du buffer
peut recevoir jusqu'à 128 octets.

23 mai 2018 8
COMMUNICATION PAR LIAISON SÉRIE
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

3- Réception de données

 La fonction « Serial.read () »
La fonction « Serial.read () » permet de lire les données entrantes sur le port Série.

Syntaxe : Serial.read () ;

Cette fonction « Serial.read () » ne prend aucun paramètre.


Elle renvoie le premier octet de donnée entrant disponible dans la file d'attente du
buffer du port série ou « -1 » si aucune donnée n'est disponible. L'octet lu est « enlevé
» de la file d'attente. Ainsi pour lire tous les octets sur un port série il faudra répéter
l’appel de cette fonction.

23 mai 2018 9
COMMUNICATION PAR LIAISON SÉRIE
III - APPLICATION 1 : Réception et transmission par liaison série
ARD1

ON
Reset BTN

www.TheEngineeringProjects.com
AREF U1
7 13
13 A QA
PB5/SCK 1 12
12 B QB
RESET PB4/MISO 2 11
11 C QC
~PB3/MOSI/OC2A 6 10
10 D QD
VCC ~PB2/SS/OC1B 4 9
+5V 9 BI/RBO QE
GND ~ PB1/OC1A 8 5 15
PB0/ICP1/CLKO RBI QF
3 14
LT QG
ATMEGA328P-PU
1121

7 +5V
ANALOG IN

PD7/AIN1 74LS48
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4 TX RXD
A2 PD4/T0/XCK
PC2/ADC2 3
A3
PC3/ADC3 ~ PD3/INT1 2 RX TXD
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0 TX RTS
RX PD0/RXD
RX
CTS
ARDUINO UNO
TRANSMETEUR-RECEPTEUR
Le système est piloté par une carte Arduino UNO et permet d’afficher sur l’afficheur 7 segments et sur le
terminal virtuel un chiffre compris entre 0 et 9. L’information est transmise à la carte Arduino à partir du
terminal virtuel par liaison série asynchrone.
24 mai 2018 10
COMMUNICATION PAR LIAISON SÉRIE
III - APPLICATION 2 : Afficheur d’information à écran LCD
LCD1
LCD 16X2

ARD1 www.TheEngineeringProjects.com

ON
Reset BTN

www.TheEngineeringProjects.com
AREF

VDD
VEE
VSS

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
13

E
PB5/SCK
12
RESET PB4/MISO
11
~PB3/MOSI/OC2A
10
VCC ~PB2/SS/OC1B
+5V 9
GND ~ PB1/OC1A 8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121

7 +5V
ANALOG IN

PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3
PC3/ADC3 ~ PD3/INT1 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0 RXD
RX PD0/RXD
TXD
ARDUINO UNO
RTS

CTS

TRANSMETEUR-RECEPTEUR

Le système est piloté par une carte Arduino UNO et permet d’afficher une information (32 caractères au
maximum) sur un écran LCD et sur le terminal virtuel. L’information est transmise à la carte Arduino à
partir du terminal par liaison série asynchrone.
24 mai 2018 11
AFFICHEUR LCD 2x16

1- Bibliothèque de l’afficheur LCD

Syntaxe : #include <LiquidCrystal.h>

2- Déclaration de l’afficheur lcd et configuration


Syntaxes :
Mode 4 bits
LiquidCrystal lcd(RS, E, D4, D5, D6, D7) ; (RW non connectée)
LiquidCrystal lcd(RS, RW, E, D4, D5, D6, D7) ; (RW utilisée)

Mode 8 bits :
LiquidCrystal lcd(RS, E, D0, D1, D2, D3, D4, D5, D6, D7) ; (RW non connectée)
LiquidCrystal lcd(RS, RW, E, D0, D1, D2, D3, D4, D5, D6, D7) ; (RW utilisée)
24 mai 2018 12
AFFICHEUR LCD 2x16
1- La fonction « lcd.begin () »

Spécifie les dimensions de l'afficheur lcd.

Syntaxe : lcd.begin(P1,P2) ;

P1 : nombre de lignes et P2 : nombre de colonnes

2- La fonction « lcd.setCursor () »
Positionne le curseur de l'afficheur LCD à la localisation voulue (colonne, ligne).

Syntaxe : lcd.setCursor (P1,P2) ;

P1 : la ligne et P2 : la colonne
24 mai 2018 13
Microcontrôleur NG
SEANCE 5

24 mai 2018 14
PROGRAMME :
CHAPITRE 1 : ARCHITECTURE DES ORDINATEURS

CHAPITRE 2 : PRESENTATION DE LA CARTE ARDUINO

CHAPITRE 3 : INTRODUCTION A LA PROGRAMMATION EN LANGAGE « C ARDUINO »

CHAPITRE 4 : GESTION DES ENTREES/SORTIES NUMERIQUES

CHAPITRE 5 : COMMUNICATION PAR LIAISON SERIE

CHAPITRE 6 : GESTION DES ENTREES ANALOGIQUES

24 mai 2018 15
CHAPITRE 6 : GESTION DES BROCHES ANALOGIQUES

Objectifs :
 Comprendre le fonctionnement des broches analogiques ;
 Etudier des fonctions C Arduino spécifiques aux broches analogiques ;
 Elaborer un organigramme et un programme en langage C Arduino.

24 mai 2018 16
GESTION DES BROCHES ANALOGIQUES
I - PRESENTATION DES BROCHES
Une broche analogique est un point de connexion physique qui permet à la carte
Arduino UNO d’interagir avec d’autres périphériques via un signal analogique.

 Signal analogique :
Infinité de valeurs dans une plage donnée
Ex : Capteur de température analogique
Plage de valeur de 0 à 50°C.
10
 Numérisation : 10 bits (2 =1024)
Valeur minimale
TMin =0 °C --> UMin = 0 V --> ValMin = 0
Valeur maximale
TMax =50 °C --> UMax = 5 V --> ValMax = 1023
6 entrées analogiques A0, A1, A2, A3, A4, et A5 Valeur courante
24 mai 2018 (ΔT).Val =(Δval).T 17
GESTION DES BROCHES ANALOGIQUES
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

1- La fonction « analogRead() »

Cette fonction permet de lire la valeur sur une entrée analogique de la carte Arduino.

Syntaxe : analogRead (Param1) ;

Param1 : le numéro de la broche analogique.

La fonction retourne la valeur lue qui est le résultat de la conversion


analogique/numérique. Cette valeur est un entier compris entre 0 et 1023.

24 mai 2018 18
GESTION DES BROCHES ANALOGIQUES
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

2- La fonction « map () »

Cette fonction permet de calculer l’équivalent d’une valeur selon l’intervalle de la


valeur d’entrée et l’intervalle de la valeur de sortie.

Syntaxe : map (P1, P2, P3, P4, P5) ;

P1 : la valeur d’entrée ;
P2 : la valeur minimale d’entrée ; P3 : la valeur maximale d’entrée ;
P4 : la valeur minimale de sortie ; P5 : la valeur maximale de sortie ;

À partir d’une valeur d’entrée, d’un intervalle d’entrée et d’un intervalle de sortie, la
fonction retourne la valeur entière équivalente appartenant à l’intervalle de sortie.
24 mai 2018 19
GESTION DES BROCHES ANALOGIQUES
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

3- La fonction « analogReference () »

Cette fonction permet de définir la tension de référence à utiliser pour la conversion de


la valeur sur une broche analogique.

Syntaxe : analogReference (Param1) ;

Cette fonction prend en paramètre le nom de la référence à utiliser.


Param1 = DEFAULT : la valeur par défaut est 5V.
Param1 = INTERNAL : la valeur de la référence interne est 1.1V.
Param1 = EXTERNAL : La valeur de la référence externe sera celle appliquée sur la
broche AREF. La tension de référence applicable à la broche AREF doit être comprise
entre 0 V et +5V.
24 mai 2018 20
GESTION DES BROCHES ANALOGIQUES

REMARQUE :

À noter qu'il est possible d'utiliser les broches analogiques de l'Arduino comme des
broches numériques. Il suffit de déclarer dans le setup() le port en mode INPUT,
INPUT_PULLUP ou OUTPUT avec la fonction pinMode(). On utilise ensuite
digitalWrite() ou digitalRead().

Exemple : pinMode(A0,OUTPUT) ;

24 mai 2018 21
AFFICHEUR LCD
TAF : Ecrire un programme en C Arduino permettant
LCD 16X2

www.TheEngineeringProjects.com
d’afficher la valeur du capteur sur le terminal virtuel et
sur l’afficheur LCD. CARTE ARDUINO UNO

VDD
VEE
VSS

RW
RS
ON

D0
D1
D2
D3
D4
D5
D6
D7
Reset BTN

E
www.TheEngineeringProjects.com
AREF
13
PB5/SCK
12
RESET PB4/MISO
11 +5V
~PB3/MOSI/OC2A
10
VCC ~PB2/SS/OC1B
+5V +5V 9
GND ~ PB1/OC1A 8
PB0/ICP1/CLKO

ATMEGA328P-PU
1121 7
ANALOG IN

1 PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
37.0 PC2/ADC2 3
A3
PC3/ADC3 ~ PD3/INT1 2
A4 PD2/INT0
PC4/ADC4/SDA 1
2 A5 TX PD1/TXD
VOUT PC5/ADC5/SCL 0 RXD
RX PD0/RXD
TXD
3 LM35 ARDUINO UNO
RTS

CTS
24CAPTEUR
mai 2018 DE TEMPERATURE 22
TERMINAL VIRTUEL

Das könnte Ihnen auch gefallen