Bonjour,
J'ai un problème pour coder mon capteur de pression sur matlab. J'ai trouvé le code sur internet et il marche mais je n'arrive pas à le traduire d'arduino à matlab.
voici le code :
Code:
#include "Wire.h" 
 #define addrs 0x6C // I2C bus address 
 int P; 
 int I; 
 float T; 

 int initialize(int i2c_addr) 
 { 
 //INITIALIZATION AFTER POWER UP 
 Wire.beginTransmission(i2c_addr); 
 Wire.write(0x0B); 
 Wire.write(0x00); 
 int x = Wire.endTransmission(); 
 return x; 
 } 

 int pressure(int i2c_addr) 
 { 
 //MCU MODE 
 Wire.beginTransmission(i2c_addr); 
 Wire.write(0x00); 
 Wire.write(0xD0); // reg 0 - address register high byte 
 // Wire.write(0x51); // reg 1 - address register low byte 
 Wire.write(0x40); // reg 1 - address register low byte 
 Wire.write(0x18); // reg 2 - serial control register - indicate # bytes among others (page 7 bottom) 
 Wire.write(0x06); // reg 3 - value to be written to SENS control register 
 int x = Wire.endTransmission(); 

 delay(33); 

 //WRITE 
 Wire.beginTransmission(i2c_addr); 
 Wire.write(0x00); 
 Wire.write(0xD0); 
 Wire.write(0x51); 
 Wire.write(0x2C); 
 x = Wire.endTransmission(); 

 //READ 
 Wire.beginTransmission(i2c_addr); 
 Wire.write(0x07); 
 x = Wire.endTransmission(); 

 Wire.requestFrom(i2c_addr, 2); 
 byte hibyte = Wire.read(); 
 byte lobyte = Wire.read(); 
 long raw = word( hibyte, lobyte); 
 //Serial.print("raw pressure:\t "); 
 //Serial.println(raw); 

 // D6F-PH5050AD3 ==> rangeMode=500 ==> int rd_pressure = ((raw - 1024) * rangeMode * 2 / 60000L) - rangeMode 
 // D6F-PH0505AD3 ==> rangeMode=50 ==> int rd_pressure = ((raw - 1024) * rangeMode * 2 / 60000L) - rangeMode 
 // D6F-PH0025AD1 ==> rangeMode=250 ==> int rd_pressure=(raw - 1024) * rangeMode / 60000L 
 int rangeMode = 500; 
 int rd_pressure = ((raw - 1024) * rangeMode * 2 / 60000) - rangeMode; 
 return rd_pressure;  }
.

Pour le moment je n'ai fait que le tout début et encore je ne sais pas si je suis dans le bon.
Code:
a = arduino('COM4','Uno','Wire','I2C')
dev = i2cdev(a,'0x6C')
Il n'y pas vraiment d'information concernant la bibliothèque wire dans matlab du coup je bloque un peu. En effet tout les "wire" me bloquent je sais pas comment les traduire sur matlab... Je sais que ce n'est qu'une fonction mais je ne sais pas quoi cela correspond sur matlab. J'ai réussi celui pour la température assez facilement, il suffisait juste de lire le volt au pin et voilà.

J'espère avoir été assez clair, n'hésiter pas à me demander des précisions.

Bien à vous, et merci d'avance.