สำหรับผู้ที่สนใจทำโปรเจกต์ DIY การอ่านค่าจริงจาก Encoder ถือเป็นเรื่องสำคัญ เพราะจะช่วยให้เราสามารถตรวจสอบตำแหน่ง การหมุน หรือความเร็วของมอเตอร์ได้อย่างแม่นยำ บทความนี้จะแนะนำวิธีการอ่านค่า Encoder ในงาน DIY แบบเข้าใจง่าย เหมาะสำหรับมือใหม่และผู้ที่ทำโปรเจกต์อิเล็กทรอนิกส์
1. ประเภทของ Encoder ที่ใช้ในงาน DIY
Encoder แบ่งออกเป็นสองประเภทหลัก ได้แก่:
- Incremental Encoder – ใช้สำหรับวัดการหมุนแบบสัมพัทธ์ เหมาะสำหรับงานควบคุมมอเตอร์และหุ่นยนต์
- Absolute Encoder – ใช้สำหรับวัดตำแหน่งจริงของเพลามอเตอร์ทันที โดยไม่ต้องรีเซ็ต
2. วิธีการเชื่อมต่อ Encoder กับไมโครคอนโทรลเลอร์
โดยทั่วไป Encoder จะมีสายสัญญาณดังนี้:
- VCC – ต่อไฟเลี้ยง
- GND – ต่อกราวด์
- A/B – สัญญาณพัลส์
- บางรุ่นมี Z หรือ Index – ใช้รีเซ็ตตำแหน่งเริ่มต้น
สำหรับงาน DIY แนะนำให้ใช้ Arduino หรือ ESP32 เป็นไมโครคอนโทรลเลอร์เพื่ออ่านค่าพัลส์จาก Encoder
3. ตัวอย่างโค้ดอ่านค่าจาก Incremental Encoder ด้วย Arduino
#define ENCODER_PIN_A 2
#define ENCODER_PIN_B 3
volatile int encoderPosition = 0;
void setup() {
pinMode(ENCODER_PIN_A, INPUT_PULLUP);
pinMode(ENCODER_PIN_B, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(ENCODER_PIN_A), updateEncoder, CHANGE);
Serial.begin(9600);
}
void loop() {
Serial.println(encoderPosition);
delay(200);
}
void updateEncoder() {
int stateA = digitalRead(ENCODER_PIN_A);
int stateB = digitalRead(ENCODER_PIN_B);
if (stateA == stateB) {
encoderPosition++;
} else {
encoderPosition--;
}
}
4. การนำค่าที่อ่านได้ไปใช้งาน
ค่าจาก Encoder สามารถนำไปใช้งานได้หลายแบบ เช่น:
- ควบคุมความเร็วมอเตอร์ให้คงที่
- ตรวจสอบตำแหน่งของหุ่นยนต์
- ทำงานร่วมกับเซอร์โวหรือมอเตอร์สเต็ปเพื่อความแม่นยำสูง
เมื่อเข้าใจหลักการและวิธีเชื่อมต่อแล้ว ผู้ทำโปรเจกต์ DIY สามารถนำ Encoder ไปประยุกต์ใช้งานได้อย่างสร้างสรรค์และแม่นยำ
Encoder, Arduino, DIY, งานอิเล็กทรอนิกส์, อ่านค่า Encoder, มอเตอร์, ควบคุมหุ่นยนต์, Incremental Encoder, Absolute Encoder
