autoworks24.com

3-Axis Accelerometer (ADXL335) GY-61

3-Axis Accelerometer (ADXL335) GY-61

3-Axis Accelerometer (ADXL335) GY-61 + Free และการนำไปใช้ในโลกของเซนเซอร์วัดความเคลื่อนไหว ชื่อของ ADXL335 ถือเป็นหนึ่งในตำนานที่นักเล่นอิเล็กทรอนิกส์และนักศึกษาวิศวกรรมรู้จักกันเป็นอย่างดี โดยเฉพาะในรูปแบบโมดูล GY-61 ซึ่งเป็นบอร์ด breakout ที่ทำให้การใช้งานเซนเซอร์ตัวนี้สะดวกยิ่งขึ้น บทความนี้จะพาคุณไปรู้จักกับ 3-Axis Accelerometer ADXL335 บนโมดูล GY-61 อย่างละเอียด ตั้งแต่หลักการทำงาน ลักษณะทางกายภาพ ข้อดี ไปจนถึงการประยุกต์ใช้ในโครงการต่างๆ ADXL335 คืออะไร ทำความรู้จักเซนเซอร์วัดความเร่งระดับตำนาน ADXL335 เป็นเซนเซอร์วัดความเร่ง (Accelerometer) แบบ 3 แกน (3-axis) ที่ผลิตโดย Analog Devices บริษัทผู้ผลิตชิประดับโลก เซนเซอร์ตัวนี้มีขนาดเล็ก บาง กินไฟน้อย และมีความสามารถครบถ้วนในการวัดความเร่ง โดยมีช่วงการวัดสูงสุดที่ ±3 g (จี) คำว่า 3-axis หมายถึงเซนเซอร์นี้สามารถวัดความเร่งได้พร้อมกันทั้ง 3 แกน ได้แก่ แกน X วัดความเร่งในแนวนอน ขนานกับแถวขาของโมดูล แกน Y วัดความเร่งในแนวนอน ตั้งฉากกับแถวขาของโมดูล แกน Z วัดความเร่งในแนวดิ่ง ตั้งฉากกับแผงวงจร จุดเด่นของ ADXL335 คือสามารถวัดได้ทั้ง ความเร่งสถิต (static acceleration) 

เช่น แรงโน้มถ่วงของโลกที่ดึงดูดเราอยู่ตลอดเวลา ซึ่งนำไปใช้ในการวัดความเอียง (tilt sensing) และ ความเร่งพลวัต (dynamic acceleration) เช่น การสั่นสะเทือน การกระแทก หรือการเคลื่อนไหว GY-61 โมดูลที่ทำให้ ADXL335 ใช้งานง่ายขึ้น ADXL335 ที่ขายในรูปแบบชิปเปล่าๆ (bare chip) มีขนาดเล็กมาก (4×4 มม.) และบัดกรียาก ดังนั้นในวงการนักเล่นอิเล็กทรอนิกส์จึงนิยมใช้ในรูปแบบ โมดูล GY-61 ซึ่งเป็นบอร์ด breakout ที่ติดตั้ง ADXL335 พร้อมวงจรเสริมต่างๆ ไว้ให้เรียบร้อย

  • ลักษณะทางกายภาพของ GY-61

โมดูล GY-61 มีขนาดกะทัดรัดมาก โดยทั่วไปมีความกว้าง 16-17 มม. ยาว 21-22 มม. และบางเพียง 2.5 มม. บนบอร์ดจะมีขาเข็ม 5 ขา (pin header) สำหรับเชื่อมต่อกับไมโครคอนโทรลเลอร์ และมี LED แสดงสถานะการทำงาน

  • ส่วนประกอบสำคัญบนโมดูล GY-61

สิ่งที่ทำให้ GY-61 น่าสนใจคือวงจรเสริมที่ติดตั้งมาให้ LDO Voltage Regulator โมดูล GY-61 มีวงจรควบคุมแรงดันไฟฟ้า (LDO Regulator) ในตัว ทำให้สามารถป้อนไฟได้ตั้งแต่ 3V ถึง 6V โดยไม่ต้องกังวลว่าจะจ่ายไฟเกิน spec ของ ADXL335 (ซึ่งต้องการแค่ 1.8-3.6V) วงจรกรองสัญญาณรบกวน บนบอร์ดมีตัวเก็บประจุ (capacitors) ที่ช่วยกรองสัญญาณรบกวนจากมอเตอร์หรืออุปกรณ์ไฟฟ้ากำลังสูงอื่นๆ ทำให้ค่าที่อ่านได้มีความนิ่งและแม่นยำมากขึ้น 3-Axis Accelerometer (ADXL335) GY-61 

