I2C通信を使用した角速度測定、LCD表示サンプル
Dependencies: mbed mbed_mpu6050_i2c_raw_register AQM0802
Diff: main.cpp
- Revision:
- 5:8c482bdfb9e8
- Parent:
- 4:bf507fe18cb2
- Child:
- 6:c940ad83d2c5
diff -r bf507fe18cb2 -r 8c482bdfb9e8 main.cpp --- a/main.cpp Fri Jul 19 10:37:29 2019 +0000 +++ b/main.cpp Fri Jul 19 19:09:08 2019 +0000 @@ -4,26 +4,27 @@ Serial pc(USBTX, USBRX); MPU6050 mpu(D4, D5); -AQM0802 lcd(I2C_SDA,I2C_SCL); +AQM0802 lcd(D4,D5); -int main() { +int main() +{ double gx,gy,gz; //Z角速度情報を格納 - int i_gz; - char str[5]; - pc.baud(9600); + int i_gz; //Z軸データint型変換格納 + char str[5]; //LCD表示用文字列 + pc.baud(9600); //通信速度は9600bps mpu.setMaxScale(MAX_ACC_8G, MAX_GYRO_1000degpersec);//[1000deg/sec]を測定上限とする。 - lcd.init(); - lcd.locate(1,0);//桁、行 - lcd.print("GYRO_Z");//1行目に「GYRO_Z」を表示 + lcd.init(); //LCD初期化 + lcd.locate(1,0); //桁、行 + lcd.print("GYRO_Z");//1行目に「GYRO_Z」を表示 while(true) { mpu.readGyroscope(gx, gy, gz);//関数仕様上3軸すべて角速度取得する。 - i_gz=(int)gz;//doubleは大きすぎるのでint型へ変換 + i_gz=(int)gz; //doubleは大きすぎるのでint型へ変換 pc.printf("gz:%d\r\n", i_gz);//Z軸方向のみ表示する。(他は使わない) lcd.locate(1,1);//桁、行 lcd.print(" ");//表示クリア sprintf(str,"%4d",i_gz); lcd.locate(1,1);//桁、行 - lcd.print(str);//表示クリア + lcd.print(str); //表示クリア wait(0.2); } }