匿名
尚未登入
登入
flip the world
搜尋
檢視Application - BMA250, triaxial acceleration sensor的原始碼
出自flip the world
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
Application - BMA250, triaxial acceleration sensor
您沒有權限執行編輯此頁面,由於以下原因:
您請求的操作只有這個群組的使用者能使用:
使用者
您可以檢視並複製此頁面的原始碼。
== example code == <pre> #include "Wire.h" byte range=0x03; float divi=16; int addr = 0x18; void setup() { Serial.begin(115200); Wire.begin(); Wire.beginTransmission(addr); // address of the accelerometer // 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(0x10); // Stop I2C Transmission Wire.endTransmission(); // low pass filter Wire.beginTransmission(addr); Wire.write(0x20); //register address Wire.write(0x05); //can be set at"0x05""0x04"......"0x01""0x00", refer to Datashhet on wiki Wire.endTransmission(); } void AccelerometerInit() { 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 while(!Wire.available()) ; 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(10); // 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("X-Axis :"); Serial.print(xAccl); Serial.print(" "); Serial.print("Y-Axis :"); Serial.print(yAccl); Serial.print(" "); Serial.print("Z-Axis :"); Serial.println(zAccl); } void loop() { /* switch(range) //change the data dealing method based on the range u've set { case 0x00:divi=16; break; case 0x01:divi=8; break; case 0x02:divi=4; break; case 0x03:divi=2; break; default: Serial.println("range setting is Wrong,range:from 0to 3.Please check!");while(1); } */ AccelerometerInit(); } </pre>
返回到「
Application - BMA250, triaxial acceleration sensor
」。
導覽
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
wiki工具
wiki工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