درس ۲۰/۳۱: نمایش فاصله اولتراسونیک روی LCD1602
این پروژه نحوه ترکیب حساس(حس کننده) فاصلهسنج اولتراسونیک HC-SR04 با نمایشگر LCD1602 مجهز به I2C را برای ایجاد یک سیستم اندازهگیری فاصله در زمان واقعی نشان میدهد. در پایان این راهنما، دستگاهی خواهید داشت که به طور مداوم فاصله تا یک جسم را بر حسب سانتیمتر اندازهگیری و نمایش میدهد. این یک مهارت پایهای در الکترونیک آردوینو است، زیرا ورودی حساس(حس کننده) را با خروجی بصری ترکیب میکند.
این راهاندازی عملی میتواند در انواع کاربردهای دنیای واقعی استفاده شود، از جمله:
- ایجاد یک دستیار پارک هوشمند که به شما در سنجش فاصله تا دیوار یا وسیله نقلیه دیگر کمک میکند.
- ساخت یک مانیتور ساده سطح مایع برای مخزن با اندازهگیری فاصله از بالا تا سطح.
- توسعه یک دستگاه توزیعکننده خودکار ضدعفونیکننده دست یا سطل زباله بدون لمس که هنگام نزدیک شدن یک جسم باز میشود.
- ساخت یک دزدگیر امنیتی پایه که هنگام ورود شخصی به یک منطقه خاص فعال میشود.
سختافزار و قطعات
برای ساخت این پروژه، به قطعات زیر نیاز دارید:
- برد آردوینو (به عنوان مثال، Uno)
- نمایشگر LCD1602 با ماجیول رابط I2C
- حساس(حس کننده) فاصلهسنج اولتراسونیک HC-SR04
- سیمهای جامپر
- بردبورد (اختیاری، برای اتصالات آسانتر)
آشنایی با LCD1602 و I2C
LCD1602 یک نمایشگر محبوب است که قادر به نمایش 16 خصیصه در هر خط در دو خط است. ماجیول "I2C" در پشت آن یک مزیت قابل توجه است، زیرا تعداد پینهای مورد نیاز برای کنترل نمایشگر را از 6 یا بیشتر به فقط 2 پایه برای ارتباط (SDA و SCL) و 2 پایه برای برق (VCC و GND) کاهش میدهد. این سادهسازی سیمکشی را بسیار تمیزتر میکند و پینهای دیجیتال ارزشمند آردوینو شما را برای سنسورهای دیگر، مانند حساس(حس کننده) اولتراسونیک استفادهشده در این پروژه، آزاد میکند. (در ویدیو در 01:30)
ماجیول I2C همچنین دارای یک پتانسیومتر کوچک برای تنظیم کنتراست نمایشگر است. اگر نمایشگر را روشن کردید و چیزی ندیدید، سعی کنید این پیچ را بچرخانید تا متن قابل مشاهده شود. (در ویدیو در 02:47)
راهنمای سیمکشی
اتصال قطعات ساده است. ماجیول I2C نمایشگر LCD دارای چهار پایه است که باید به آردوینو متصل شوند. برای حساس(حس کننده) اولتراسونیک، آن نیز چهار پایه دارد.
در اینجا تفکیک اتصالات آمده است:
ماجیول I2C LCD1602 به آردوینو:
- GND به GND آردوینو
- VCC به 5V آردوینو
- SDA به A4 آردوینو
- SCL به A5 آردوینو
حساس(حس کننده) اولتراسونیک HC-SR04 به آردوینو:
- VCC به 5V آردوینو
- Trig به پایه دیجیتال 12 آردوینو
- Echo به پایه دیجیتال 11 آردوینو
- GND به GND آردوینو
نمودار سیمکشی این پروژه در ویدیو ارجاع داده شده است.
نصب کتابخانههای مورد نیاز
این پروژه به دو کتابخانه حیاتی متکی است. اولین مورد، LiquidCrystal_I2C، برای کنترل LCD مورد نیاز است و به طور پیشفرض با IDE آردوینو ارائه نمیشود. میتوانید آن را از واصل ارائه شده در توضیحات ویدیو یا از وبسایت Robojax دانلود کنید. (در ویدیو در 06:16)
دومین کتابخانه، NewPing، برای ارتباط با حساس(حس کننده) اولتراسونیک استفاده میشود. این کتابخانه فرآیند ارسال پینگ و خواندن زمان اکو را ساده میکند. هر دو کتابخانه را میتوان از طریق مدیر کتابخانه IDE آردوینو با رفتن به Sketch -> Include Library -> Manage Libraries و جستجوی نام آنها نصب کرد.
توضیح شِفر (کود)
این اسکچ عملکرد LCD و حساس(حس کننده) اولتراسونیک را ترکیب میکند. شِفر (کود) به گونهای ساختار یافته است که به راحتی برای تنظیمات خاص شما قابل پیکربندی باشد.
در بالای شِفر (کود)، متغیرهای کلیدی را خواهید یافت که ممکن است لازم باشد آنها را تنظیم کنید:
// آدرس LCD را برای نمایشگر 16 کاراکتری و 2 خطی روی 0x27 تنظیم کنید
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
#define TRIGGER_PIN 12 // پایه آردوینو متصل به پایه تریگر حساس(حس کننده) اولتراسونیک.
#define ECHO_PIN 11 // پایه آردوینو متصل به پایه اکو حساس(حس کننده) اولتراسونیک.
#define MAX_DISTANCE 190 // حداکثر فاصلهای که میخواهیم پینگ بزنیم (بر حسب سانتیمتر).
- آدرس LCD (0x27): این آدرس I2C ماجیول LCD شما است. اکثر ماژولها از
0x27استفاده میکنند، اما برخی ممکن است از0x3Fاستفاده کنند. اگر نمایشگر شما چیزی نشان نمیدهد، ممکن است لازم باشد یک اسکچ اسکنر I2C را اجرا کنید تا آدرس صحیح را پیدا کرده و این مقدار را بهروزرسانی کنید. (در ویدیو در 08:11) - TRIGGER_PIN و ECHO_PIN: اینها پینهای دیجیتال آردوینو متصل به پینهای Trig و Echo حساس(حس کننده) اولتراسونیک را تعریف میکنند. اگر از پینهای مختلفی استفاده میکنید، این تعاریف را تغییر دهید.
- MAX_DISTANCE: این حداکثر فاصله را بر حسب سانتیمتر تنظیم میکند که حساس(حس کننده) اندازهگیری خواهد کرد. HC-SR04 میتواند تا 400-500 سانتیمتر را اندازهگیری کند، اما تنظیم مقدار کمتر میتواند دقت و قابلیت اطمینان قرائتها را بهبود بخشد، به ویژه برای فواصل کوتاهتر.
در تابع loop()، شِفر (کود) مراحل زیر را انجام میدهد:
- از تابع
sonar.ping_cm()برای اندازهگیری فاصله و ذخیره آن در متغیرdistanceاستفاده میکند. - LCD را پاک میکند و متن «Robojax.com» را در خط اول چاپ میکند.
- سپس مکاننما را به خط دوم میبرد و «Distance: » را چاپ میکند.
- در نهایت، مکاننما را به موقعیت ۱۰ در خط دوم میبرد تا مقدار اندازهگیریشده
distanceو سپس «cm» را چاپ کند.
دستور delay(200) در انتهای حلقه کنترل میکند که حساس(حس کننده) با چه فرکانسی خوانش جدید انجام دهد و نمایشگر را بهروزرسانی کند.
نمایش شِفر (کود)
پس از آپلود شِفر (کود) روی آردوینو، LCD روشن میشود و شروع به نمایش فاصله میکند. میتوانید با نزدیککردن دست یا یک شیء به حساس(حس کننده) اولتراسونیک و دورکردن آن، تنظیمات را آزمایش کنید. عدد روی صفحه باید در زمان واقعی بهروزرسانی شود و فاصله را بر حسب سانتیمتر نشان دهد. (در ویدیو در زمان ۳۸:۰۷)
پروژههای مرتبط از این ویدیو
- درس ۲۰/۳۱: استفاده از LCD1602 با آردوینو برای نمایش متن | Robojax
- درس ۲۰/۳۱: نمایش دما و رطوبت از DHT11 روی صفحه LCD
- درس ۲۰/۳۱: نمایش ولتاژ روی LCD1602
فصلها
- [۰۰:۰۰] مقدمهای بر LCD1602 و نمای کلی پروژه
- [۰۱:۳۰] توضیح سختافزار LCD1602 و ماجیول I2C
- [۰۳:۱۴] پایههای LCD و تنظیم آدرس I2C
- [۰۵:۲۸] نمودار سیمکشی برای LCD1602
- [۰۶:۱۶] نصب کتابخانه موردنیاز LCD
- [۰۷:۲۴] شِفر (کود) پایه برای چاپ متن روی LCD
- [۰۸:۱۱] یافتن آدرس I2C صفحه LCD شما
- [۱۱:۱۰] مثالهای LCD: مکاننمای چشمکزن و کاراکترهای سفارشی
- [۱۸:۵۱] مثال LCD: نمایش سریال و متن متحرک
- [۲۴:۳۶] نمایش دما و رطوبت DHT11 روی LCD
- [۳۳:۰۰] نمایش ولتاژ از پتانسیومتر روی LCD
- [۳۵:۵۶] ترکیب شِفر (کود) حساس(حس کننده) اولتراسونیک با LCD
- [۳۸:۰۷] نمایش فاصله اولتراسونیک
This code has not been parsed yet. Please return to the admin panel to parse it.
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازونSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
آمازون
-
آمازون
-
آمازون
-
آمازون
منابع و مراجع
-
مستنداتمستندات برای کیت یادگیری ۳ در ۱ اینترنت اشیاء/ماشین هوشمند/سانفاندترdocs.sunfounder.com
-
خارجیکیت آموزشی هوشمند ۳ در ۱ ماشین سانفاندری را خریداری کنیدsunfounder.com
فایلها📁
کتابخانههای آردوینو (zip)
-
شِفر (کود) منبع کیت یادگیری خودرو هوشمند ۳ در ۱ سانفاندرز
3in1-kit-main-v2.zip12.80 MB
راهنمای کاربر
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB