Gränssnitt för 3-axlig gyroskop Sensor BMG160 med Arduino Nano (4 / 5 steg)
Steg 4: 3-axlig gyroskop mätning Arduino koden:
Kan börja med arduino koden nu.
När du använder modulen sensor med arduino, inkluderar vi Wire.h bibliotek. "Wire" bibliotek innehåller funktioner som underlättar i2c kommunikationen mellan sensorn och arduino styrelsen.
Hela arduino koden ges nedan för att underlätta för användaren:
#include < Wire.h >
BMG160 I2C adress är 0x68(104)
#define Addr 0x68
void setup()
{
Initialisera I2C kommunikation som MASTER
Wire.BEGIN();
Initialisera seriell kommunikation, ange baudvärde = 9600
Serial.BEGIN(9600);
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj Mätområde register
Wire.write(0x0F);
Konfigurera fullskaligt utbud 2000 dps
Wire.write(0x80);
Stoppa I2C sändningen
Wire.endTransmission();
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj bandbredd register
Wire.write(0x10);
Ställa in bandbredden = 200 Hz
Wire.write(0x04);
Stoppa I2C sändningen
Wire.endTransmission();
Delay(300);
}
void loop()
{
unsigned int data [6].
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj Gyrometer uppgiftsregister
Wire.write(0x02);
Stoppa I2C sändningen
Wire.endTransmission();
Begäran 6 byte data
Wire.requestFrom (Addr, 6);
Läst 6 byte 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);
Konvertera data
int xGyro = ((data [1] * 256) + data[0]);
int yGyro = ((data [3] * 256) + data[2]);
int zGyro = ((data [5] * 256) + data[4]);
Utdata till seriell bildskärmen
Serial.Print ("x-axeln av Rotation:");
Serial.println(xGyro); Serial.Print ("y-axeln av Rotation:");
Serial.println(yGyro); Serial.Print ("z-axeln av Rotation:");
Serial.println(zGyro);
Delay(500);
}