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


تا پایان این آموزش، شما یک تنظیم کاری خواهید داشت که زاویههای 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 استفاده کنید.
- برای پایداری، استفاده از خازنهای دکوپلینگ در نزدیکی پایههای تغذیه را در نظر بگیرید.
- برای جلوگیری از مشکلات ارتباطی، اتصالات سیمکشی را بررسی کنید.
دستورالعملهای سیمکشی

برای سیمکشی 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).
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازونPurchase LCD1602-I2C from Amazonamzn.to
-
آمازونPurchase MPU-6050 from Amazonamzn.to
-
ایبیPurchase LCD1602-I2C from eBayebay.us
-
علیاکسپرسPurchase 10pcs LCD1602-I2C from AliExpresss.click.aliexpress.com
منابع و مراجع
-
خارجیوبسایت تولیدکنندهinvensense.com
فایلها📁
کتابخانههای آردوینو (zip)
-
کتابخانه آردوینو برای LCD1602 از Robojax
robojax-LCD1602-I2C-library-master.zip0.01 MB -
Arduino library for MPU9250
application/zip3.38 MB
فایل Fritzing
-
LCD LCD1602-I2C module with 4 wires
application/zip0.01 MB -
MPU-6050 Board GY-521
application/zip0.01 MB