آردوینو آردوینو Arduino Uno آموزش آردوینو نمایشگر LCD پروژه های آردوینو

آموزش راه اندازی فاصله سنج SRF و نمایشگر LCD کاراکتری با آردوینو

arduino-kit-srf-lcd-distance-meter-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 


برد آردوینو Arduino


جهت تست و اجرای آموزش نیاز به یک میکروکنترلر خواهیم داشت. در این آموزش از آردوینو Arduino مدل UNO استفاده خواهیم کرد. آردوینو دارای تراشه Atmega328P است و با در اختیار داشتن پایه های کنترلی آنالوگ و دیجیتال I/O میتوان با سنسورهای مختلف ارتباط برقرار کرد. با در نظر گرفتن پروتکل ارتباطی آن ها را راه اندازی و کدنویسی کرد. محیط برنامه نویسی IDE Arduino است که نباز به دانش برنامه نویسی C++ خواهد داشت. با انتقال کد به محیط برنامه نویسی و کامپایل کد پروژه آماده اجرا خواهد بود.مراحل نصب نرم افزار آردوینو Arduino در آموزش زیر نوشته و منتشر شده است. در صورتیکه تا به حال با برد آردوینو کار نکرده اید، ابتدا آموزش زیر را مطالعه و سپس مراحل بعدی را اجرا کنید.

آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE

همچنین به صورت مستقیم میتوانید نرم افزار آردوینو را از طریق لینک زیر دانلود کنید. مراحل نصب نرم افزار دقیقا مشابه دیگر نرم افزارهاِ کامپیوتری است.

لینک دانلود نرم افزار آردوینو

آموزش ساخت فاصله سنج آلتراسونیک با آردوینو - دیجی اسپارک


سنسور فاصله سنج آلتراسونیک


سنسور آلتراسونیک SRF Ultrasonic با استفاده از امواج صوتی فاصله شی را اندازه گیری می‌کند. سنسور آلتراسونیک به واسطه یک مبدل پالس ها را ارسال و دریافت می‌کند تا اطلاعات مربوط به فاصله یک شی را اندازه گیری کرده و ارسال کند. سنسورهایی که در دسترس ما هستند تنها از یک مبدل جهت ارسال پالس و دریافت اکو Echo استفاده می‌کنند. با اندازه گیری فاصله زمانی بین دریافت و ارسال پالس آلتراسونیک فاصله تا شی مورد نظر را اندازه گیری می‌کند. از سنسورهای آلتراسونیک در طراحی ربات ها جهت تشخیص مجاورت با شی، تشخیص سطح مانند سطح آب، تشخیص موقعیت و تشخیص فاصله می‌توان استفاده کرد. جهت اندازه گیری فاصله سنسور، از فرمول خاصی استفاده می‌کند که سرعت صوت در رفت و برگشت را محاسبه کرده و با تبدیل متر بر ثانیه به واحد میکرو در سانتی متر، فاصله را نمایش می‌هد:

 

 


نمایشگر LCD کاراکتری آردوینو


نمایشگرهای ال سی دی کاراکتری، به دلیل استفاده راحت و قیمت مناسب در بین کاربران بسیار محبوب هستند. نوع ال سی دی کاراکتری بوده و در ابعاد مختلف تولید شده است. ال سی دی مورد استفاده در این آموزش ۲*۱۶ است که دارای ۱۶ ستون و ۲ سطر می‌باشد. به این معنی که قابلیت نمایش ۱۶ کاراکتر در دو خط را دارد. ال سی دی کاراکتری از چیپست موازی HD44780 بسیار محبوب استفاده می‌کند. جهت راه اندازی ال سی دی حداقل به ۶ پایه I/O نیاز داریم. ال سی دی از قابلیت بک لایت Backlight استفاده می‌کند. همچنین دارای رابط MPU چهار بیتی و یا ۸ بیتی است که نوع اتصال مشابه است. ال سی دی کاراکتری با اکثر میکروکنترلرها همخوانی داشته و قابلیت تست و راه اندازی دارد. پایه های ال سی دی LCD را بررسی خواهیم کرد:

 در آموزش زیر توضیحات کامل به همراه معرفی پایه ها منتشر شده است.

آموزش راه اندازی ۳ مدل ال سی دی کاراکتری LCD با آردوینو Arduino

نمایشگر LCD کاراکتری آردوینو - LCD 2x16 - دیجی اسپارک


کد آردوینو Arduino


یک تب جدید در نرم افزار باز کرده و تمامی صفحه را پاک کنید. سپس کد زیر را کپی پیست کرده و به نرم افزار آردوینو منتقل کنید.

 

 