หลักการทำงานและการอ่านค่า

หลักการทำงานและการอ่านค่า Pinout ของโมดูล GY-61 โมดูล GY-61 มีขา 5 ขา ดังนี้ ขา ชื่อ หน้าที่ ขา 1 VCC จ่ายไฟ 3-6V (โมดูลจะลดเหลือ 3.3V ให้ชิป) ขา 2 X_OUT สัญญาณ analog แกน X (แรงดัน 0-5V) ขา 3 Y_OUT สัญญาณ analog แกน Y (แรงดัน 0-5V) ขา 4 Z_OUT สัญญาณ analog แกน Z (แรงดัน 0-5V) ขา 5 GND กราวด์ (0V) ADXL335 เป็นเซนเซอร์ประเภท MEMS DC Accelerometer ซึ่งทำงานบนหลักการของมวลขนาดเล็กที่เคลื่อนที่เมื่อถูกแรงกระทำ การเคลื่อนที่นี้จะถูกแปลงเป็นสัญญาณไฟฟ้า โดย ADXL335 จะส่งออกมาเป็น แรงดันไฟฟ้าแอนะล็อก (analog voltage) ที่แปรผันตามความเร่ง ความสัมพันธ์ระหว่างแรงดันและความเร่ง การแปลงค่าแรงดันที่อ่านได้ให้เป็นค่า จี (g) ทำได้โดยใช้สูตร

สูตร linear ง่ายๆ a = (V — V₀) / S โดยที่ a = ความเร่งที่วัดได้ (หน่วย g) V = แรงดันที่อ่านได้จากขา X/Y/Z (หน่วย โวลต์) V₀ = แรงดัน ณ สภาวะ 0 g (ไม่มีแรงกระทำ) มีค่าประมาณ 1.65V เมื่อจ่ายไฟ 3.3V ให้เซนเซอร์ S = ค่าความไว (sensitivity) มีค่าประมาณ 300-330 mV/g การทำความเข้าใจค่า g อย่างง่าย ค่า g ที่อ่านได้นั้น ถ้าเซนเซอร์วางนิ่งบนพื้นราบ แกน Z จะอ่านค่าได้ประมาณ +1 g (แรงโน้มถ่วงโลกดึงลง) ส่วนแกน X และ Y จะอ่านได้ประมาณ 0 g ถ้าเขย่าหรือกระแทกเซนเซอร์ ค่าที่อ่านได้อาจพุ่งสูงถึง ±3 g ซึ่งเป็นขีดจำกัดของเซนเซอร์ตัวนี้

การเชื่อมต่อกับไมโครคอนโทรลเลอร์

การเชื่อมต่อกับไมโครคอนโทรลเลอร์ ข้อดีของ GY-61 คือเชื่อมต่อง่ายมาก เนื่องจากเป็นสัญญาณแอนะล็อก ไม่ต้องใช้โปรโตคอล I2C หรือ SPI ที่ซับซ้อน เพียงเชื่อมต่อดังนี้ การเชื่อมต่อกับ Arduino VCC → 5V หรือ 3.3V บน Arduino GND → GND X_OUT → ขา Analog (เช่น A0) Y_OUT → ขา Analog (เช่น A1) Z_OUT → ขา Analog (เช่น A2) ตัวอย่างโค้ดอ่านค่าและแปลงเป็น g (สำหรับ Arduino)

cpp

const int xPin = A0;

const int yPin = A1;

const int zPin = A2;

void setup() {

  Serial.begin(9600);

}

void loop() {

  int xRaw = analogRead(xPin);

  int yRaw = analogRead(yPin);

  int zRaw = analogRead(zPin);

// แปลงค่า raw (0-1023) เป็นแรงดัน (0-5V)

  float xVoltage = xRaw * (5.0 / 1023.0);

  float yVoltage = yRaw * (5.0 / 1023.0);

  float zVoltage = zRaw * (5.0 / 1023.0);

// แปลงแรงดันเป็นค่า g (V0 ≈ 1.65V, S ≈ 0.33 V/g)

  float xG = (xVoltage – 1.65) / 0.33;

  float yG = (yVoltage – 1.65) / 0.33;

  float zG = (zVoltage – 1.65) / 0.33;

  Serial.print(X ); Serial.print(xG); Serial.print( g, );

  Serial.print(Y ); Serial.print(yG); Serial.print( g, );

  Serial.print(Z ); Serial.print(zG); Serial.println( g);

  delay(100);

}

