ArduinoでLCD 1602またはLCD2004にMPU-6050センサーデータを表示する

ArduinoでLCD 1602またはLCD2004にMPU-6050センサーデータを表示する

このチュートリアルでは、MPU-6050センサーのデータをArduinoを使ってLCD 1602またはLCD2004に表示する方法を学びます。MPU-6050は3軸ジャイロスコープと3軸加速度計を組み合わせた多用途のセンサーで、動作検出や姿勢推定などのさまざまな用途に適しています。このセンサーをLCDディスプレイに接続することで、角度や温度を含むリアルタイムのセンサーデータを可視化できます。

このプロジェクトを進めるにあたり、必要なハードウェア部品、配線の詳細、そしてコードの実装について説明します。これにより、MPU-6050のセットアップ方法とその出力をLCDに表示する方法が理解できるようになります。コードについてさらに明確にしたい場合は、(in video at 00:00) をぜひご覧ください。

ハードウェア解説

このプロジェクトの主要な構成要素は Arduino ボード、MPU-6050 センサー、および LCD ディスプレイ(1602 または 2004)です。Arduino は MPU-6050 からのデータを処理して LCD に送信するマイクロコントローラとして機能します。

MPU-6050センサーはI2C通信を用いてデータをArduinoに送信します。加速度計とジャイロスコープを内蔵しており、これにより動きや姿勢を検知できます。LCDディスプレイはセンサーデータから導出した角度を表示するために使用されます。LCDもI2C経由でArduinoに接続されるため、配線と通信が簡素化されます。

データシートの詳細

製造元インヴェンセンス
部品番号MPU-6050
ロジック/IO電圧3.3 V / 5 V
供給電圧3.3 Vから5 Vまで
出力データレート1 kHz(最大)
温度範囲-40〜+85°C
パッケージQFN(クワッドフラットノーリード)
備考/バリエーションジャイロスコープと加速度計を内蔵

  • 指定された電圧範囲内で適切な電源供給を確保してください。
  • 必要に応じて、I2Cラインにプルアップ抵抗を使用してください。
  • I2Cアドレスがご利用のセットアップと互換性があるか確認してください。
  • 正確な読み取りのためにセンサーを校正してください。
  • 配線には注意して短絡を避けてください。

配線手順

arduino_wiring_MPU-6050_LCD2004_bb

MPU-6050をArduinoに配線するには、まずMPU-6050のVCCピンをArduinoの5Vピンに接続します。次にMPU-6050のGNDピンをArduinoのいずれかのGNDピンに接続します。I2C通信のために、MPU-6050のSDAピンをArduinoのアナログピンA4に、SCLピンをアナログピンA5に接続します。

LCDディスプレイでは、VCCピンをArduinoの5Vピンに、GNDピンをArduinoのGNDピンに接続します。LCDのSDAピンをMPU-6050で使用している同じA4ピンに、SCLピンをA5ピンに接続します。こうすることでMPU-6050とLCDは同じI2Cラインを共有し、配線が簡単になります。

接続がしっかりしていて、緩んだ配線がないことを確認してください。LCDやセンサーに電源が入らない場合は、配線や接続を再確認してください。

コード例とウォークスルー

コードでは、MPU-6050とLCDに必要なライブラリをインクルードすることから始めます:

#include 
#include 
#include 

ここでは、MPU-6050とLCDの両方のインスタンスを作成します。MPU-6050はI2C通信のためにWireライブラリで初期化され、LCDはそのアドレスと寸法でセットアップされます。

setup()関数で、センサーとLCDを初期化します:

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu6050.begin();
  lcd.begin();
  lcd.backlight();
  lcd.clear();
}

このコードはデバッグ用のシリアル通信を設定し、I2C通信を初期化してLCDを表示できるように準備します。表示が見えるようにバックライトを点灯します。

loop() 関数では、MPU-6050からデータを継続的に読み取り、LCDに表示します:

void loop() {
  mpu6050.update();
  lcd.clear();
  lcdDisplay(mpu6050.getAngleX(), mpu6050.getAngleY(), mpu6050.getAngleZ());
  delay(100);
}

このスニペットはセンサーデータを更新し、100ミリ秒ごとにLCDを新しい読み取り用にクリアします。角度をLCDに表示するためにlcdDisplay関数が呼び出されます。

完全に理解するには、対応するビデオでコード全体が示されている箇所(ビデオの00:00)をご覧ください。

デモンストレーション / 期待される内容

すべてが正しく設定されていれば、LCDにはX軸、Y軸、Z軸の角度がリアルタイムで表示されます。MPU-6050センサーを傾けると表示の変化が確認できます。問題が発生した場合は、配線の極性が逆になっていないか、またはI2Cアドレスが正しく設定されているかを確認してください。

LCD上の値を監視することで、センサーが動きや姿勢の変化にどのように反応するかを確認できます。値が静的に見える、または正しくない場合は、接続を確認し、センサーが正常に動作しているかを確かめてください。

画像

arduino_wiring_MPU-6050_LCD2004_bb
arduino_wiring_MPU-6050_LCD2004_bb
LCD2004_display-3
LCD2004_display-3
LCD2004_display-1
LCD2004_display-1
LCD2004_display-2
LCD2004_display-2
119-Arduino code for MPU-6050 accelerometer and gyroscope sensor (angles only)
言語: C++
120-Arduino code for the MPU-6050 accelerometer and gyroscope sensor (all data)
言語: C++
コピーしました!

ファイル📁

Arduinoライブラリ(zip)

フリッツィングファイル

他のファイル