Grove - 12ビット磁気回転位置センサー / エンコーダ (AS5600)
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Grove - AS5600は、プログラム可能な12ビット高解像度非接触型磁気回転位置センサーです。Grove - AS5600は、磁気ポテンショメータまたは磁気エンコーダとして動作し、優れた信頼性と耐久性を備えています。
従来のポテンショメータやエンコーダと比較して、Grove - AS5600は以下のような大きな利点があります:高精度、非接触、回転角度の制限なし。これらの利点により、ロボットアーム、三脚ヘッド、モーターの閉ループ制御、工作機械の軸位置決めなどの非接触角度測定アプリケーションに適しています。
特徴
- 非接触、回転角度の制限なし
- 12ビット高解像度、1回転あたり4096ポジション
- Grove I2C、PWM/アナログ出力
- 角度範囲の柔軟性:最大角度は18°から360°までプログラム可能
仕様
パラメータ | 値 |
---|---|
供給電圧 | 3.3V / 5V |
動作環境温度 | -40 – 125℃ |
入力電流 | -100-100mA |
柔軟性 | 最大角度は18°-360°までプログラム可能 |
インターフェース | I2C(デフォルトI2Cアドレス:0x36)& 変更不可 |
出力 | アナログ/PWM出力 |
出力解像度 | 12ビットDAC |
動作原理
Grove - AS5600はホール効果に基づいており、内蔵のホールセンサーが磁場の方向の変化を検出することができます。そのため、回転角度の制限がありません。磁場方向の情報はアンプによって増幅され、内蔵の12ビットA/Dの助けを借りて、AS5600モジュールは1回転あたり4096ポジションを出力できます。出力は選択可能で、I2Cインターフェースを使用してRAWデータを出力するか、OUTピンを介してPWM波またはアナログ波を出力することができます。また、最大角度もプログラム可能で、18°から360°まで設定可能です。これにより、測定された角度の精度は最大で18/4096に達します。
AS5600は測定される磁場に対して一定の要件があります。チップと同じサイズの磁石を使用してください。モジュールは磁場にできるだけ近づけて測定する必要があり、AS5600センサーの中心を磁場の中心に合わせる必要があります。垂直距離は0.5mmから3mmが望ましいです。
ハードウェア概要
対応プラットフォーム
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
はじめに
Arduinoで遊ぶ
必要な材料
Seeeduino V4.2 | Base Shield | Grove - 12-bit Magnetic Rotary Position Sensor / Encoder (AS5600) |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
さらに、Seeeduino Lotus M0+を検討することもできます。これはSeeeduino V4.2とBase Shieldの組み合わせに相当します。
ハードウェア接続
ステップ 1. Grove - 12-bit Magnetic Rotary Position Sensor / Encoder (AS5600)をBase ShieldのI2Cポートに接続します。
ステップ 2. Grove - Base ShieldをSeeeduinoに差し込みます。
ステップ 3. USBケーブルを使用してSeeeduinoをPCに接続します。
ソフトウェア
Arduinoを初めて使用する場合は、開始前にArduinoの使い方を参照することを強くお勧めします。
- ステップ 1. GithubからAS5600ライブラリをダウンロードします。
Arduino用ライブラリのインストール方法については、ライブラリのインストール方法を参照してください。
- ステップ 2. Arduino IDEを再起動します。File → Examples → Seeed_AS5600-master → readAngleのパスを通じてreadAngleの例を開きます。このデモを通じて、センサーの下にある磁石から角度を読み取ることができます。
readAngleの例コードは以下の通りです:
#include <Wire.h>
#include <AS5600.h>
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#define SYS_VOL 3.3
#else
#define SERIAL Serial
#define SYS_VOL 5
#endif
AMS_5600 ams5600;
int ang, lang = 0;
void setup()
{
SERIAL.begin(115200);
Wire.begin();
SERIAL.println(">>>>>>>>>>>>>>>>>>>>>>>>>>> ");
if(ams5600.detectMagnet() == 0 ){
while(1){
if(ams5600.detectMagnet() == 1 ){
SERIAL.print("現在の磁力: ");
SERIAL.println(ams5600.getMagnitude());
break;
}
else{
SERIAL.println("磁石を検出できません");
}
delay(1000);
}
}
}
/*******************************************************
/* 関数: convertRawAngleToDegrees
/* 入力: AMS_5600::getRawAngleからの角度データ
/* 出力: 人間が読み取れる度数(float型)
/* 説明: 生の角度データを度数に変換します。
/*******************************************************/
float convertRawAngleToDegrees(word newAngle)
{
/* 生データは0 - 4095セグメントを報告し、これは0.087度に相当します */
float retVal = newAngle * 0.087;
ang = retVal;
return ang;
}
void loop()
{
SERIAL.println(String(convertRawAngleToDegrees(ams5600.getRawAngle()),DEC));
}
ステップ 3. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。
ステップ 4. Arduino IDEのシリアルモニターを開くには、Tool-> Serial Monitorをクリックします。または、
ctrl
+shift
+m
キーを同時に押します。ボーレートを115200に設定します。ステップ 5. センサーの下に磁石が検出された場合、結果は以下のようになります:

ここではキャリブレーターが使用されています。キャリブレーターの2Dファイルはリソースに記載されているので、自由にダウンロードしてレーザーカットしてください!
FAQ
Q1# 最大精度を達成するにはどうすればよいですか?
A1: Grove - 12-bit Magnetic Rotary Position Sensor / Encoder (AS5600) センサーが磁石に対して固定された距離/位置にあることを確認してください。初回使用時には、磁石を回転させて角度 0 から 360 までを取得し、位置が正しいことを確認してください。
AS5600 ライブラリには、センサーを操作するための完全なテスト機能も提供されています。
回路図オンラインビューア
リソース
- [ZIP] Grove - 12-bit Magnetic Rotary Position Sensor / Encoder (AS5600) 回路図ファイル
- [PDF] AS5600 データシート
- [DWG] Grove - 12-bit Magnetic Rotary Position Sensor(AS5600) キャリブレーター
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。