Arduino ile AS5600 manyetik döner kodlayıcı nasıl kullanılır

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

AS5600, açıları 12 bit çözünürlükle ölçebilen hassas bir manyetik döner kodlayıcıdır. I2C veya analog çıkış yoluyla iletişim kurar, bu da robotik, motor kontrol ve konum algılama uygulamaları için idealdir. Bu öğretici, AS5600'ü Arduino ile bağlayarak ve kullanarak size rehberlik edecektir.


Ne İhtiyacınız Olacak

  1. AS5600 Manyetik Döner Kodlayıcı Modülü
  2. Arduino Kurulu (örn. UNO, Mega, Nano)
  3. Breadboard ve jumper telleri
  4. Arduino IDE kurulu bir bilgisayar

1. Adım: AS5600 modülünü anlamak

AS5600 her ikisini de destekler I2C Ve Analog çıkışlar. I2C modunda, son derece doğru açı verileri sağlar. Analog mod, açıyla orantılı bir voltaj çıkarır.

Pinout

Pin İşlev
VCC Güç kaynağı (3.3V/5V)
Gnd Zemin
SDA I2C veri hattı
Scl I2C saat çizgisi
DIŞARI Analog çıkış (isteğe bağlı)
Direk Yön yapılandırması
Moda Çıktı modu yapılandırması

Not: . DIR PIN, dönme yönünü yapılandırır ve MODE PIN I2C veya analog çıkış modları arasında seçim yapar. I2C için bağlan MODE GND.


Adım 2: AS5600'ün Arduino'ya Bağlanması

I2C modu (varsayılan)

AS5600'ü Arduino'ya aşağıdaki gibi bağlayın:

AS5600 PIN Arduino pimi
VCC 5V
Gnd Gnd
SDA A4
Scl A5

Not: Diğer Arduino panoları için doğru I2C pimlerini kullandığınızdan emin olun.


Adım 3: Gerekli kütüphaneyi kurun

AS5600 ile çalışmayı kolaylaştırmak için GitHub'dan "AS5600" kütüphanesini veya Arduino Kütüphane Yöneticisi'ni yükleyin.

Yüklenecek adımlar:

  1. Arduino IDE'yi açın.
  2. Gidip gelmek Eskiz > Kütüphane ekleyin > Kütüphaneleri Yönetin.
  3. "AS5600" arayın ve tıklayın Düzenlemek.

4. Adım: Kodu yükleyin

İşte I2C'yi kullanarak AS5600'den gelen açıyı okumak için bir örnek kod:

#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
}

Adım 5: Kurulumu test edin

  1. Arduino'yu USB üzerinden bilgisayarınıza bağlayın.
  2. Arduino IDE'yi açın ve doğru seçin Pano Ve Liman altında Aletler menü.
  3. Kodu tıklayarak yükleyin Yüklemek.
  4. Seri monitörü açın (Aletler > Seri monitör) ve baud hızını ayarlayın 9600.
  5. Mıknatısı AS5600 sensörünün önündeki döndürün. Dereceler cinsinden açı gerçek zamanlı olarak görüntülenmelidir.

İsteğe bağlı: Analog çıkış modunu kullanma

  1. Bağla OUT AS5600'ün pimini Arduino'daki bir analog pime (örn. A0).
  2. Analog voltajı okumak için kodu değiştirin:
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 uygulamaları

  1. Motor Konum Algılama
  2. Döner düğme kodlayıcıları
  3. Robotik eklem açısı ölçümü
  4. Kamera gimbal stabilizasyon sistemleri

Sorun giderme

  • Veri yok: I2C bağlantılarını doğrulayın ve doğru pimlerin kodda tanımlandığından emin olun.
  • Düzensiz değerler: Mıknatısın doğru şekilde yerleştirildiğinden ve sensörle hizalandığından emin olun.
  • Analog modda yanıt yok: Onaylayın MODE PIN doğru yapılandırılır.

Çözüm

Açısal konumu ölçmek için AS5600 manyetik döner kodlayıcıyı Arduino ile başarıyla arayüz ettiniz. İster hassas okumalar için I2C veya basitlik için analog mod kullanıyor olun, bu sensör dönme ölçümü gerektiren projeler için çok yönlü bir araçtır. Motor kontrolü veya robot projelerine entegre ederek daha da deneyin!

Yorum bırak

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.