Académique Documents
Professionnel Documents
Culture Documents
2 L’interfacage Arduino↔Matlab/Simulink 6
2.1 Programmation de la carte Arduino Uno comme une carte d’interface . . . . . . . . . . . . . . . 6
2.1.1 Configuration de la carte Arduino UNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2 Traitement des données sous Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 ArduinoIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Pré-chargement du programme dans la carte Arduino . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Installation du package ArduinoIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 Exploitation de la bibliothèque ArduinoIO sous Simulink . . . . . . . . . . . . . . . . . . 9
2.2.4 Exploitation du package ArduinoIO sous Matlab . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Arduino Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Présentation de la maquette 18
1
Formation Arduino ↔ Matalab/Simulink Commande d’un système thermique
– Microcontroller : ATmega328
– Operating Voltage : 5v
– Input Voltage (recommended) : 7-12 v
– Input Voltage (limits) : 6-20 v
– DC Current per I/O Pin : 40mA
– DC Current for 3.3V Pin :50mA
– Flash Memory :32 KB
– Clock Speed : 16MHz
– Pins assignments :
– Analog read(A0-A5)
– Analog write[PWM] (3,5,6,9,10,11)
– Digital read(2-19)
– Digital write(2-19)
i n t DEL = 5 ;
void setup ( )
{
pinMode (DEL, OUTPUT) ;On i n i t i a l i s e l a borne 5 de l ’ Arduino
( n o m m e "DEL" ) comme une s o r t i e .
}
void loop ( )
{
d i g i t a l W r i t e (DEL, HIGH) ;On met l a borne 5 au n i v e a u
l o g i q u e haut (+5V) : l a d i o d e s ’ allume .
d e l a y ( 1 0 0 0 ) ; On a t t e n d un d e l a i de 1000ms ( s o i t 1 s ) .
d i g i t a l W r i t e (DEL, LOW) ;On met l a borne 5 au n i v e a u l o g i q u e bas ( 0V)
l a d i o d e s ’ teint .
d e l a y ( 1 0 0 0 ) ; On a t t e n d un d e l a i de 1000ms ( s o i t 1 s ) .
}
Et ainsi de suite tant que le circuit est alimenté.
2 L’interfacage Arduino↔Matlab/Simulink
Il existe trois possibilités d’interfacer la carte Arduino avec Matlab/Simulink, à savoir :
1. Programmation de la carte Arduino Uno comme une carte d’interface.
2. Utilisation du package ArduinoIO.
3. Utilisation du package Arduino Target.
série (également connue sous le nom d’UART ou USART).Serial, communique sur les pins
(0 :RX) et 1 :(TX)) avec l’ordinateur par l’intermédiaire d’USB.
– available() : Permet d’obtenir le nombre de bit (caractères) disponibles pour lire du port
série.Ces données sont stockées dans le buffer qui peut sauvegarder 64 bit.
– read() : Permet la lecture des bits entrants sur le port série(acquisition des données).
– write() : Permet l’écriture des bits sur le port série.(envoie des données)
Le programme suivant assure l’échange de données via le port série (USB) :
i n t e n t r e e ; // e n t r e e CAN
i n t s o r t i e ; // s o r t i e
void setup ( )
{
S e r i a l . b e g i n ( 9 6 0 0 ) ; / / ouvre l e p o r t s e r i e , f i x e l e d e b i t a 9600 bauds
pinMode ( 6 ,OUTPUT) ; // C o n f i g u r a t i o n de l a pi n 6 comme s o r t i e
}
void loop ( )
{
e n t r e e=analogRead (A0) ; / / l e c t u r e du CAN ( v a l e u r e n t r e 0 e t 1024)
S e r i a l . w r i t e ( e n t r e e ) ; // Envoie de l a donnee s u r l e p o r t USB
i f ( S e r i a l . a v a i l a b l e ( ) ) / / s i des donnees e n t r a n t e s s o n t p r e s e n t e s
{
s o r t i e=S e r i a l . read ( ) ; / / l e c t u r e des donnees a r r i v e s
a n a l o g W r i t e ( 6 , s o r t i e ) ; / / T r a n s f e r t de c e s d o n n e s s u r l a p i n 6
pour g e n e r e r l e s i g n a l PWM
}
d e l a y ( 1 0 0 ) ; // d e l a i de 100ms avant l a n o u v e l l e a c q u i s i t i o n
}
La bibliothèque Instrument Control Toolbox offre les blocs qui permettent l’échange des
données binaires.
– Data size
– Data type
– Block sample time
– Exemple d’acquisition et d’envoie sous Simulink :
2.2 ArduinoIO
Cette solution consiste à utiliser la carte arduino comme une interface d’entrées(Analog
Input)/sorties(Analog/Digital Output).Ce package permet de communiquer Matlab ou Simulink
avec la carte Arduino via un câble USB.
Elle consiste à pré-charger un programme dans la carte Arduino afin que celle-ci fonctionne
en serveur.
Ce programme consiste à "écouter" les requêtes envoyées via la liaison série (USB) et de répondre
à ces requêtes en renvoyant l’état d’une entrée ou en modifiant l’état d’une sortie. Ces mêmes
entrées/sortie sont vues dans matlab comme des entrées logiques ou analogiques (utilisation du
CAN) ou des sorties analogiques (mode PWM).
6. Televerser !
* adiosrv est l’abréviation de : Analog and Digital Input and Output Server for MATLAB.
La carte Arduino UNO est maintenant configuré pour être utiliser comme une carte d’interface
Entrées/Sorties.
Les blocs nécessaires pour notre objectif d’asservissement sont les suivants :
Dans la suite, on utlisera les blocs Simulink offert par le package ArduinoIO Library et la
librairie Instrument Control Toolbox pour l’acquisition et l’envoie des données.
Il n’est pas nécessaire d’initialiser ces entrées analogiques qui n’ont que cette seule fonction.
Ce module dispose de 4 pins de sortie : VCC , TRIG, ECHO, GND . Les caractéristiques
techniques de ce module sont les suivantes :
– alimentation : 5V DC
– Courant de repos : <2mA
– Angle de mesure : <15°
– Gamme de distance : 2cm – 500 cm
– résolution : 0.3 cm
Le processus de mesure de distance est le suivant : donner la pin "TRIG" une impulsion de
niveau haut (5V) durant au moins 10µs et le module démarre sa lecture ; à la fin de la mesure,
s’il détecte un objet devant lui, la pin "ECHO" passe au niveau haut (5V). Et , la distance où
se situe l’obstacle est proportionnelle à la durée de cette impulsion Il est donc très facile de
calculer cette distance avec la formule suivante :
vitesse.du.son : 340m/s
Distance = (Durée.du.niveau.haut) × (2)
2
10mV → C o (3)
Autrement un volt correspond à 100 degrés Celsius.
La lecture analogique d’un signal de 0 à 5V étant codée de 0 à 1023, on a la formule :
T emp = V olt ∗ (5/1023) ∗ 100; V olt.entre.(0et1023) (4)
void loop ( )
{
// l e c t u r e de l a donnee a p a r t i r du CAN ( v a l e u r e n t r e 0 e t 1023)
temp = analogRead (A0 ) ;
// e n v o i e de l a donnee v i a l e p o r t s e r i e
S e r i a l . w r i t e ( temp ) ;
// d e l a i de 1 s avant n o u v e l l e a c q u i s i t i o n
delay (1000) ;
}
Le modele Simulink qui va traiter les données transmises à partir de la carte Arduino UNO.
Lorsqu’un moteur ou une lampe est alimenté par ce type de tension, tout se passe comme
si il était alimenté par une tension continue ajustable entre 0V (rapport cyclique= 0) et 5V
(rapport cyclique=255).Ces sorties doivent être initialisées comme des sorties digitales.
τo
Vout = Vs × ; avec : τc = 2ms (5)
τc
La syntaxe de l’instruction permettant de générer le signal PWM est la suivante :
analogWrite(pin, valeur) ;
– pin : la pin sur la quelle on souhaite envoyer le signal (3,5,6,9,10 ou 11).
– valeur : le rapport cyclique entre 0 et 255.
– Le transistor TIP121 : C’est un transistor Darlington NPN qui d’après la fiche technique
permet d’amplifier le courant jusqu’à 5A avec son gain d’amplification ”au minimum”
β = 1000 et supportant
– La diode 1N4004 : Dans une charge inductive (bobines), le courant ne peut pas se stopper
instantanément. Cette diode joue le rôle d’une diode de roue libre qui permet au courant
de s’arrêter progressivement.
L’utilisation de la commande PWM à partir de la carte Arduino permet de faire varier la tension
appliquée aux bornes de la lampe autrement ceci permet de contrôler l’intensité lumineuse de la
lampe.
5 Présentation de la maquette
La maquette est constituée d’un capteur de température LM35 et une Lampe halogène 12V
35W qui joue le rôle d’un élément chauffant.Le capteur et la lampe sont installés dans une
boite en bois avec un couvercle en plexiglass. Cette boite représente le système thermique à
commander. La figure suivante schématise la connexion de la carte Arduino UNO avec l’entrée
et la sortie du système thermique.
3. Entrer le nom de la variable Input et la variable Output ainsi que tempsde starting time et
sample time qu’on a utiliser lors de l’identification avec Simulink.Enfin cliquer sur Import.
5. Entrer le nombre de pôle et de zéro et cliquer sur Discrete-Time ensuite cliquer sur Estimate.
6. Revenir à l’interface System Identification Tool et cliquer deux fois sur tf1.
3. Une nouvelle fenêtre apparait dans laquelle vous allez sélectionner tf1 ensuite cliquer sur
import puis close.
4. Revenir à la fenêtre PID Tuner, vous pouvez choisir le type de régulateur à implémenter et
les objectifs de la commande en boucle fermé et voir la réponse de la sotie du système.
5. Cliquer sur la flèche de show parameter pour voir les paramétrés utilisés de votre régulateur
ainsi que les performances du système en boucle fermé.
L’asservissement de notre procédé est assuré par le schéma Simulink ci-dessous qui regroupe la
consigne, le comparateur, le correcteur PID(z), le traitement de la température issue du capteur
et l’envoie de la commande PWM.
L’appui deux fois sur le bloc PID(z) permet d’introduire les paramétrés Kp Ki Kd et de
configurer le régulateur selon notre objectif de commande.
f l o a t ep , up , temp , u , e , cmd ;
i n t c o n s i g n e =35;
void setup ( ) {
S e r i a l . begin (9600) ;
}
void loop ( )
{
temp=analogRead ( 0 ) ;
temp=temp∗ 0.48828125 ;
e=consigne−temp ;
d e l t a _ e r r e u r = ( e−ep ) / 0 . 5 ;
somme_erreur=somme_erreur+e ∗ 0 . 5 ;
cmd = kp∗ e + k i ∗ somme_erreur + kd∗ d e l t a _ e r r e u r ;
a n a l o g W r i t e ( 6 , cmd ∗ ( 2 5 5 / 1 2 ) ) ;
ep=e ;
delay (500) ;// periode d ’ echantillonage
S e r i a l . w r i t e ( analogRead ( 0 ) ) ; / / e n v o i e de l a donnee s u r l e p o r t s e r i e
}
Il suffit d’exploiter la bibliothèque Instrument Control Toolbox pour la lecture de la tempéra-
ture instantanée.
LM35
www.ti.com SNIS159D – AUGUST 1999 – REVISED OCTOBER 2013
+VS +VS
(4 V to 20 V)
LM35 VOUT
LM35 OUTPUT
0 mV + 10.0 mV/°C
R1
Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of
Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.
2 All trademarks are the property of their respective owners.
PRODUCTION DATA information is current as of publication date. Copyright © 1999–2013, Texas Instruments Incorporated
Products conform to specifications per the terms of the Texas
Instruments standard warranty. Production processing does not
necessarily include testing of all parameters.
LM35
SNIS159D – AUGUST 1999 – REVISED OCTOBER 2013 www.ti.com
These devices have limited built-in ESD protection. The leads should be shorted together or the device placed in conductive foam
during storage or handling to prevent electrostatic damage to the MOS gates.
CONNECTION DIAGRAMS
+VS VOUT
VOUT 1 8 +VS
t
GND N.C. 2 7 N.C.
Case is connected to negative pin (GND) N.C. 3 6 N.C.
GND 4 5 N.C.
N.C. = No connection
+VS VOUT
GND
Tab is connected to the negative pin
(GND).
NOTE: The LM35DT pinout is different than
the discontinued LM35DP
(1) If Military/Aerospace specified devices are required, please contact the Texas Instruments Sales Office/ Distributors for availability and
specifications.
(2) Absolute Maximum Ratings indicate limits beyond which damage to the device may occur. DC and AC electrical specifications do not
apply when operating the device beyond its rated operating conditions. See Note 1.
(3) Human body model, 100 pF discharged through a 1.5-kΩ resistor.
(4) Thermal resistance of the TO-46 package is 400°C/W, junction to ambient, and 24°C/W junction to case. Thermal resistance of the TO-
92 package is 180°C/W junction to ambient. Thermal resistance of the small outline molded package is 220°C/W junction to ambient.
Thermal resistance of the TO-220 package is 90°C/W junction to ambient. For additional thermal resistance information see table in the
APPLICATIONS section.
(1) Unless otherwise noted, these specifications apply: −55°C ≤ TJ ≤ 150°C for the LM35 and LM35A; −40°C ≤ TJ ≤ 110°C for the LM35C
and LM35CA; and 0°C ≤ TJ ≤ 100°C for the LM35D. VS = 5 Vdc and ILOAD = 50 μA, in the circuit of Figure 2. These specifications also
apply from +2°C to TMAX in the circuit of Figure 1. Specifications in boldface apply over the full rated temperature range.
(2) Specifications in boldface apply over the full rated temperature range.
(3) Tested Limits are ensured and 100% tested in production.
(4) Design Limits are ensured (but not 100% production tested) over the indicated temperature and supply voltage ranges. These limits are
not used to calculate outgoing quality levels.
(5) Accuracy is defined as the error between the output voltage and 10 mv/°C times the case temperature of the device, at specified
conditions of voltage, current, and temperature (expressed in °C).
(6) Nonlinearity is defined as the deviation of the output-voltage-versus-temperature curve from the best-fit straight line, over the rated
temperature range of the device.
(7) Regulation is measured at constant junction temperature, using pulse testing with a low duty cycle. Changes in output due to heating
effects can be computed by multiplying the internal dissipation by the thermal resistance.
Copyright © 1999–2013, Texas Instruments Incorporated Submit Documentation Feedback 3
Product Folder Links: LM35
LM35
SNIS159D – AUGUST 1999 – REVISED OCTOBER 2013 www.ti.com
(1) Unless otherwise noted, these specifications apply: −55°C ≤ TJ ≤ 150°C for the LM35 and LM35A; −40°C ≤ TJ ≤ 110°C for the LM35C
and LM35CA; and 0°C ≤ TJ ≤ 100°C for the LM35D. VS = 5 Vdc and ILOAD = 50 μA, in the circuit of Figure 2. These specifications also
apply from +2°C to TMAX in the circuit of Figure 1. Specifications in boldface apply over the full rated temperature range.
(2) Specifications in boldface apply over the full rated temperature range.
(3) Tested Limits are ensured and 100% tested in production.
(4) Design Limits are ensured (but not 100% production tested) over the indicated temperature and supply voltage ranges. These limits are
not used to calculate outgoing quality levels.
(5) Accuracy is defined as the error between the output voltage and 10 mv/°C times the case temperature of the device, at specified
conditions of voltage, current, and temperature (expressed in °C).
(6) Nonlinearity is defined as the deviation of the output-voltage-versus-temperature curve from the best-fit straight line, over the rated
temperature range of the device.
(7) Regulation is measured at constant junction temperature, using pulse testing with a low duty cycle. Changes in output due to heating
effects can be computed by multiplying the internal dissipation by the thermal resistance.
TO-220
Plastic Package
High Power Switching, Hammer Drive, Pulse Motor Drive and Inductive Load Drive Applications
THERMAL RESISTANCE
Junction to Case Rth (j-c) 1.92 ºC/W
Junction to Ambient in free air Rth (j-a) 62.5 ºC/W
TO-220
Plastic Package
DYNAMIC CHARACTERISTIC
DESCRIPTION SYMBOL TEST CONDITION MIN TYP MAX UNIT
Small Signal Current Gain hfe IC=3A,VCE=4V, f=1MHz 4
SWITCHING CHARACTERISTICS
DESCRIPTION SYMBOL TEST CONDITION MIN TYP MAX UNIT
Turn on time ton IC=3A, RL=10Ω 0.4 µs
IB1=IB2=12mA
Turn off time toff VEB (off)=5V 1.2 µs