วิธีใช้เครื่องเข้ารหัสแบบโรตารี่ AS5600 กับ Arduino

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

AS5600 เป็นตัวเข้ารหัสแบบหมุนแม่เหล็กที่แม่นยำซึ่งสามารถวัดมุมที่มีความละเอียด 12 บิต มันสื่อสารผ่าน I2C หรือเอาต์พุตอะนาล็อกทำให้เหมาะสำหรับหุ่นยนต์การควบคุมมอเตอร์และแอปพลิเคชันการตรวจจับตำแหน่ง บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ AS5600 กับ Arduino


สิ่งที่คุณต้องการ

  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 การกำหนดค่าทิศทาง
โหมด การกำหนดค่าโหมดเอาต์พุต

บันทึก: ที่ DIR PIN กำหนดทิศทางการหมุนและ MODE PIN เลือกระหว่าง I2C หรือโหมดเอาต์พุตอะนาล็อก สำหรับ I2C เชื่อมต่อ MODE ถึง gnd.


ขั้นตอนที่ 2: เดินสาย AS5600 ไปยัง Arduino

โหมด I2C (ค่าเริ่มต้น)

เชื่อมต่อ AS5600 กับ Arduino ดังนี้:

As5600 PIN พิน Arduino
VCC 5V
gnd gnd
SDA A4
SCL A5

บันทึก: สำหรับบอร์ด Arduino อื่น ๆ ให้แน่ใจว่าคุณใช้พิน I2C ที่ถูกต้อง


ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ

เพื่อให้การทำงานกับ AS5600 ง่ายขึ้นให้ติดตั้งไลบรารี "AS5600" จาก GitHub หรือ Arduino Library Manager

ขั้นตอนในการติดตั้ง:

  1. เปิด Arduino IDE
  2. ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
  3. ค้นหา "AS5600" แล้วคลิก ติดตั้ง.

ขั้นตอนที่ 4: อัปโหลดรหัส

นี่คือรหัสตัวอย่างในการอ่านมุมจาก AS5600 โดยใช้ 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
}

ขั้นตอนที่ 5: ทดสอบการตั้งค่า

  1. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  2. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
  3. อัปโหลดรหัสโดยคลิก อัพโหลด.
  4. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  5. หมุนแม่เหล็กด้านหน้าของเซ็นเซอร์ AS5600 มุมในองศาควรแสดงแบบเรียลไทม์

ตัวเลือก: การใช้โหมดเอาต์พุตแบบอะนาล็อก

  1. เชื่อมต่อ OUT PIN ของ 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. ระบบการรักษาเสถียรภาพของกล้อง gimbal

การแก้ไขปัญหา

  • ไม่มีข้อมูล: ตรวจสอบการเชื่อมต่อ I2C และตรวจสอบให้แน่ใจว่ามีการกำหนดพินที่ถูกต้องในรหัส
  • ค่าที่ผิดปกติ: ตรวจสอบให้แน่ใจว่าแม่เหล็กอยู่ในตำแหน่งที่ถูกต้องและจัดแนวกับเซ็นเซอร์
  • ไม่มีการตอบสนองในโหมดอะนาล็อก: ยืนยัน MODE PIN ถูกกำหนดค่าอย่างถูกต้อง

บทสรุป

คุณสามารถเชื่อมต่อเครื่องเข้ารหัสแบบโรตารี่ 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.