Skip to main content

Grove - 12ビット磁気回転位置センサー / エンコーダ (AS5600)

note

この文書は 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に達します。

note

AS5600は測定される磁場に対して一定の要件があります。チップと同じサイズの磁石を使用してください。モジュールは磁場にできるだけ近づけて測定する必要があり、AS5600センサーの中心を磁場の中心に合わせる必要があります。垂直距離は0.5mmから3mmが望ましいです。

ハードウェア概要

対応プラットフォーム

ArduinoRaspberry Pi

はじめに

Arduinoで遊ぶ

必要な材料

Seeeduino V4.2Base ShieldGrove - 12-bit Magnetic Rotary Position Sensor / Encoder (AS5600)
enter image description hereenter image description hereenter image description here
今すぐ購入今すぐ購入今すぐ購入

さらに、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に接続します。

ソフトウェア

caution

Arduinoを初めて使用する場合は、開始前にArduinoの使い方を参照することを強くお勧めします。

  • ステップ 1. GithubからAS5600ライブラリをダウンロードします。
note

Arduino用ライブラリのインストール方法については、ライブラリのインストール方法を参照してください。

  • ステップ 2. Arduino IDEを再起動します。FileExamplesSeeed_AS5600-masterreadAngleのパスを通じて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. センサーの下に磁石が検出された場合、結果は以下のようになります:

note

ここではキャリブレーターが使用されています。キャリブレーターの2Dファイルはリソースに記載されているので、自由にダウンロードしてレーザーカットしてください!

FAQ

Q1# 最大精度を達成するにはどうすればよいですか?

A1: Grove - 12-bit Magnetic Rotary Position Sensor / Encoder (AS5600) センサーが磁石に対して固定された距離/位置にあることを確認してください。初回使用時には、磁石を回転させて角度 0 から 360 までを取得し、位置が正しいことを確認してください。

AS5600 ライブラリには、センサーを操作するための完全なテスト機能も提供されています。

回路図オンラインビューア

リソース

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。

Loading Comments...