Cara menggunakan encoder rotary magnetik AS5600 dengan Arduino

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

AS5600 adalah enkoder putar magnetik yang tepat yang mampu mengukur sudut dengan resolusi 12-bit. Ini berkomunikasi melalui I2C atau output analog, membuatnya ideal untuk robotika, kontrol motor, dan aplikasi penginderaan posisi. Tutorial ini akan memandu Anda melalui menghubungkan dan menggunakan AS5600 dengan Arduino.


Apa yang Anda Butuhkan

  1. As5600 Modul Encoder Rotary Magnetic
  2. Dewan Arduino (mis., Uno, mega, nano)
  3. Papan tempat memotong papan dan kabel jumper
  4. Komputer dengan IDE Arduino diinstal

Langkah 1: Memahami modul AS5600

AS5600 mendukung keduanya I2c Dan Analog output. Dalam mode I2C, ini menyediakan data sudut yang sangat akurat. Mode analog mengeluarkan tegangan sebanding dengan sudut.

Pinout

Pin Fungsi
Vcc Catu daya (3.3V/5V)
Gnd Tanah
SDA Jalur data I2C
Scl I2C Clock Line
KELUAR Output analog (opsional)
Dir Konfigurasi Arah
MODE Konfigurasi Mode Output

Catatan: Itu DIR Pin mengkonfigurasi arah rotasi, dan MODE PIN memilih antara I2C atau mode output analog. Untuk I2C, sambungkan MODE ke gnd.


Langkah 2: Kabel AS5600 ke Arduino

Mode I2C (default)

Hubungkan AS5600 ke Arduino sebagai berikut:

Pin AS5600 Pin Arduino
Vcc 5v
Gnd Gnd
SDA A4
Scl A5

Catatan: Untuk papan Arduino lainnya, pastikan Anda menggunakan pin I2C yang benar.


Langkah 3: Instal perpustakaan yang diperlukan

Untuk membuat bekerja dengan AS5600 lebih mudah, instal perpustakaan "AS5600" dari GitHub atau Manajer Perpustakaan Arduino.

Langkah untuk menginstal:

  1. Buka Ide Arduino.
  2. Pergi ke Sketsa > Sertakan perpustakaan > Kelola Perpustakaan.
  3. Cari "AS5600" dan klik Memasang.

Langkah 4: Unggah kode

Berikut adalah kode contoh untuk membaca sudut dari AS5600 menggunakan I2C:

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

Langkah 5: Uji pengaturan

  1. Hubungkan Arduino ke komputer Anda melalui USB.
  2. Buka IDE Arduino dan pilih yang benar Papan Dan Pelabuhan di bawah Peralatan menu.
  3. Unggah kode dengan mengklik Mengunggah.
  4. Buka monitor serial (Peralatan > Monitor serial) dan atur baud rate ke 9600.
  5. Putar magnet di depan sensor AS5600. Sudut dalam derajat harus ditampilkan secara real time.

Opsional: Menggunakan mode output analog

  1. Hubungkan OUT Pin AS5600 ke pin analog di Arduino (mis., A0).
  2. Ubah kode untuk membaca tegangan analog:
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);
}

Aplikasi AS5600

  1. Penginderaan posisi motor
  2. Encoders Kenop Rotary
  3. Pengukuran sudut sendi robot
  4. Sistem Stabilisasi Gimbal Kamera

Pemecahan masalah

  • Tidak ada data: Verifikasi koneksi I2C dan pastikan pin yang benar ditentukan dalam kode.
  • Nilai yang tidak menentu: Pastikan magnet diposisikan dengan benar dan selaras dengan sensor.
  • Tidak ada respons dalam mode analog: Konfirmasi MODE Pin dikonfigurasi dengan benar.

Kesimpulan

Anda telah berhasil menghubungkan encoder rotary magnetik AS5600 dengan Arduino untuk mengukur posisi sudut. Baik Anda menggunakan I2C untuk pembacaan yang tepat atau mode analog untuk kesederhanaan, sensor ini adalah alat serbaguna untuk proyek yang membutuhkan pengukuran rotasi. Eksperimen lebih lanjut dengan mengintegrasikannya ke dalam kontrol motor atau proyek robotika!

Tinggalkan komentar

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.