AS5600 เป็นตัวเข้ารหัสแบบหมุนแม่เหล็กที่แม่นยำซึ่งสามารถวัดมุมที่มีความละเอียด 12 บิต มันสื่อสารผ่าน I2C หรือเอาต์พุตอะนาล็อกทำให้เหมาะสำหรับหุ่นยนต์การควบคุมมอเตอร์และแอปพลิเคชันการตรวจจับตำแหน่ง บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ AS5600 กับ Arduino
สิ่งที่คุณต้องการ
- AS5600 โมดูลเครื่องเข้ารหัสแบบโรตารี่แม่เหล็ก
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง 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
ขั้นตอนในการติดตั้ง:
- เปิด Arduino IDE
- ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
- ค้นหา "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: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสโดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
. - หมุนแม่เหล็กด้านหน้าของเซ็นเซอร์ AS5600 มุมในองศาควรแสดงแบบเรียลไทม์
ตัวเลือก: การใช้โหมดเอาต์พุตแบบอะนาล็อก
- เชื่อมต่อ
OUT
PIN ของ AS5600 ถึงพินอะนาล็อกบน Arduino (เช่น A0) - แก้ไขรหัสเพื่ออ่านแรงดันอะนาล็อก:
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
- การตรวจจับตำแหน่งมอเตอร์
- เข้ารหัสลูกบิดโรตารี่
- การวัดมุมร่วมของหุ่นยนต์
- ระบบการรักษาเสถียรภาพของกล้อง gimbal
การแก้ไขปัญหา
- ไม่มีข้อมูล: ตรวจสอบการเชื่อมต่อ I2C และตรวจสอบให้แน่ใจว่ามีการกำหนดพินที่ถูกต้องในรหัส
- ค่าที่ผิดปกติ: ตรวจสอบให้แน่ใจว่าแม่เหล็กอยู่ในตำแหน่งที่ถูกต้องและจัดแนวกับเซ็นเซอร์
-
ไม่มีการตอบสนองในโหมดอะนาล็อก: ยืนยัน
MODE
PIN ถูกกำหนดค่าอย่างถูกต้อง
บทสรุป
คุณสามารถเชื่อมต่อเครื่องเข้ารหัสแบบโรตารี่ AS5600 ได้สำเร็จกับ Arduino เพื่อวัดตำแหน่งเชิงมุม ไม่ว่าคุณจะใช้ I2C สำหรับการอ่านที่แม่นยำหรือโหมดอะนาล็อกเพื่อความเรียบง่ายเซ็นเซอร์นี้เป็นเครื่องมือที่หลากหลายสำหรับโครงการที่ต้องใช้การวัดการหมุน ทดลองเพิ่มเติมโดยรวมเข้ากับโครงการควบคุมมอเตอร์หรือหุ่นยนต์!