สารบัญ:

Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 ขั้นตอน
Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 ขั้นตอน

วีดีโอ: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 ขั้นตอน

วีดีโอ: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 ขั้นตอน
วีดีโอ: Sparkfun Inventor's Kit for LabVIEW - 16 | MMA8452 Accelerometer 2024, กรกฎาคม
Anonim
Image
Image

MMA8452Q เป็นเครื่องวัดความเร่งแบบไมโครแมชชีนแบบสามแกน ใช้พลังงานต่ำ อัจฉริยะ ใช้พลังงานต่ำ มีความละเอียด 12 บิต ตัวเลือกที่ตั้งโปรแกรมได้ของผู้ใช้ที่ยืดหยุ่นนั้นมาพร้อมกับฟังก์ชั่นฝังตัวในมาตรความเร่ง ซึ่งสามารถกำหนดค่าเป็นพินอินเทอร์รัปต์สองตัวได้ ผู้ใช้สามารถเลือกสเกลแบบเต็มได้ ±2g/±4g/±8g พร้อมข้อมูลที่กรองผ่านตัวกรองความถี่สูง รวมถึงข้อมูลที่ไม่มีการกรองแบบเรียลไทม์ นี่คือการสาธิตด้วย Arduino nano

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ..!

สิ่งที่คุณต้องการ..!!
สิ่งที่คุณต้องการ..!!

1. Arduino นาโน

2. MMA8452Q

3. สายเคเบิล I²C

4. I²C Shield สำหรับ Arduino Nano

ขั้นตอนที่ 2: การเชื่อมต่อ:

การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ

นำเกราะป้องกัน I2C สำหรับ Arduino Nano แล้วค่อยๆ ดันไปบนหมุดของ Nano

จากนั้นเชื่อมต่อปลายสาย I2C ด้านหนึ่งกับเซ็นเซอร์ MMA8452Q และปลายอีกด้านหนึ่งเข้ากับแผงป้องกัน I2C

การเชื่อมต่อแสดงในภาพด้านบน

ขั้นตอนที่ 3: รหัส:

รหัส
รหัส

สามารถดาวน์โหลดรหัส Arduino สำหรับ MMMA8452Q ได้จากที่เก็บ github ของเรา - DCUBE Store

นี่คือลิงค์.

เรารวมไลบรารี Wire.h เพื่ออำนวยความสะดวกในการสื่อสาร I2c ของเซ็นเซอร์กับบอร์ด Arduino

คุณสามารถคัดลอกรหัสจากที่นี่ได้ดังนี้:

// แจกจ่ายด้วยใบอนุญาตอิสระ

// ใช้มันตามที่คุณต้องการ ไม่ว่าจะมีกำไรหรือฟรี หากเข้ากับใบอนุญาตของงานที่เกี่ยวข้อง

// MMA8452Q

// โค้ดนี้ออกแบบมาเพื่อทำงานกับ MMA8452Q_I2CS I2C Mini Module

#รวม

// ที่อยู่ MMA8452Q I2C คือ 0x1C(28)

#define แอดเดอร์ 0x1C

การตั้งค่าเป็นโมฆะ ()

{

// เริ่มต้นการสื่อสาร I2C เป็น MASTER

Wire.begin();

// เริ่มต้นการสื่อสารแบบอนุกรม ตั้งค่าอัตรารับส่งข้อมูล = 9600

Serial.begin(9600);

// เริ่มการส่ง I2C

Wire.beginTransmission(Addr);

// เลือกตัวควบคุมการลงทะเบียน

Wire.write(0x2A);

// โหมดสแตนด์บาย

Wire.write(0x00);

// หยุดการส่ง I2C

Wire.endTransmission();

// เริ่มการส่ง I2C

Wire.beginTransmission(Addr);

// เลือกตัวควบคุมการลงทะเบียน

Wire.write(0x2A);

// โหมดแอคทีฟ

Wire.write(0x01);

// หยุดการส่ง I2C

Wire.endTransmission();

// เริ่มการส่ง I2C

Wire.beginTransmission(Addr);

// เลือกตัวควบคุมการลงทะเบียน

Wire.write(0x0E);

// ตั้งค่าช่วงเป็น +/- 2g

Wire.write(0x00);

// หยุดการส่ง I2C

Wire.endTransmission();

ล่าช้า (300);

}

วงเป็นโมฆะ ()

{

ข้อมูล int ที่ไม่ได้ลงนาม[7];

// ขอข้อมูล 7 ไบต์

Wire.requestFrom(Addr, 7);

// อ่านข้อมูล 7 ไบต์

// สถานะ, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

ถ้า(Wire.available() == 7)

{

data[0] = Wire.read();

ข้อมูล[1] = Wire.read();

ข้อมูล [2] = Wire.read();

ข้อมูล[3] = Wire.read();

ข้อมูล[4] = Wire.read();

ข้อมูล[5] = Wire.read();

ข้อมูล[6] = Wire.read();

}

// แปลงข้อมูลเป็น 12 บิต

int xAccl = ((ข้อมูล[1] * 256) + ข้อมูล[2]) / 16;

ถ้า (xAccl > 2047)

{

xAccl -= 4096;

}

int yAccl = ((ข้อมูล[3] * 256) + ข้อมูล[4]) / 16;

ถ้า (yAccl > 2047)

{

yAccl -= 4096;

}

int zAccl = ((ข้อมูล[5] * 256) + ข้อมูล[6]) / 16;

ถ้า (zAccl > 2047)

{

zAccl -= 4096;

}

// ส่งออกข้อมูลไปยังมอนิเตอร์แบบอนุกรม

Serial.print("การเร่งความเร็วในแกน X: ");

Serial.println(xAccl);

Serial.print("การเร่งความเร็วในแกน Y: ");

Serial.println(yAccl);

Serial.print("การเร่งความเร็วในแกน Z: ");

Serial.println(zAccl);

ล่าช้า (500);

}

ขั้นตอนที่ 4: การใช้งาน:

MMA8452Q มีแอปพลิเคชันต่างๆ ซึ่งรวมถึงแอปพลิเคชัน E-Compass, การตรวจจับการวางแนวคงที่ซึ่งรวมถึงแนวตั้ง/แนวนอน, ขึ้น/ลง, ซ้าย/ขวา, การระบุตำแหน่งกลับ/ ด้านหน้า, โน้ตบุ๊ก, e-reader และ Laptop Tumble and Freefall Detection แบบเรียลไทม์ การตรวจจับการวางแนวรวมถึงความเป็นจริงเสมือนและข้อเสนอแนะตำแหน่งผู้ใช้ 3D ในการเล่นเกม การวิเคราะห์กิจกรรมแบบเรียลไทม์ เช่น การนับก้าวของ pedometer การตรวจจับการตกอย่างอิสระสำหรับ HDD การสำรองข้อมูล GPS ที่คำนวณไม่ทัน และอีกมากมาย

แนะนำ: