mbed Application Board内蔵の加速度センサMMA7660を使ってみる

「mbed」と「mbed Application Board」を使用して、内蔵されているMMA7660を使ってみます。

最終目標としては、得られた加速度(X,Y,Z)情報をLCDにリアルタイム表示するところまでやります。

使用機器
・mbed(LPC1768)
・PC
・mbed Application Board

 

手順

(1)「MMA7660ライブラリ」をインポート

これはワークスペースで右クリックをし、ライブラリをインポートします。

 

(2) とりあえずヘッダファイル内に書いてある内容で動作確認してみる

ソースコード1

f:id:moun45:20210928223242p:plain

これを実行すると、通常はLED2が点灯し、逆さまにするとLED3が点灯します。

これを確認することで、とりあえず加速度センサの値が取れていることがわかりました。

 

(3) main.cppプログラムを変更し、加速度(X,Y,Z)情報をリアルタイムでLCDに表示

先ほどの確認プログラムを見ると、Z軸加速度を取得するために「MMA.z()」を呼び出していることがわかる。

またヘッダファイル内を見ると、同様にしてX軸やY軸を取得できることがわかる。

そのため以下のようなソースコードに変更してみる。

 

ソースコード2

#include "mbed.h"
#include "C12832.h"
#include "MMA7660.h"

C12832 lcd(p5, p7, p6, p8, p11);
MMA7660 MMA(p28, p27);
DigitalOut connectionLed(LED1);

int main()
{
    //MMA7660接続確認
    if (MMA.testConnection())
        connectionLed = 1;
    
    while(1){
      lcd.cls();
      lcd.locate(0,3);
      lcd.printf("%.3f\r\n",(float)MMA.x());
      lcd.printf("%.3f\r\n",(float)MMA.y());
      lcd.printf("%.3f",(float)MMA.z());
      wait(0.5);
    }
}

 

これを実行すると⇓⇓⇓

f:id:moun45:20210928224308j:plain

上から

・X軸加速度

・Y軸加速度

・Z軸加速度

の順で表示できました!