شِفر (کود) آردوینو برای MPU-6050 با نمایشگر LCD1602 از نوع I2C

شِفر (کود) آردوینو برای MPU-6050 با نمایشگر LCD1602 از نوع I2C

در این آموزش یاد می‌گیریم چگونه شتاب‌سنج و ژیروسکوپ MPU-6050 را از طریق ارتباط I2C به نمایشگر LCD1602 متصل کنیم. MPU-6050 اندازه‌گیری‌های زاویه‌ای را فراهم می‌کند که روی LCD نمایش داده خواهند شد. این پروژه به شما کمک می‌کند زاویه‌های MPU-6050 را به‌صورت بلادرنگ مشاهده کنید و درک خود از داده‌های حساس(حس کننده) و نحوهٔ ارتباط با نمایشگر را افزایش دهید.

LCD1602-I2C display module with 4 wires

تا پایان این آموزش، شما یک تنظیم کاری خواهید داشت که زاویه‌های X، Y و Z را روی صفحه‌نمایش LCD نمایش می‌دهد. این روش بسیار خوبی برای کسب تجربه عملی با داده‌های حساس(حس کننده) و فناوری نمایش در پروژه‌های آردوینو است. برای توضیحات بیشتر، حتماً ویدیو را در زمان 00:00 ببینید.

سخت‌افزار به زبان ساده

اجزای اصلی این پروژه حساس(حس کننده) MPU-6050 و ماجیول نمایشگر LCD1602 هستند. MPU-6050 یک حساس(حس کننده) چندمنظوره است که یک شتاب‌سنج سه‌محوره و یک ژیروسکوپ سه‌محوره را ترکیب می‌کند و اندازه‌گیری زاویه را به‌صورت لحظه‌ای فراهم می‌سازد. این دستگاه از طریق I2C ارتباط برقرار می‌کند که امکان یکپارچه‌سازی بدون مشکل با آردوینو را فراهم می‌سازد.

نمایشگر LCD1602 نیز از پروتکل I2C استفاده می‌کند که سیم‌کشی را ساده کرده و تعداد پایه‌های مورد نیاز برای ارتباط را کاهش می‌دهد. رابط I2C اجازه می‌دهد چندین دستگاه روی همان باس متصل شوند که آن را برای پروژه‌هایی با چندین حساس(حس کننده) یا قطعه کارآمد می‌سازد.

جزئیات دیتاشیت

تولیدکنندهاینون‌سنس
شماره قطعهMPU-6050
ولتاژ منطق/ورودی-خروجی3.3 V / 5 V
ولتاژ تغذیه3.3 V تا 5 V
نرخ داده خروجی1 kHz (حداکثر)
محدوده ژیروسکوپ±250، ±500، ±1000، ±2000 درجه بر ثانیه
دامنه شتاب‌سنج±2g، ±4g، ±8g، ±16g
بستهبسته بدون پایه چهارگوش (QFN)
یادداشت‌ها / انواعشامل پردازشگر حرکت دیجیتال (DMP)

  • نشانی I2C را بررسی کنید (پیش‌فرض 0x68).
  • اطمینان حاصل کنید که ولتاژ منبع تغذیه مناسب است (۳٫۳ ولت یا ۵ ولت).
  • اگر از قبل روی برد نصب نشده‌اند، از مقاومت‌های pull-up برای خطوط SDA و SCL استفاده کنید.
  • برای پایداری، استفاده از خازن‌های دکوپلینگ در نزدیکی پایه‌های تغذیه را در نظر بگیرید.
  • برای جلوگیری از مشکلات ارتباطی، اتصالات سیم‌کشی را بررسی کنید.

دستورالعمل‌های سیم‌کشی

Arduino wiring for MPU-6050 with LCD

