Вы находитесь на странице: 1из 6

Application Arduino avec Matlab, Simulink, StateFlow par Marc Jakubowicz

Le 2 avril 2016 Version 1.0 Matlab 2016a

Mise en œuvre du capteur de pression BMP180 (GY68) compatible avec BMP85

Schéma structurel de la carte du capteur.

Capteur disponible
http://fr.aliexpress.com/wholesale?catId=0&initiative_id=AS_20160401104820&SearchText=bmp180+arduino

Jakubowicz Marc 2016


Schéma de câblage avec une carte Arduino Mega 2560

Modèle de simulation : BMP 180_SF2.slx

Validation du modèle :

Jakubowicz Marc 2016


Programme SateFlow
Lecture des constantes d'étalonnage.
11 mots de 16 bits
Conversion en entier non signé
(uint16) ou en entier (int16) de 16
bits puis convertit en variable de
simple précision (single)

Écriture dans le registre 0xF4 de la


donnée 0x4E (début de conversion
pour la température)
Attendre 4.5ms avant la lecture.
Le "sample time" du solveur est réglé
à 50 ms, donc pas de temporisation
entre les deux états

Lecture du registre 0xF6 pour 16 bits


température non compensée UT.
Calcule de la température.

Écriture dans le registre 0xF4 de la


donnée 0x34 (début de conversion
pour la pression)

Fonctions I2C :
i2cRdc : lecture des 11
constantes.
i2CRd : lecture de 1
mot
i2cWr : écriture de 1
mot : adresse du
registre, donnée

Lecture du registre 0xF6 pour 16 bits


pression non compensée UP.
Calcul de la pression
L'altitude compensée est calculée par
rapport à l'altitude du lieu de la
mesure.

Jakubowicz Marc 2016


Fonctions Simulink dans StateFlow :

Fonction i2cRdC Fonction i2cRd Fonction i2cWr(dataw)

Chronogrammes Initialisation, lecture des constantes :

val=i2cRdC;

0x77 = adresse I2C du capteur

0xAA= adresse du registre contenant la première constante

0x21, 0x FE….. les constantes AC1 AC2 etc.

Jakubowicz Marc 2016


Chronogrammes mesures :
Lancement conversion température…

Lecture valeur UT (température non compensée)

Jakubowicz Marc 2016


Lancement conversion pression…

Lecture valeur UPT (pression non compensée)

Compilation :

Simulation externe :
AVR Memory Usage
Device: atmega2560
Program: 28038 bytes (10.7% Full) (.text + .data + .bootloader)
Data: 1966 bytes (24.0% Full) (.data + .bss + .noinit)

Jakubowicz Marc 2016