اتصالات فاصله سنج آلتراسونیک


 

 اتصال پایه‌های LCD به آردوینو

  • پایه VSS را به پایه GND، پایه VCC را به ۵ ولت اتصال دهید.
  • پایه VO را به پایه GND اتصال دهید.
  •  پایه RS را به یکی از پایه های دیجیتال ( بسته به انتخاب در کدنویسی) اتصال دهید. در این آموزش از پایه شماره ۱۲ استفاده کنید.
  • پایه RW را به پایه GND اتصال دهید.
  • پایه E را به یکی از پایه های دیجیتال ( بسته به انتخاب در کدنویسی) اتصال دهید. در این آموزش از پایه شماره ۱۱ استفاده کنید.
  • d4,d5,d6,d7 : با توجه به تعریف متغیر در کد برنامه از پایه های D0 تا D7 ال سی دی به پایه های آردوینو متصل می‌شود.در این آموزش به ترتیب به پایه های ۵،۴،۳،۲  اتصال دهید. پایه D4 به پایه شماره ۵، پایه D5 به پایه شماره ۴ , پایه D6 به پایه شماره ۳ و پایه D7 را به پایه شماره ۲ اتصال دهید.

 

اتصال سنسور SRF به آردوینو

  • پایه تریگر سنسور SRF را یه پایه شماره ۹ دیجیتال آردوینو اتصال دهید.
  • پایه اکو سنسور SRF را به پایه شماره ۸ دیجیتال آردوینو اتصال دهید.
  • پایه VCC سنسور SRF را به پایه ۳٫۳ ولت آردوینو اتصال دهید.
  • پایه GND سنسور SRF را به پایه GND آردوینو اتصال دهید.

 


تحلیل کد آردوینو فاصله سنج


مرحله اول فراخوانی دو کتابخانه Ultrasonic و LiquidCrystal

نصب کتابخانه LiquidCrystall

جهت راه اندازی ال سی دی به کتابخانه آن نیاز داریم که در بخش Library آردوینو جهت نصب قرار گرفته شده است. از مسیر زیر کتابخانه را نصب کنید:

  • از منو Sketch در نرم افزار آردوینو گزینه Include Library را انتخاب کنید.
  • سپس Manage Libraries را انتخاب کنید.
  • در صفحه باز شده عبارت LiquidCrystal را سرچ کرده و کتابخانه زیر را پیدا و نصب کنید. آخرین ورژن را انتخاب کنید:

 

کتابخانه Ultrasonic

سنسورهای آلتراسونیک مدل SRF04 و SRF05 به یک روش قابل راه اندازی است و با تعریف پایه های تریگر و  اکو در متن کدنویسی و ارسال و دریافت پالس در برنامه عمل می‌کنند. هر دو سنسور بدون استفاده از کتابخانه قابل استفاده است، اما جهت راحتی و کاهش مراحل کدنویسی از کتابخانه Ultrasonic استفاده خواهیم کرد. کتابخانه در بخش Library آردوینو جهت نصب قرار گرفته شده است. از مسیر زیر کتابخانه را نصب کنید:

  • از منو Sketch در نرم افزار آردوینو گزینه Include Library را انتخاب کنید.
  • سپس Manage Libraries را انتخاب کنید.
  • در صفحه باز شده عبارت Ultrasonic را سرچ کرده و کتابخانه زیر را پیدا و نصب کنید. آخرین ورژن را انتخاب کنید:

انتخاب پایه تریگر و اکو; دو پایه به دلخواه برای تریگر و اکو انتخاب کنید. در این آموزش از پایه ۹ و ۸ دیجیتال آردوینو استفاده شده است.

انتخاب پایه های نمایشگر ال سی دی جهت اتصال به آردوینو

معرفی نوع ال سی دی

 

توابع نمایشگر LCD

با فراخوانی دستورات زیر در ابتدا نمایشگر ال سی دی پاک شده و فاصله اندازه گیری شده بر حسب سانتی متر CM بر روی ال سی دی نمایش داده می‌شود.

 


وسایل مورد نیاز


برد آردوینو Arduino UNO

سنسور فاصله سنج SRF

نمایشگر ال سی دی کاراکتری LCD 2*16

کابل فلت

 

همچنین امکان خرید کیت کامل آردوینو بر پایه سنسور فاصله سنج SRF در فروشگاه وجود دارد و از طریق لینک زیر میتوانید اقدام به خرید نمایید:

کیت آردوینو بر پایه فاصله سنج آلتراسونیک SRF کیت فاصله سنج

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۶ دیدگاه

  • sسلام من مدار را کامل می بندم و هیچ اروری هنگام اپلود رخ نمی دهد ولی مدار کار نمی کند و ال سی دی تمام کاراکتر هایش روشن می شود و خاموش نمی شود

    • با سلام
      در خصوص رفع عیب لطفا نوع ال سی دی و روش اتصال را بفرمایید تا بررسی شود.

  • باسلام من مدار رو میبندم و ال سی دی هم روشن میشه اما مدار کار نمیکنه
    البته اینم بگم که بجای srfo4 از srf05 استفاده کردم ممکنه مشکل از اینجا باشه
    نوع ال سی دی هم کاراکتری ۲*۱۶

  • سلام
    سوالی داشتم درباره ماژول های رطوبت خاک:
    خواستم تفاوت بین ماژول خازنی و آنالوگ رطوبت خاک رو بپرسم!
    و اینکه بهترین ماژول رطوبت خاک که دقیق باشه و ضد آب باشه و اطلاعات سریعی و دقیقی بده کدام ماژول هستش!

    • با سلام
      در این خصوص عملکرد هر دو سنسور به صورت آنالوگ است. در صورت استفاده مداوم مدل خازنی پیشنهاد می‌شود.

  • سلام ممنون از راهنماییاتون .من مدار کامل و بر اساس توضیحات متصل کردم lcd دوبار روشن و خاموش شد و دیگه کار نکرد چندین بار اتصالات چک کردم اما روشن نمیشه ممکنه که lcd یا آردیونو سوخته باشه و چطور چک کنم با تشکر

    • با سلام
      در این خصوص اتصالات را بررسی کنید. از مقاومت ۴٫۷ کیلو برای پایه V0 استفاده کرده و از سالم بودن کابل ها اطمینان حاصل فرمایید. بررسی و نتیجه را از همین طریق اعلام کنید.

  • سلام خسته نباشید وقتی برنامه lcd رو روی برنامه کپی میکنیم Arduino: 1.8.13 (Windows 7), Board: “Arduino Uno”

    sketch_oct16:1:1: error: ‘Ultrasonic’ does not name a type

    Ultrasonic ultrasonic(9,8); // پایه تریگر به پایه شماره ۹ آردوینو و پایه اکو به پایه شماره ۸ آردوینو متصل شده است.

    ^~~~~~~~~~

    sketch_oct16:2:1: error: ‘LiquidCrystal’ does not name a type

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // پایه آردینو متصل به ال سی دی

    ^~~~~~~~~~~~~

    C:\Users\click\Desktop\sketch_oct16a\sketch_oct16\sketch_oct16.ino: In function ‘void setup()’:

    sketch_oct16:4:1: error: ‘lcd’ was not declared in this scope

    lcd.begin(16, 2); // نوع ال سی دی ۱۶ در ۲ است.

    ^~~

    C:\Users\click\Desktop\sketch_oct16a\sketch_oct16\sketch_oct16.ino: At global scope:

    sketch_oct16:7:2: error: ‘lcd’ does not name a type

    lcd.clear(); // توسط این دستور به صورت پیشفرض صفحه نمایش پاک میشود

    ^~~

    sketch_oct16:9:3: error: ‘lcd’ does not name a type

    lcd.setCursor(0, 0); // انتخاب مکان نما

    ^~~

    sketch_oct16:11:1: error: ‘lcd’ does not name a type

    lcd.print(ultrasonic.Ranging(CM)); // فرمول محاسبه سانتی متر

    ^~~

    sketch_oct16:13:1: error: ‘lcd’ does not name a type

    lcd.print(“CM”); // نمایش در ال سی دی به صورت CM

    ^~~

    exit status 1

    ‘Ultrasonic’ does not name a type
    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    این ارور رو میده

    • با سلام
      کدها به درستی کپی نشده است. مجدد کد را انتقال و کتابخانه ultrasonic را نصب کنید.

  • سلام خسته نباشیدوقتی برنامه lcdرو کپی میکنم خط اول (Ultrasonic ultrasonic(9,8
    ارور میده ممنون میشم راهنمایی کنید

  • سلام خسته نباشید شرمنده این سوال رو دوباره میپرسم وقتی برنامه رو میدم
    Ultrasonic ultrasonic(9,8); // پایه تریگر به پایه شماره ۹ آردوینو و پایه اکو به پایه شماره ۸ آردوینو متصل شده است.
    این خط ارور میده کتابخانه هم دانلود میکنم باز میگه ultrasonicرو باز تعریف کنید فقط تو کل برنامه نویسی همین خط مشکل داره کمک کنید ممنون میشم