- ส่วนประกอบที่จำเป็น:
- MPU6050 Gyro เซนเซอร์:
- คำอธิบาย:
- แผนภาพวงจรและคำอธิบาย:
- คำอธิบายการเขียนโปรแกรม
เซ็นเซอร์MPU6050มีฟังก์ชั่นมากมายเหนือชิปตัวเดียว ประกอบด้วยมาตรวัดความเร่ง MEMS ไจโร MEMS และเซ็นเซอร์อุณหภูมิ โมดูลนี้มีความแม่นยำมากในขณะที่แปลงค่าอนาล็อกเป็นดิจิทัลเนื่องจากมีฮาร์ดแวร์ตัวแปลงอนาล็อกเป็นดิจิตอล 16 บิตสำหรับแต่ละช่องสัญญาณ โมดูลนี้สามารถจับช่อง x, y และ z ได้ในเวลาเดียวกัน มีอินเทอร์เฟซ I2C เพื่อสื่อสารกับโฮสต์คอนโทรลเลอร์ นี้โมดูล MPU6050 เป็นชิปที่มีขนาดกะทัดรัดมีทั้ง accelerometer และไจโร นี่เป็นอุปกรณ์ที่มีประโยชน์มากสำหรับแอพพลิเคชั่นมากมายเช่นโดรนหุ่นยนต์เซ็นเซอร์การเคลื่อนไหว มันจะเรียกว่าหมุนหรือทริปเปิแกน accelerometer
วันนี้ในบทความนี้เราจะเชื่อมต่อ MPU6050 Gyroscope นี้กับ Arduinoและแสดงค่าบน LCD 16x2
ส่วนประกอบที่จำเป็น:
- Arduino Uno
- MPU-6050
- 10K พอต
- สายจัมเปอร์
- เขียงหั่นขนม
- สาย USB
- แหล่งจ่ายไฟ
MPU6050 Gyro เซนเซอร์:
MPU-6050เป็นไจโร 8 แกน 6 แกนและมาตรความเร่งในชิปตัวเดียว โมดูลนี้ทำงานบนการสื่อสารแบบอนุกรม I2C ตามค่าเริ่มต้น แต่สามารถกำหนดค่าสำหรับอินเทอร์เฟซ SPI ได้โดยกำหนดค่ารีจิสเตอร์ สำหรับ I2C สิ่งนี้มีเส้น SDA และ SCL พินเกือบทั้งหมดเป็นแบบมัลติฟังก์ชั่น แต่ที่นี่เรากำลังดำเนินการกับพินโหมด I2C เท่านั้น
การกำหนดค่าพิน:
Vcc: -พินนี้ใช้สำหรับเปิดโมดูล MPU6050 ที่เกี่ยวกับกราวด์
GND: -นี่คือพินกราวด์
SDA: -พิน SDA ใช้สำหรับข้อมูลระหว่างคอนโทรลเลอร์และโมดูล mpu6050
SCL: - ใช้พิน SCL สำหรับอินพุตนาฬิกา
XDA: -นี่คือสายข้อมูลเซ็นเซอร์ I2C SDA สำหรับการกำหนดค่าและการอ่านจากเซ็นเซอร์ภายนอก ((อุปกรณ์เสริม) ไม่ได้ใช้ในกรณีของเรา)
XCL: -นี่คือสายนาฬิกาของเซ็นเซอร์ I2C SCL สำหรับการกำหนดค่าและการอ่านจากเซ็นเซอร์ภายนอก ((อุปกรณ์เสริม) ไม่ได้ใช้ในกรณีของเรา)
ADO: - I2C Slave Address LSB (ไม่สามารถใช้ได้ในกรณีของเรา)
INT: -พินขัดจังหวะสำหรับบ่งชี้ว่าข้อมูลพร้อม
คำอธิบาย:
ในบทความนี้เรากำลังแสดงการอ่านค่าอุณหภูมิไจโรและมาตรความเร่งบน LCDโดยใช้ MPU6050 กับ Arduino โมดูลนี้ให้ค่าแถวและค่าปกติในเอาต์พุต แต่ค่าแถวไม่คงที่ดังนั้นเราจึงแสดงค่าที่เป็นมาตรฐานบน LCD หากคุณต้องการแค่ค่า accelerometer คุณสามารถใช้ Accelerometer ADXL335 กับ Arduino ได้
ในโครงการนี้เราได้แสดงค่าอุณหภูมิบน LCD เป็นครั้งแรกและหลังจาก 10 วินาทีเราจะแสดงค่าไจโรและหลังจาก 10 วินาทีเราจะมีการอ่านค่าความเร่งตามที่แสดงในภาพด้านล่าง:
แผนภาพวงจรและคำอธิบาย:
แผนภาพวงจรสำหรับการเชื่อมต่อ MPU6050 กับ Arduinoนั้นง่ายมากที่นี่เราใช้ LCD และ MPU6050 และที่นี่เราได้ใช้แหล่งจ่ายไฟ USB ของแล็ปท็อป หม้อ 10k ใช้สำหรับควบคุมความสว่างของ LCD ในการเชื่อมต่อกับ MPU6050 เราได้ทำการเชื่อมต่อ 5 ครั้งซึ่งเราได้เชื่อมต่อแหล่งจ่ายไฟ 3.3v และกราวด์ของ MPU6050 กับ 3.3v และกราวด์ของ Arduino หมุด SCL และ SDA ของ MPU6050 เชื่อมต่อกับขา A4 และ A5 ของ Arduino และขา INT ของ MPU6050 เชื่อมต่อกับอินเตอร์รัปต์ 0 ของ Arduino (D2) RS, RW และ EN ของ LCD เชื่อมต่อโดยตรงกับ 8, gnd และ 9 ของ Arduino พินข้อมูลเชื่อมต่อโดยตรงกับพินดิจิทัลหมายเลข 10, 11, 12 และ 13
คำอธิบายการเขียนโปรแกรม
ส่วนการเขียนโปรแกรมเป็นเรื่องง่ายสำหรับโครงการนี้ ที่นี่เราได้ใช้ไลบรารี MPU6050 นี้เพื่อเชื่อมต่อกับ Arduino ก่อนอื่นเราต้องดาวน์โหลดไลบรารี MPU6050 จาก GitHub และติดตั้งใน Arduino IDE
หลังจากนั้นเราจะพบโค้ดตัวอย่างในตัวอย่าง ผู้ใช้สามารถทดสอบโค้ดนั้นได้โดยอัพโหลดไปยัง Arduino โดยตรงและสามารถดูค่าผ่านมอนิเตอร์แบบอนุกรม หรือผู้ใช้อาจใช้รหัสของเราที่ให้ไว้ในตอนท้ายของบทความเพื่อแสดงค่าบนจอ LCD และจอภาพอนุกรมเช่นกัน
ในการเขียนโค้ดเราได้รวมไลบรารีที่จำเป็นไว้เช่น MPU6050 และ LCD
# รวม
ในฟังก์ชั่น การตั้งค่า เราเริ่มต้นอุปกรณ์ทั้งสองและเขียนข้อความต้อนรับบนจอ LCD
การตั้งค่าเป็นโมฆะ () {lcd.begin (16,2); lcd.createChar (0, องศา); Serial.begin (9600); Serial.println ("เริ่มต้น MPU6050"); ในขณะที่ (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("ไม่พบอุปกรณ์"); Serial.println ("ไม่พบเซ็นเซอร์ MPU6050 ที่ถูกต้องตรวจสอบสายไฟ!"); ล่าช้า (500); } นับ = 0; mpu.calibrateGyro (); mpu.setThreshold (3); ในฟังก์ชัน ลูป เราได้เรียกใช้ฟังก์ชันสามอย่างในทุกๆ 10 วินาทีเพื่อแสดงการอ่านอุณหภูมิไจโรและมาตรวัดความเร่งบน LCD ฟังก์ชั่นทั้งสามนี้ ได้แก่ tempShow, gyroShow และ accelShow คุณสามารถตรวจสอบฟังก์ชั่นเหล่านั้นในรหัส Arduino ที่สมบูรณ์ที่ระบุไว้ในตอนท้ายของบทความนี้:
ห่วงเป็นโมฆะ () {lcd.clear (); lcd.print ("อุณหภูมิ"); st ยาว = มิลลิวินาที (); Serial.println ("อุณหภูมิ"); ในขณะที่ (มิลลิวินาที ()
MPU6050 ไจโรและมาตรความเร่งใช้เพื่อตรวจจับตำแหน่งและการวางแนวของอุปกรณ์ใด ๆ Gyro ใช้แรงโน้มถ่วงของโลกเพื่อกำหนดตำแหน่งแกน x, y และ z และเครื่องวัดความเร่งจะตรวจจับตามอัตราการเปลี่ยนแปลงของการเคลื่อนที่ เราใช้ accelerometer กับ Arduino แล้วในหลายโครงการของเราเช่น:
- หุ่นยนต์ควบคุมด้วยท่าทางมือแบบ Accelerometer
- ระบบแจ้งเตือนอุบัติเหตุรถยนต์ที่ใช้ Arduino
- เครื่องตรวจจับแผ่นดินไหวโดยใช้ Arduino