สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบ
- ขั้นตอนที่ 2: หลักการ
- ขั้นตอนที่ 3: ขั้นตอน
- ขั้นตอนที่ 4: รหัส
- ขั้นตอนที่ 5: การวิเคราะห์โค้ด
วีดีโอ: ADXL345 การใช้ Arduino Uno R3: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ในบทนี้ เราจะเรียนรู้วิธีใช้เซ็นเซอร์เร่งความเร็ว ADXL345
ขั้นตอนที่ 1: ส่วนประกอบ
- บอร์ด Arduino Uno * 1
- สาย USB * 1
- ADXL345 *1
- เขียงหั่นขนม * 1
- สายจัมเปอร์
ขั้นตอนที่ 2: หลักการ
มาตรความเร่งใช้เพื่อวัดแรงที่เกิดขึ้นระหว่างการเร่งความเร็ว พื้นฐานที่สุดคือความเร่งของแรงโน้มถ่วงที่รู้จักกันทั่วไปคือ 1 กรัม
โดยการวัดความเร่งที่เกิดจากแรงโน้มถ่วง คุณสามารถคำนวณมุมเอียงของอุปกรณ์กับพื้นผิวระดับได้ ด้วยการวิเคราะห์การเร่งความเร็วแบบไดนามิก คุณสามารถบอกได้ว่าอุปกรณ์เคลื่อนที่อย่างไร ตัวอย่างเช่น บอร์ดปรับสมดุลตัวเองหรือโฮเวอร์บอร์ดใช้เซ็นเซอร์เร่งความเร็วและไจโรสโคปสำหรับตัวกรองคาลมานและการแก้ไขท่าทาง
ADXL345
ADXL345 เป็นมาตรความเร่งแบบ 3 แกนขนาดเล็ก บาง และใช้พลังงานต่ำ พร้อมการวัดความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาต์พุตดิจิทัลจัดรูปแบบเป็นส่วนประกอบเสริม 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิทัล SPI (3 หรือ 4 สาย) หรือ I2C ในการทดลองนี้ ใช้อินเทอร์เฟซดิจิทัล I2C
เหมาะอย่างยิ่งสำหรับการวัดความเร่งคงที่ของแรงโน้มถ่วงในการใช้งานการตรวจจับการเอียง รวมถึงการเร่งความเร็วแบบไดนามิกที่เกิดจากการเคลื่อนไหวหรือการกระแทก ความละเอียดสูง (4 มก./LSB) ช่วยให้สามารถวัดการเปลี่ยนแปลงความเอียงได้น้อยกว่า 1.0 ° และความไวแสงที่ยอดเยี่ยม (3.9 มก./LSB @2 ก.) ให้เอาต์พุตที่มีความแม่นยำสูงถึง ±16 ก.
ADXL345 ทำงานอย่างไร
ADXL345 ตรวจจับการเร่งความเร็วด้วยส่วนประกอบตรวจจับที่ด้านหน้า จากนั้นส่วนประกอบตรวจจับสัญญาณไฟฟ้าจะเปลี่ยนเป็นสัญญาณไฟฟ้า ซึ่งเป็นสัญญาณแอนะล็อก ถัดไป อะแดปเตอร์ AD ที่รวมอยู่ในโมดูลจะแปลงสัญญาณแอนะล็อกเป็นสัญญาณดิจิทัล
X_OUT, Y_OUT และ Z_OUT เป็นค่าที่แกน X, Y และ Z ตามลำดับ วางโมดูลโดยหงายหน้าขึ้น: Z_OUT สามารถเข้าถึง +1g ได้สูงสุด X_OUT ขั้นต่ำคือ -1g ในทิศทาง Axe และต่ำสุดของ Y_OUT คือ -1g ในทิศทาง Ay ในทางกลับกัน ให้พลิกโมดูลกลับด้าน: ค่าต่ำสุดของ Z_OUT คือ -1g, ค่าสูงสุดของ X_OUT คือ +1g ในทิศทางของ Axe และสูงสุดของ Y_OUT คือ +1g ไปยังทิศทาง Ay ดังที่แสดงด้านล่าง หมุนโมดูล ADXL345 แล้วคุณจะเห็นการเปลี่ยนแปลงของค่าสามค่า
เมื่อช่อง A เปลี่ยนจากระดับสูงเป็นระดับต่ำ หากช่อง B อยู่ในระดับสูง แสดงว่าตัวเข้ารหัสแบบหมุนหมุนตามเข็มนาฬิกา (CW) หากในขณะนั้นช่อง B อยู่ในระดับต่ำ แสดงว่าหมุนทวนเข็มนาฬิกา (CCW) ดังนั้นหากเราอ่านค่าของช่อง B เมื่อช่อง A อยู่ในระดับต่ำ เราจะทราบได้ว่าตัวเข้ารหัสแบบหมุนหมุนไปในทิศทางใด
หลักการ: ดูแผนผังของโมดูล Rotary Encoder ด้านล่าง จากนั้นเราจะเห็นว่าพิน 3 ของตัวเข้ารหัสแบบหมุนคือ CLK บนโมดูลคือช่อง B ขาที่ 5 ซึ่งคือ DT คือช่อง A หากต้องการทราบทิศทางการหมุนของเครื่องบันทึกเพียงอ่านค่าของ CLK และ ดีที.
มีชิปควบคุมแรงดันไฟฟ้า 3.3v ในวงจร ดังนั้นคุณจึงสามารถจ่ายไฟให้กับโมดูลด้วย 5V หรือ 3.3V
เนื่องจาก SDO เชื่อมต่อกับ GND แล้ว ที่อยู่ I2C ของ ADXL345 คือ 0x53, 0xA6 สำหรับการเขียน, 0xA7 สำหรับการอ่าน
ฟังก์ชันพินของโมดูล ADXL345
ขั้นตอนที่ 3: ขั้นตอน
ขั้นตอนที่ 1 สร้างวงจร
ขั้นตอนที่ 2:
ดาวน์โหลดโค้ดจาก
ขั้นตอนที่ 3:
อัปโหลดภาพร่างไปยังบอร์ด Arduino Uno
คลิกไอคอนอัปโหลดเพื่ออัปโหลดรหัสไปยังแผงควบคุม
หาก "เสร็จสิ้นการอัปโหลด" ปรากฏที่ด้านล่างของหน้าต่าง แสดงว่าอัปโหลดภาพร่างสำเร็จแล้ว
หลังจากอัปโหลดแล้ว ให้เปิด Serial Monitor ซึ่งคุณสามารถดูข้อมูลที่ตรวจพบได้ เมื่อความเร่งของโมดูลเปลี่ยนไป ตัวเลขจะเปลี่ยนไปตามหน้าต่าง
ขั้นตอนที่ 4: รหัส
//ADXL335
/********************************
ADXL335
หมายเหตุ:vcc5v
แต่ ADXL335 Vs คือ 3.3V
วงจร:
5V: VCC
แอนะล็อก 0: แกน x
แอนะล็อก 1: แกน y
แอนะล็อก 2: แกน z
หลังจากเผา
โปรแกรม เปิดหน้าต่างการดีบักมอนิเตอร์แบบอนุกรม ซึ่งคุณสามารถดูข้อมูลที่ตรวจพบกำลังแสดงอยู่ เมื่อความเร่งแปรผัน ตัวเลขก็จะแปรผันตามไปด้วย
*********************************
/อีเมล:
//เว็บไซต์:www.primerobotics.in
const int xpin =
A0; // แกน x ของมาตรความเร่ง
const int ypin =
A1; // แกน y
const int zpin =
A2; // แกน z (เฉพาะรุ่น 3 แกนเท่านั้น)
การตั้งค่าเป็นโมฆะ ()
{
// เริ่มต้นการสื่อสารแบบอนุกรม:
Serial.begin(9600);
}
วงเป็นโมฆะ ()
{
int x = analogRead (xpin); // อ่านจาก xpin
ล่าช้า(1); //
int y = analogRead (ypin); //อ่านจาก ypin
ล่าช้า(1);
int z = analogRead (zpin); // อ่านจาก zpin
ลอยศูนย์_G = 338.0; //ADXL335 พาวเวอร์ซัพพลาย
โดย Vs 3.3V:3.3V/5V*1024=676/2=338
// Serial.print(x);
//Serial.print("\t");
// Serial.print(y);
//Serial.print("\t");
//อนุกรม.print(z);
//Serial.print("\n");
ลอย
zero_Gx=331.5;//เอาต์พุต zero_G ของแกน x:(x_max + x_min)/2
ลอย
zero_Gy=329.5;//เอาต์พุต zero_G ของแกน y:(y_max + y_min)/2
float zero_Gz=340.0;//the
เอาต์พุต zero_G ของแกน z:(z_max + z_min)/2
มาตราส่วนลอย =
67.6; // การจ่ายไฟโดย Vs 3.3V:3.3v /5v *1024/3.3v *330mv/g =67.6g
float scale_x =
65;//สเกลแกน x: x_max/3.3v*330mv/g
float scale_y =
68.5;//สเกลของแกน y: y_max/3.3v*330mv/g
float scale_z =
68;//สเกลของแกน z: z_max/3.3v*330mv/g
Serial.print(((ลอย)x
- zero_Gx)/scale_x); //พิมพ์ค่า x บนจอภาพอนุกรม
Serial.print("\t");
Serial.print(((ลอย)y
- zero_Gy)/scale_y); //พิมพ์ค่า y บนจอภาพอนุกรม
Serial.print("\t");
Serial.print(((ลอย)z
- zero_Gz)/scale_z); //พิมพ์ค่า z บนจอภาพอนุกรม
Serial.print("\n");
ล่าช้า (1000); //รอ 1 วินาที
}
ขั้นตอนที่ 5: การวิเคราะห์โค้ด
รหัสสำหรับการทดลอง ADXL345 ประกอบด้วย 3 ส่วน ได้แก่ เริ่มต้นแต่ละพอร์ตและอุปกรณ์ รับและจัดเก็บข้อมูลที่ส่งจากเซ็นเซอร์ และแปลงข้อมูล
แนะนำ:
การใช้ Mifare Ultralight C กับ RC522 บน Arduino: 3 ขั้นตอน
การใช้ Mifare Ultralight C กับ RC522 บน Arduino: การใช้เทคโนโลยี RFID เพื่อระบุผู้ถือบัตรหรืออนุญาตให้ทำอะไรบางอย่าง (เปิดประตู ฯลฯ) เป็นแนวทางทั่วไป ในกรณีของแอปพลิเคชัน DIY โมดูล RC522 นั้นใช้กันอย่างแพร่หลาย เนื่องจากมีราคาถูกและมีโค้ดจำนวนมากสำหรับโมดูลนี้ ฉัน
การใช้ STM32 เช่นเดียวกับการสอน Arduino - STM32F103C8: 5 ขั้นตอน
การใช้ STM32 เช่นเดียวกับการสอน Arduino | STM32F103C8: ว่าไงพวก! Akarsh ที่นี่จาก CETech ในบทช่วยสอนต่อไปนี้ เราจะดูไมโครคอนโทรลเลอร์ต่างๆ ที่นำเสนอโดย STM เช่น STM32F103C8, STM32F030F4 และ STM8S103F3 เราจะเปรียบเทียบไมโครเหล่านี้กับ
การใช้ 1602 LCD Keypad Shield W/ Arduino [+โปรเจ็กต์ที่ใช้งานได้จริง]: 7 ขั้นตอน
การใช้ 1602 LCD Keypad Shield W/ Arduino [+Practical Projects]: คุณสามารถอ่านบทแนะนำนี้และบทช่วยสอนที่น่าทึ่งอื่น ๆ ได้จากเว็บไซต์ทางการของ ElectroPeak ภาพรวมในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้แผงปุ่มกด Arduino LCD กับ 3 โปรเจ็กต์เชิงปฏิบัติ สิ่งที่คุณจะได้เรียนรู้: วิธีการตั้งค่าโล่และระบุคีย์โฮ
เพลง Reactive RGB LED Strip พร้อมรหัส - WS1228b - การใช้ Arduino & โมดูลไมโครโฟน: 11 ขั้นตอน
เพลง Reactive RGB LED Strip พร้อมรหัส | WS1228b | การใช้ Arduino และโมดูลไมโครโฟน: การสร้างแถบไฟ LED แบบรีแอกทีฟ WS1228B โดยใช้ Arduino และโมดูลไมโครโฟน ส่วนที่ใช้: Arduino WS1228b เซ็นเซอร์เสียงแถบ LED เขียงหั่นขนมจัมเปอร์ 5V 5A พาวเวอร์ซัพพลาย
การใช้ Arduino Uno สำหรับการวางตำแหน่ง XYZ ของแขนหุ่นยนต์ 6 DOF: 4 ขั้นตอน
การใช้ Arduino Uno สำหรับการวางตำแหน่ง XYZ ของแขนกล DOF 6 ตัว: โครงการนี้เกี่ยวกับการนำร่าง Arduino ที่สั้นและค่อนข้างง่ายไปใช้ในการจัดตำแหน่งจลนศาสตร์ผกผันของ XYZ ฉันได้สร้างแขนหุ่นยนต์เซอร์โว 6 ตัวแล้ว แต่เมื่อต้องหาซอฟต์แวร์เพื่อใช้งาน ไม่มีอะไรมากนอกจากการดูแล