برای سیم‌کشی MPU-6050 و نمایشگر LCD1602 به آردوینو خود، اتصالات زیر را دنبال کنید:

  • متصل کنیدVCCپایه MPU-6050 به5Vپایه روی آردوینو.
  • متصل کنیدGNDپایه MPU-6050 بهGNDپایه روی آردوینو.
  • وصل کنیدSDAپایهِ MPU-6050 بهA4پایه روی آردوینو.
  • متصل کنیدSCLپایهِ MPU-6050 بهA5پایه روی آردوینو.
  • برای نمایشگر LCD1602، آن را وصل کنیدVCCسنجاق کردن به5Vروی آردوینو.
  • متصل کنیدGNDپایه LCD1602 بهGNDپایه روی آردوینو.
  • وصل کنیدSDAپایه LCD1602 به همانA4پایه مورد استفاده برای MPU-6050.
  • متصل کنیدSCLپایه LCD1602 به همانA5پایه مورد استفاده برای MPU-6050.

حتماً اتصالات خود را دوباره بررسی کنید، زیرا سیم‌کشی نادرست ممکن است منجر به خرابی دستگاه یا عدم برقراری ارتباط صحیح شود.

نمونه‌های شِفر (کود) و راهنمای گام‌به‌گام

شِفر (کود) با وارد کردن کتابخانه‌های لازم برای MPU-6050 و نمایشگر LCD آغاز می‌شود. بخش زیر نشان می‌دهد چگونه MPU-6050 را مقداردهی اولیه کنیم:

MPU6050 mpu6050(Wire);

در اینجا، ما نمونه‌سازی می‌کنیمMPU6050شیء، که برای خواندن داده‌ها از حساس(حس کننده) استفاده خواهد شد. سپس باید دستگاه را درsetup()تابع:

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true);
  lcd.begin();
  lcd.backlight();   
}

این شِفر (کود) ارتباط سریال، باس I2C و حساس(حس کننده) MPU-6050 را مقداردهی اولیه می‌کند. همچنین نمایشگر LCD را مقداردهی اولیه کرده و نور پس‌زمینه آن را روشن می‌کند. حلقه شامل منطق به‌روزرسانی و نمایش زوایا است:

void loop() {
  mpu6050.update();
  lcd.clear();
  lcdDisplay(0, 0, "X:", 2, 0, mpu6050.getAngleX());
  lcdDisplay(13, 0, "Y:", 0, 1, mpu6050.getAngleY());
  lcdDisplay(7, 1, "Z:", 9, 1, mpu6050.getAngleZ());
  delay(100);
}

در این حلقه، زاویه‌های X، Y و Z به‌روزرسانی شده و روی ال‌سی‌دی نمایش داده می‌شوند. تابعlcdDisplay()برای قالب‌بندی صحیح خروجی استفاده می‌شود. می‌توانید شِفر (کود) کامل را که در پایین مقاله بارگذاری شده است پیدا کنید.

نمایش / آنچه باید انتظار داشته باشید

وقتی راه‌اندازی کامل شد و شِفر (کود) آپلود شد، باید زاویه‌های X، Y و Z را به‌صورت لحظه‌ای روی نمایشگر LCD ببینید. اگر همه چیز به‌درستی سیم‌کشی شده باشد، نمایشگر هر 100 میلی‌ثانیه یک‌بار تازه می‌شود و جهت فعلی MPU-6050 را نشان می‌دهد.

اشتباهات رایج شامل اطمینان از صحیح بودن اتصالات I2C و پایدار بودن منبع تغذیه است. اگر MPU-6050 به درستی راه‌اندازی نشود، ممکن است روی LCD داده‌های نادرست یا هیچ داده‌ای مشاهده کنید (در ویدئو در 01:15).

تصاویر

LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
MPU-6050-module-1
MPU-6050-module-1
MPU-6050-module-2
MPU-6050-module-2
MPU-6050-module-schematic
MPU-6050-module-schematic
MPU-6050-module-1
MPU-6050-module-1
Arduino wiring for MPU-6050 with LCD
Arduino wiring for MPU-6050 with LCD
118-Arduino code for MPU-6050 accelerometer and gyroscope sensor (all data)
زبان: C++
کپی شد!

مواردی که ممکن است به آن‌ها نیاز داشته باشید

منابع و مراجع

فایل‌ها📁

کتابخانه‌های آردوینو (zip)

فایل Fritzing