ADXL345 เซ็นเซอร์วัดความเร่ง 3 แกน
nextbackseo@gmail.com | Posted on |
สารบัญ
ToggleADXL345 เซ็นเซอร์วัดความเร่ง 3 แกน
ADXL345 เซ็นเซอร์วัดความเร่ง 3 แกน GY-291 ADXL345 Accelerometer Module เจาะลึกเซ็นเซอร์วัดความเร่ง 3 แกนยอดนิยม ในโลกของไมโครคอนโทรลเลอร์และงาน DIY อิเล็กทรอนิกส์ เซ็นเซอร์วัดความเร่ง (Accelerometer) เป็นอุปกรณ์ที่ขาดไม่ได้สำหรับโปรเจกต์ที่เกี่ยวข้องกับการตรวจจับการเคลื่อนไหว การเอียง หรือแรงสั่นสะเทือน หนึ่งในโมดูลที่ได้รับความนิยมและมีราคาเข้าถึงง่ายคือ GY-291 ADXL345 บทความนี้จะพาคุณไปรู้จักกับโมดูลนี้แบบเจาะลึก ตั้งแต่สเปกทางเทคนิค การใช้งานจริง ข้อดีข้อเสีย ไปจนถึงรีวิวจากผู้ใช้จริง เพื่อให้คุณตัดสินใจได้ว่าเหมาะกับโปรเจกต์ของคุณหรือไม่ GY-291 ADXL345 คืออะไร GY-291 เป็นโมดูลเซ็นเซอร์ที่ใช้ชิป ADXL345 จากบริษัท Analog Devices โดยเป็นเซ็นเซอร์วัดความเร่งแบบ 3 แกน (X, Y, Z) ที่มีความละเอียดสูงและใช้พลังงานต่ำ ขนาดของโมดูลเล็กกะทัดรัดเพียงประมาณ 2 x 1 x 0.5 เซนติเมตร ทำให้เหมาะสำหรับการติดตั้งในโปรเจกต์ขนาดเล็ก เช่น แขนหุ่นยนต์ ดรอเน่ หรืออุปกรณ์สวมใส่ สเปกทางเทคนิคที่ควรรู้ คุณสมบัติ รายละเอียด ชิปเซ็นเซอร์ ADXL345 แกนการวัด 3 แกน (X, Y, Z) ค่าความละเอียด 13-bit (3.9 mg/LSB) ระยะการวัด ±2g, ±4g, ±8g, ±16g (เลือกผ่านคำสั่ง) แรงดันไฟฟ้า 2.5V – 5.5V (ตัวโมดูลมี Voltage Regulator) การสื่อสาร I2C และ SPI (3 หรือ 4 เส้น) ฟังก์ชันพิเศษ Tap detection, Free-fall detection, Activity/Inactivity monitoring อุณหภูมิใช้งาน -40°C ถึง +85°C ด้วยระยะการวัดสูงสุด ±16g และทนแรงกระแทกได้ถึง 10,000g ทำให้ ADXL345 มีความทนทานสูง สามารถนำไปใช้ในงานที่ต้องวัดแรงกระแทกหรือการเคลื่อนไหวรุนแรงได้ ADXL345 เซ็นเซอร์วัดความเร่ง 3 แกน
จุดเด่นที่น่าสนใจ
จุดเด่นที่น่าสนใจ ความละเอียดสูง วัดเอียงได้ละเอียดระดับ 1 องศา จุดขายสำคัญของ ADXL345 คือความละเอียดระดับ 13-bit หรือ 3.9 มิลลิกรัมต่อค่า LSB ซึ่งหมายความว่าเซ็นเซอร์สามารถตรวจจับการเปลี่ยนแปลงของแรงโน้มถ่วงได้ละเอียดมาก จนสามารถวัดมุมเอียงที่เปลี่ยนแปลงน้อยกว่า 1 องศาได้ เหมาะสำหรับงานที่ต้องการความแม่นยำสูง เช่น การปรับระดับแท่นพิมพ์ 3 มิติ หรือการควบคุมท่าทางของโดรน รองรับทั้ง I2C และ SPI GY-291 ออกแบบมาให้สื่อสารได้ทั้งแบบ I2C และ SPI โดย I2C ใช้แค่ 2 เส้น (SDA และ SCL) เหมาะสำหรับโปรเจกต์ที่ต้องประหยัดพอร์ต ส่วน SPI ให้ความเร็วสูงกว่า เหมาะกับงานที่ต้องอ่านค่าความเร่งแบบ Real-time ด้วยอัตราเร็วสูง มีฟังก์ชันพิเศษในตัว ADXL345 มีฟังก์ชันตรวจจับการแตะ (Single tap / Double tap) การตกอิสระ (Free-fall) และการตรวจจับการเคลื่อนไหว (Activity/Inactivity) ในตัว ซึ่งสามารถแมปไปยังขา Interrupt ได้โดยตรง โดยไม่ต้องให้ MCU คำนวณเอง ช่วยลดภาระการประมวลผลและตอบสนองได้รวดเร็ว กินไฟน้อย เหมาะกับอุปกรณ์พกพา เซ็นเซอร์ใช้กระแสไฟฟ้าเพียง 8mA ในโหมดปกติ และลดเหลือไมโครแอมป์ในโหมด Standby ทำให้เหมาะสำหรับโปรเจกต์ที่ใช้แบตเตอรี่ เช่น อุปกรณ์สวมใส่หรือเซ็นเซอร์ IoT มีไลบรารี่ให้ใช้งานง่าย เนื่องจากเป็นเซ็นเซอร์ยอดนิยมมาอย่างยาวนาน จึงมีไลบรารี่สำเร็จรูปให้ใช้งานบน Arduino มากมาย โดยเฉพาะไลบรารี่ของ Adafruit ที่ทำให้การอ่านค่าความเร่งทำได้ด้วยโค้ดเพียงไม่กี่บรรทัด
ข้อเสียและข้อควรระวัง
ข้อเสียและข้อควรระวัง ปัญหาคุณภาพสินค้าไม่สม่ำเสมอ นี่คือปัญหาสำคัญที่สุดที่พบจากรีวิวผู้ใช้จริง โดยเฉพาะเมื่อสั่งซื้อจากผู้ขายราคาถูกในแพลตฟอร์มออนไลน์ มีรายงานว่าผู้ใช้ได้รับสินค้าที่ชำรุดไม่ทำงาน หรือมีบางตัวในแพ็คเกจเดียวกันที่ใช้งานไม่ได้ ตัวอย่างรีวิวจากผู้ใช้จริง ได้รับเซ็นเซอร์ 5 ตัว มีตัวเดียวที่ใช้งานได้นิดหน่อย ที่เหลือเสีย 5 ชิ้นที่ซื้อมา เสียทั้งหมด ตัวแรกทำงานได้พักเดียวก็เสีย 5 ชิ้น มี 4 ชิ้นที่เสีย ใช้งานได้แค่ตัวเดียว จากรีวิวเหล่านี้ แนะนำให้ซื้อจากผู้ขายที่เชื่อถือได้และควรซื้อเผื่อไว้สัก 1-2 ตัว ในกรณีที่ได้รับของเสีย แรงดันไฟฟ้าที่ต้องระวัง แม้โมดูลจะมี Voltage Regulator ในตัว แต่จากคู่มือการใช้งานจริงแนะนำว่าควรต่อ VCC เข้ากับ 3.3V ไม่ใช่ 5V การต่อไฟ 5V เข้าตรงๆ อาจทำให้เซ็นเซอร์เสียหายหรือมีอายุการใช้งานสั้นลงได้ อาจมีปัญหาในโหมด SPI บางรีวิวระบุว่า การสื่อสารแบบ SPI อาจมีปัญหาในบางรุ่นย่อยของบอร์ด ควรทดสอบการทำงานในโหมด I2C ก่อน เพราะเป็นโหมดที่พบว่าทำงานได้เสถียรที่สุด การคำนวณมุมต้องใช้ความรู้เพิ่มเติม ถึงแม้การอ่านค่าความเร่งดิบจะทำได้ง่าย แต่การแปลงค่าเป็นมุมเอียง (Roll/Pitch) ต้องใช้สูตรคำนวณทางตรีโกณมิติ หากต้องการวัดมุมที่แม่นยำในสภาวะที่มีการเคลื่อนไหวรวดเร็ว อาจต้องใช้ฟิลเตอร์ เช่น Complementary Filter หรือ Kalman Filter ร่วมด้วย การเชื่อมต่อและการเขียนโค้ดเบื้องต้น การต่อวงจรแบบ I2C (แนะนำสำหรับผู้เริ่มต้น)
ขา GY-291 ต่อกับ Arduino
VCC 3.3V
GND GND
SDA A4 (Uno/Nano) หรือ SDA (ESP32)
SCL A5 (Uno/Nano) หรือ SCL (ESP32)
โค้ดตัวอย่างสำหรับอ่านค่าความเร่ง
หลังจากติดตั้งไลบรารี่ Adafruit ADXL345 ผ่าน Arduino Library Manager แล้ว สามารถใช้โค้ดต่อไปนี้
cpp
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup() {
Serial.begin(9600);
if(!accel.begin()) {
Serial.println(ไม่พบเซ็นเซอร์!);
while(1);
}
accel.setRange(ADXL345_RANGE_16_G); // ตั้งค่าให้วัดได้สูงสุด ±16G
}
void loop() {
sensors_event_t event;
accel.getEvent(&event);
Serial.print(X ); Serial.print(event.acceleration.x);
Serial.print( Y ); Serial.print(event.acceleration.y);
Serial.print( Z ); Serial.println(event.acceleration.z);
delay(500);
}
การประยุกต์ใช้ GY-291 จริง
การประยุกต์ใช้จริง GY-291 ADXL345 ถูกนำไปใช้งานในโปรเจกต์หลากหลายประเภท Pedometer / เครื่องนับก้าวเดิน เซ็นเซอร์ใช้ตรวจจับรูปแบบการเดินโดยการคำนวณค่าขนาดของเวกเตอร์ความเร่ง 3 มิติ การวัด Resonant Frequency ในเครื่องพิมพ์ 3 มิติ ใช้เซ็นเซอร์ตรวจจับการสั่นสะเทือนของหัวพิมพ์แล้วใช้ซอฟต์แวร์อย่าง Klipper ชดเชยค่าสั่นสะเทือน ช่วยลดปัญหาพิมพ์งานมีริ้วรอย (Ringing/Ghosting) ควบคุมหุ่นยนต์ด้วยการเอียง ใช้เซ็นเซอร์วัดมุมเอียงของรีโมทคอนโทรลเพื่อควบคุมหุ่นยนต์โดยไม่ต้องใช้จอยสติ๊ก ตรวจจับการตกและการเตะ ใช้ฟังก์ชัน Interrupt ในตัวเซ็นเซอร์ตรวจจับการแตะหรือการตกในโปรเจกต์ Internet of Things คุ้มค่าที่จะซื้อหรือไม่ เหมาะสำหรับ ผู้ที่เริ่มต้นเรียนรู้เรื่องเซ็นเซอร์วัดความเร่ง, นักศึกษาหรือ hobbyist ที่ทำโปรเจกต์เกี่ยวกับการตรวจจับการเคลื่อนไหวหรือการวัดมุมที่ไม่ต้องการความแม่นยำระดับอุตสาหกรรม รวมถึงผู้ที่ต้องการเซ็นเซอร์ราคาประหยัดไม่เหมาะสำหรับ โปรเจกต์ที่ต้องการความน่าเชื่อถือ 100% โดยไม่สามารถเปลี่ยนเซ็นเซอร์ได้ และโปรเจกต์ที่ต้องการตรวจจับการหมุนรอบแกน (ซึ่งต้องใช้ Gyroscope ร่วมด้วย) ข้อเสนอแนะ หากต้องการเซ็นเซอร์ที่เชื่อถือได้สำหรับงานจริงจัง แนะนำให้ซื้อบอร์ดจากผู้ผลิตที่มีชื่อเสียงหรือไลบรารี่ที่รองรับฟังก์ชันครบถ้วน เผื่องบประมาณไม่จำกัดอาจพิจารณาใช้ MPU6050 (Accel+Gyro) แทน แต่ถ้าต้องการเซ็นเซอร์วัดความเร่งอย่างเดียวราคาประหยัด GY-291 ADXL345 ก็ยังคงเป็นตัวเลือกที่ดีที่สุดตัวหนึ่งในตลาด ราคาและข้อมูลสินค้าอาจมีการเปลี่ยนแปลง โปรดตรวจสอบกับผู้ขายอีกครั้ง
Arduino IDE, Arduino UNO คือ, Arduino โค้ด, Arduino โหลด, Arduino คือ, Arduino ต่อ Relay, Arduino บอร์ด, Sensor ตรวจจับวัตถุ Arduino, เขียน Arduino, เขียน Code Arduino, เซ็นเซอร์ Arduino, เซ็นเซอร์อุณหภูมิ Arduino, เรียน Arduino, โค้ด Arduino, โค้ด Arduino เซ็นเซอร์, โค้ด Arduino ง่ายๆ, โปรเจค Arduino เซ็นเซอร์อุณหภูมิ, โปรแกรม Arduino, โปรแกรม Arduino IDE, โปรแกรม Arduino UNO, ใช้ Arduino, กล้อง Arduino, ข้อมูล Arduino, ขาย Arduino, คู่มือ Arduino, ซอฟต์แวร์ Arduino, ซื้อ Arduino, ต่อ Arduino, ต่อ LCD กับ Arduino, นวัตกรรม Arduino, บอร์ด Arduino, ร้าน Arduino, ร้านขายอุปกรณ์อิเล็ค, วงจร Arduino, สอน Arduino, ออกแบบ Arduino, อุปกรณ์ Arduino, อุปกรณ์ Sensor Arduino
ใส่ความเห็น