شِفر (کود) جستجو

درس ۲۰/۳۱: نمایش فاصله اولتراسونیک روی LCD1602

درس ۲۰/۳۱: نمایش فاصله اولتراسونیک روی LCD1602

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

سانفاندر 20-LCD1602-اولتراسونیک

این راهاندازی عملی میتواند در انواع کاربردهای دنیای واقعی استفاده شود، از جمله:

  • ایجاد یک دستیار پارک هوشمند که به شما در سنجش فاصله تا دیوار یا وسیله نقلیه دیگر کمک میکند.
  • ساخت یک مانیتور ساده سطح مایع برای مخزن با اندازهگیری فاصله از بالا تا سطح.
  • توسعه یک دستگاه توزیعکننده خودکار ضدعفونیکننده دست یا سطل زباله بدون لمس که هنگام نزدیک شدن یک جسم باز میشود.
  • ساخت یک دزدگیر امنیتی پایه که هنگام ورود شخصی به یک منطقه خاص فعال میشود.

سختافزار و قطعات

برای ساخت این پروژه، به قطعات زیر نیاز دارید:

  • برد آردوینو (به عنوان مثال، Uno)
  • نمایشگر LCD1602 با ماجیول رابط I2C
  • حساس(حس کننده) فاصلهسنج اولتراسونیک HC-SR04
  • سیمهای جامپر
  • بردبورد (اختیاری، برای اتصالات آسانتر)

آشنایی با LCD1602 و I2C

LCD1602 یک نمایشگر محبوب است که قادر به نمایش 16 خصیصه در هر خط در دو خط است. ماجیول "I2C" در پشت آن یک مزیت قابل توجه است، زیرا تعداد پینهای مورد نیاز برای کنترل نمایشگر را از 6 یا بیشتر به فقط 2 پایه برای ارتباط (SDA و SCL) و 2 پایه برای برق (VCC و GND) کاهش میدهد. این سادهسازی سیمکشی را بسیار تمیزتر میکند و پینهای دیجیتال ارزشمند آردوینو شما را برای سنسورهای دیگر، مانند حساس(حس کننده) اولتراسونیک استفادهشده در این پروژه، آزاد میکند. (در ویدیو در 01:30)

ماجیول I2C همچنین دارای یک پتانسیومتر کوچک برای تنظیم کنتراست نمایشگر است. اگر نمایشگر را روشن کردید و چیزی ندیدید، سعی کنید این پیچ را بچرخانید تا متن قابل مشاهده شود. (در ویدیو در 02:47)

راهنمای سیمکشی

LCD1602_wiring_ultrasonic_bb

اتصال قطعات ساده است. ماجیول 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()، شِفر (کود) مراحل زیر را انجام میدهد:

  1. از تابع sonar.ping_cm() برای اندازه‌گیری فاصله و ذخیره آن در متغیر distance استفاده می‌کند.
  2. LCD را پاک می‌کند و متن «Robojax.com» را در خط اول چاپ می‌کند.
  3. سپس مکان‌نما را به خط دوم می‌برد و «Distance: » را چاپ می‌کند.
  4. در نهایت، مکان‌نما را به موقعیت ۱۰ در خط دوم می‌برد تا مقدار اندازه‌گیری‌شده distance و سپس «cm» را چاپ کند.

دستور delay(200) در انتهای حلقه کنترل می‌کند که حساس(حس کننده) با چه فرکانسی خوانش جدید انجام دهد و نمایشگر را به‌روزرسانی کند.

نمایش شِفر (کود)

پس از آپلود شِفر (کود) روی آردوینو، LCD روشن می‌شود و شروع به نمایش فاصله می‌کند. می‌توانید با نزدیک‌کردن دست یا یک شیء به حساس(حس کننده) اولتراسونیک و دورکردن آن، تنظیمات را آزمایش کنید. عدد روی صفحه باید در زمان واقعی به‌روزرسانی شود و فاصله را بر حسب سانتی‌متر نشان دهد. (در ویدیو در زمان ۳۸:۰۷)

پروژه‌های مرتبط از این ویدیو

فصل‌ها

  • [۰۰:۰۰] مقدمه‌ای بر LCD1602 و نمای کلی پروژه
  • [۰۱:۳۰] توضیح سخت‌افزار LCD1602 و ماجیول I2C
  • [۰۳:۱۴] پایه‌های LCD و تنظیم آدرس I2C
  • [۰۵:۲۸] نمودار سیم‌کشی برای LCD1602
  • [۰۶:۱۶] نصب کتابخانه موردنیاز LCD
  • [۰۷:۲۴] شِفر (کود) پایه برای چاپ متن روی LCD
  • [۰۸:۱۱] یافتن آدرس I2C صفحه LCD شما
  • [۱۱:۱۰] مثال‌های LCD: مکان‌نمای چشمک‌زن و کاراکترهای سفارشی
  • [۱۸:۵۱] مثال LCD: نمایش سریال و متن متحرک
  • [۲۴:۳۶] نمایش دما و رطوبت DHT11 روی LCD
  • [۳۳:۰۰] نمایش ولتاژ از پتانسیومتر روی LCD
  • [۳۵:۵۶] ترکیب شِفر (کود) حساس(حس کننده) اولتراسونیک با LCD
  • [۳۸:۰۷] نمایش فاصله اولتراسونیک

تصاویر

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
زبان: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

فایل‌ها📁

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

راهنمای کاربر