Beruflich Dokumente
Kultur Dokumente
SEANCE 4
24 mai 2018 1
PROGRAMME :
CHAPITRE 1 : ARCHITECTURE DES ORDINATEURS
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
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.
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.
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 () ;
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 () ;
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
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 () »
Syntaxe : lcd.begin(P1,P2) ;
2- La fonction « lcd.setCursor () »
Positionne le curseur de l'afficheur LCD à la localisation voulue (colonne, ligne).
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
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.
24 mai 2018 18
GESTION DES BROCHES ANALOGIQUES
II - QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »
2- La fonction « map () »
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 () »
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