Paso 4: giroscopio de 3 ejes medida código de Arduino:
Permite iniciar con el código de arduino ahora.
Mientras que usa el módulo sensor con el arduino, incluimos Wire.h biblioteca. Biblioteca de "Alambre" contiene las funciones que facilitan la comunicación i2c entre el sensor y la placa arduino.
El código de arduino entero se expone a continuación para mayor comodidad del usuario:
#include<Wire.h>// BMG160 I2C address is 0x68(104)#define Addr 0x68 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 register Wire.write(0x0F); // Configure full scale range 2000 dps Wire.write(0x80); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select Bandwidth register Wire.write(0x10); // Set bandwidth = 200 Hz Wire.write(0x04); // Stop I2C Transmission Wire.endTransmission(); delay(300);}void loop(){ unsigned int data[6]; // Start I2C Transmission Wire.beginTransmission(Addr); // Select Gyrometer data register Wire.write(0x02); // Stop I2C Transmission Wire.endTransmission(); // Request 6 bytes of data Wire.requestFrom(Addr, 6); // Read 6 bytes of data // xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro 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 int xGyro = ((data[1] * 256) + data[0]); int yGyro = ((data[3] * 256) + data[2]); int zGyro = ((data[5] * 256) + data[4]); // Output data to the serial monitor Serial.print("X-Axis of Rotation: "); Serial.println(xGyro); Serial.print("Y-Axis of Rotation: "); Serial.println(yGyro); Serial.print("Z-Axis of Rotation: "); Serial.println(zGyro); delay(500);}