การประยุกต์ใช้งานจริง

การประยุกต์ใช้งานจริง ADXL335 GY-61 ถูกนำไปใช้ในโครงการหลากหลายประเภท เนื่องจากความเรียบง่ายและใช้งานง่าย การวัดความเอียง (Tilt Sensing) ใช้ในงานควบคุมทิศทางของหุ่นยนต์ การปรับมุมของกล้อง หรือการทำ digital level สำหรับงานก่อสร้าง การตรวจจับการกระแทกและการตก (Impact & Free-fall Detection) ใช้ในระบบป้องกันความเสียหายของอุปกรณ์พกพา หรือการบันทึกข้อมูลการชนในยานพาหนะ การตรวจสอบการสั่นสะเทือน (Vibration Monitoring) ใช้ในงานอุตสาหกรรมเพื่อตรวจสอบความผิดปกติของเครื่องจักร การควบคุมอุปกรณ์ด้วยการเคลื่อนไหว (Motion-controlled Interface) ใช้เป็นตัวควบคุมในเกมหรือแว่นตา VR ช่วยให้ผู้ใช้สามารถโต้ตอบกับระบบได้ด้วยการขยับร่างกาย ระบบนำทาง GPS เสริม (Dead Reckoning) ในขณะที่สัญญาณ GPS หลุด (เช่น ในอุโมงค์) accelerometer จะช่วยคำนวณตำแหน่งโดยประมาณจากความเร่งที่วัดได้ การตรวจจับท่าทางในอุปกรณ์พกพา (Gesture Recognition)

ช่วยให้อุปกรณ์รู้ว่ากำลังถูกถือในแนวนอนหรือแนวตั้ง หรือถูกรับ-วางบนโต๊ะ ข้อควรระวังและการ Calibrate ADXL335 มีข้อดีคือใช้งานง่าย แต่ก็มีข้อควรระวังเล็กน้อย การรบกวนจากแหล่งจ่ายไฟ แม้ GY-61 จะมีวงจรกรองสัญญาณมาให้ แต่ในสภาพแวดล้อมที่มีสัญญาณรบกวนสูง (เช่น ใกล้มอเตอร์ DC) ค่าที่อ่านได้อาจมี noise ได้ การ Calibrate หาค่า Zero-g Offset ค่า V₀ ที่ 1.65V เป็นค่าเฉลี่ยทางทฤษฎี ในความเป็นจริง แต่ละตัวอาจมีค่าคลาดเคลื่อนเล็กน้อย ควร calibrate โดยวางเซนเซอร์นิ่งในแนวนอน อ่านค่า X,Y,Z แล้วบันทึกเป็นค่า offset สำหรับสูตรคำนวณ ขีดจำกัด ±3 g หากต้องการวัดความเร่งที่มากกว่า 3 g (เช่น การตกจากที่สูงหลายเมตร หรือการยิงหนังสติ๊ก) ADXL335 จะไม่สามารถวัดค่าได้เต็มพิกัด ควรเลือกใช้รุ่นที่มีช่วงการวัดสูงกว่า เช่น ADXL345 ซึ่งวัดได้ถึง ±16 g

เหมาะสมสำหรับผู้เริ่มต้นและเรียบง่าย

GY-61 ADXL335 คือโมดูลเซนเซอร์วัดความเร่ง 3 แกนที่เหมาะสมที่สุดสำหรับผู้เริ่มต้นและผู้ที่ต้องการความเรียบง่าย เนื่องจากเป็น analog output เชื่อมต่อง่าย ไม่ต้องงมกับ I2C/SPI ที่ซับซ้อน แถมบนบอร์ดยังมีวงจร Regulate แรงดันไฟฟ้าในตัว ทำให้ต่อกับ Arduino ได้สบายๆ โดยไม่ต้องกังวลว่าไฟเกิน แม้จะเป็นเทคโนโลยีที่ไม่ใช่รุ่นใหม่ล่าสุด แต่ด้วยความเสถียร ใช้งานง่าย และมีตัวอย่างโค้ดและโครงการให้ศึกษามากมายบนอินเทอร์เน็ต ทำให้ ADXL335 ยังคงเป็นตัวเลือกอันดับต้นๆ สำหรับงานที่ต้องการวัดความเอียง วัดการเคลื่อนไหว หรือตรวจจับการกระแทกในระดับไม่รุนแรงมากนัก เหมาะสำหรับทั้งการเรียนรู้ในห้องเรียนและการพัฒนาโปรเจกต์จริง

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

Human Detection

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *