Étape 3: Arduino Code pour la mesure de l’accélération :
Permet de démarrer avec l' arduino code maintenant.
Lorsque vous utilisez le module détecteur avec l’arduino, nous incluons la bibliothèque Wire.h. Bibliothèque « Fils » contient les fonctions qui facilitent la communication i2c entre le capteur et la carte arduino.
Le code entier arduino est donné ci-dessous pour la commodité de l’utilisateur :
#include<Wire.h> // BMA250 I2C address is 0x18(24)#define Addr 0x18 void setup(){// Initialise I2C communication as MASTER Wire.begin(); // Initialise Serial Communication, set baud rate = 9600 Serial.begin(9600);// Start I2C Transmission Wire.beginTransmission(Addr); // Select range selection register Wire.write(0x0F); // Set range +/- 2g Wire.write(0x03); // Stop I2C Transmission Wire.endTransmission();// Start I2C Transmission Wire.beginTransmission(Addr); // Select bandwidth register Wire.write(0x10); // Set bandwidth 7.81 Hz Wire.write(0x08); // Stop I2C Transmission Wire.endTransmission(); delay(300);} void loop(){ unsigned int data[0]; // Start I2C Transmission Wire.beginTransmission(Addr); // Select Data Registers (0x02 − 0x07) Wire.write(0x02); // Stop I2C Transmission Wire.endTransmission(); // Request 6 bytes Wire.requestFrom(Addr, 6); // Read the six bytes // xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb if(Wire.available() == 6) { data[0] = Wire.read(); data[1] = Wire.read(); data[2] = Wire.read(); data[3] = Wire.read(); data[4] = Wire.read(); data[5] = Wire.read(); } delay(300); // Convert the data to 10 bits float xAccl = ((data[1] * 256.0) + (data[0] & 0xC0)) / 64; if (xAccl > 511) { xAccl -= 1024; } float yAccl = ((data[3] * 256.0) + (data[2] & 0xC0)) / 64; if (yAccl > 511) { yAccl -= 1024; } float zAccl = ((data[5] * 256.0) + (data[4] & 0xC0)) / 64; if (zAccl > 511) { zAccl -= 1024; } // Output data to the serial monitor Serial.print("Acceleration in X-Axis :"); Serial.println(xAccl); Serial.print("Acceleration in Y-Axis :"); Serial.println(yAccl); Serial.print("Acceleration in Z-Axis :"); Serial.println(zAccl) ; }
Dans la bibliothèque de fils Wire.write() et Wire.read() est utilisé pour écrire les commandes et lire la sortie du capteur. Serial.Print() et Serial.println() sont utilisées pour afficher la sortie du capteur sur le serial monitor de l’arduino IDE.
La sortie du capteur est montrée dans l’image ci-dessus.