Arduinoを備えたAS5600磁気回転エンコーダーの使用方法

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

AS5600は、12ビット解像度で角度を測定できる正確な磁気回転エンコーダーです。 I2Cまたはアナログ出力を介して通信し、ロボット工学、モーター制御、および位置センシングアプリケーションに最適です。このチュートリアルでは、ArduinoとAS5600を接続および使用することをガイドします。


あなたが必要とするもの

  1. AS5600磁気回転式エンコーダーモジュール
  2. Arduino委員会(例:UNO、MEGA、NANO)
  3. ブレッドボードとジャンパーワイヤ
  4. Arduino IDEがインストールされたコンピューター

ステップ1:AS5600モジュールの理解

AS5600は両方をサポートしています I2C そして アナログ 出力。 I2Cモードでは、非常に正確な角度データを提供します。アナログモードは、角度に比例した電圧を出力します。

ピンアウト

ピン 関数
VCC 電源(3.3V/5V)
GND 地面
SDA I2Cデータライン
SCL I2Cクロックライン
アナログ出力(オプション)
監督 方向設定
モード 出力モード構成

注記: DIR ピンは回転方向を構成します MODE PINは、I2Cまたはアナログ出力モードを選択します。 i2cの場合、接続します MODE GNDへ。


ステップ2:AS5600をArduinoに配線します

I2Cモード(デフォルト)

次のように、AS5600をArduinoに接続します。

AS5600ピン Arduino Pin
VCC 5V
GND GND
SDA A4
SCL A5

注記: 他のArduinoボードについては、正しいI2Cピンを使用してください。


ステップ3:必要なライブラリをインストールします

AS5600の作業を簡単にするには、GithubまたはArduino Library Managerの「AS5600」ライブラリをインストールします。

インストールする手順:

  1. Arduino IDEを開きます。
  2. 行きます スケッチ > ライブラリを含めます > ライブラリを管理します.
  3. 「AS5600」を検索してクリックします インストール.

ステップ4:コードをアップロードします

I2Cを使用してAS5600の角度を読み取るためのサンプルコードを次に示します。

#include <Wire.h>
#include <AS5600.h>

AS5600 encoder;

void setup() {
  Serial.begin(9600);
  Wire.begin();

  if (!encoder.begin()) {
    Serial.println("AS5600 not detected. Check connections.");
    while (1);
  }

  Serial.println("AS5600 initialized.");
}

void loop() {
  // Read the current angle in degrees
  float angle = encoder.getAngle();
  Serial.print("Angle: ");
  Serial.print(angle);
  Serial.println(" degrees");

  delay(100); // Update every 100ms
}

ステップ5:セットアップをテストします

  1. USBを介してArduinoをコンピューターに接続します。
  2. Arduino IDEを開き、正しいものを選択します ボード そして ポート の下 ツール メニュー。
  3. クリックしてコードをアップロードします アップロード.
  4. シリアルモニターを開きます(ツール > シリアルモニター)そして、ボーレートをに設定します 9600.
  5. AS5600センサーの前の磁石を回転させます。程度の角度はリアルタイムで表示する必要があります。

オプション:アナログ出力モードの使用

  1. 接続します OUT AS5600のピンからArduinoのアナログピン(A0)。
  2. コードを変更して、アナログ電圧を読み取ります。
const int analogPin = A0;

void setup() {
  Serial.begin(9600);
  pinMode(analogPin, INPUT);
}

void loop() {
  int value = analogRead(analogPin); // Read analog voltage
  float angle = map(value, 0, 1023, 0, 360); // Convert to degrees

  Serial.print("Analog Angle: ");
  Serial.print(angle);
  Serial.println(" degrees");

  delay(100);
}

AS5600のアプリケーション

  1. モーター位置センシング
  2. ロータリーノブエンコーダー
  3. ロボットの関節角測定
  4. カメラジンバル安定化システム

トラブルシューティング

  • データなし: i2c接続を確認し、コードで正しいピンが定義されていることを確認します。
  • 不安定な値: 磁石が正しく配置され、センサーに整列されていることを確認します。
  • アナログモードでは応答がありません: 確認してください MODE ピンは正しく構成されています。

結論

角度位置を測定するために、AS5600磁気回転式エンコーダーをArduinoと正常にインターフェースしました。 I2Cを正確な測定値に使用する場合でも、簡単にするためにアナログモードを使用している場合でも、このセンサーは回転測定を必要とするプロジェクトに汎用性の高いツールです。モーターコントロールまたはロボットプロジェクトに統合して、さらに実験してください!

コメントを残す

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.