شیلد ال سی دی آردوینو بهترین انتخاب برای کاهش سیم کشی در اتصالات پروژه های آردوینو است. در این آموزش دیتای سنسور بر روی نمایشگر نمایش داده میشود. در ادامه با مرجع تخصصی الکترونیک به زبان فارسی، دیجی اسپارک همراه باشید.
معرفی LCD KEYPAD Shiled آردوینو
این شیلد یکی از معروف ترین شیلدهایی که تا به حال برای آردوینو Arduino عرضه شده. در این شیلد یک عدد LCD کاراکتری ۲*۱۶ به همراه ۶ عدد تاچسوییچ تعبیه شده . پینهای شماره ۴ ، ۵ ، ۶ ، ۷ ، ۸ ، ۹ و ۱۰ برروری آردوینو Arduino برای برقراری ارتباط و ارسال دیتا میان LCD و آردوینو Arduino استفاده میشه و فقط یک پین آنالوگ شماره A0 برای خواندن ۶ عدد تاچسوییچ قرار گرفته بر روی شیلد استفاده میشه. شیلد LCD از تنظیم کانتراست پشتیبانی میکنه و بکلایت LCD هم به طور پیشفرض روشن است.
طراحی خوب این شیلد Shield باعث شده که به راحتی بتونین سنسورها، موتورها و …. را به راحتی به مابقی پینهای آردوینو Arduino متصل کنین و اطلاعات آنها را بر روی LCD مانیتور و توسط تاچسوییچها عملیات لازم را بر روی آنها انجام بدین. نمایش اطلاعات بر روی LCD و دیباگ کردن برنامه هنگامی که کامپیوتر در درسترس ندارین خیلی میتونه مفید باشه و این شیلد نیز برای انجام این کار بسیار مناسب است.
- ولتاژ کاری ۵ ولت DC
- ۵ عدد کلید برای کنترل منو و …
- کلید RST برای ریست کردن آردوینو
- یک عدد مولتیترن برای تنظیم کانتراست LCD
- قابلیت دسترسی به I/O های آردوینو از روی شیلد
- ابعاد ۸۰*۵۸ میلیمتر
- قابلیت کنترل بکلایت
بررسی پایه های LCD
- پین D4 تا D7 به منظور انتقال دیتا استفاده میشود.
- پین D8 برای انتخاب رجیسترها
- پین D9 برای فعال کردن LCD
- پین D10 برای کنترل بکلایت استفاده میشه به طوری که در برنامه اگر شما پین شماره ۱۰ آردوینو را در وضعیت HIGH قرار دهید بکلایست LCD روشن میشود و در صورتی که در برنامه پین شماره D10 را در وضعیت LOW قرار دهید ، LCD خاموش میشود.
معرفی ماژول SRF05
ماژول SRF05 یک سنسور فاصله التراسونیک (Ultrasonic Distance Sensor) میباشد که به شکل یک ماژول کوچک ارائه میشود و معمولاً در پروژههای الکترونیکی و رباتیک برای اندازهگیری فواصل استفاده میشود. این ماژول از تکنولوژی ارسال و دریافت امواج فراصوتی برای تعیین فاصله تا اشیاء استفاده میکند. ماژول SRF05 قادر به اندازهگیری فواصل در محدوده ۲ سانتیمتر تا حدود ۴ متر میباشد. این ماژول از رابط پالسی (Pulse Width Modulation) برای ارتباط با میکروکنترلر یا سیستمهای الکترونیکی استفاده میکند.SRF05 دارای دقت نسبی برای اندازهگیری فواصل است و معمولاً دقت خوبی در اندازهگیریهای نزدیک به اشیاء دارد. برای استفاده از ماژول SRF05، شما باید سیگنالهای ترارسانی و دریافتی را به میکروکنترلر خود ارسال کنید و سپس زمانی که سیگنال فراصوتی به شیء ارسال شده و به ماژول برگشته، زمانی که طی میکند، را به عنوان فاصله تخمینی در نظر بگیرید. با استفاده از پینهای مربوط به تنظیمات، میتوانید فاصله حداقل را تنظیم کنید.ماژول SRF05 در پروژههای رباتیک، اتوماسیون خانگی، نقشهبرداری روباتیک، و سایر برنامههایی که نیاز به اندازهگیری دقیق فواصل دارند، مورد استفاده قرار میگیرد. این سنسور میتواند به شکل مؤثری به پروژههای الکترونیکی و رباتیک شما کمک کند.
- رنج اندازه گیری : حداقل cm4 و حداکثر ۴ متر
- ولتاژ مورد نیاز و جریان مصرفی : ۵ ولت – ۴ میلی آمپر
- پایه ها : GND – VCC – Trig – Echo – Out
راه اندازی ماژول
مد ۱ :
۱) در این حالت ما ابتدا یه پالس با زمان ۲۰ میکرو ثانیه به پایه Trig میدهیم.
۲) و بعد ماژول SRF05 پالس به سمت محیط ارسال میکند.
۳) و بعدش ما پالسی از پایه Echo دریافت میکنیم و با محاسبه طول این پالس و ضرب کردن در مقادیری…، فاصله SRF05 رو تا مانع پیدا میکنیم.
- اگه طول پالسی که دریافت کردیم از ۳۰ میلی ثانیه بیشتر شد یعنی مانعی جلوی ماژول نیست.(تو برنامه نویسی تون بهتره لحاظش کنید.)
- طول پالسی که دریافت میکنیم بین ۱۰۰ میکرو ثانیه تا ۲۰ میلی ثانیه هستش.
- پایه Out هم به جایی وصل نیست……به جایی وصلش نکنید یه وقت…..بزارید بدون اتصال بمونه.
مد ۲ :
۱) پایه Out به زمین وصل میشه.
۲) پایه Echo بدون اتصال میمونه.
۳) تو مد ۱ ما به پایه Trig یه پالسی میدادیم و یه پالسی از پایه Echo میگرفتیم…..اما تو این مد پایه Echo رو بدون اتصال میزاریم بمونه…..و پالسمون رو به Trig میدیم و پالس رو هم از Trig دریافت میکنیم.
وسایل مورد نیاز
- آردوینو uno – یک عدد — خرید از فروشگاه
- شیلد lcd – یک عدد — خرید از فروشگاه
- srf05 – یک عدد — خرید از فروشگاه
کد آردوینو
کد را کپی و در نرم افزار آردوینو اجرا کنید.
#include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); String x; void setup() { Serial.begin(9600); pinMode(10, OUTPUT); digitalWrite(10 , HIGH); lcd.begin(16, 2); lcd.setCursor(0, 1); lcd.print("**digispark.ir**"); pinMode(2, OUTPUT);//TRIG pinMode(3, INPUT);//ECHO } void loop() { double cm,duration; digitalWrite(2, HIGH); delayMicroseconds(20); digitalWrite(2, LOW); duration = pulseIn(3, HIGH); cm = duration / 29 / 2; x = "CM : " + String(cm) + " "; lcd.setCursor(0, 0); lcd.print(x); Serial.println(x); delay(200); }
این کد برای استفاده از یک سنسور اولتراسونیک (Ultrasonic Sensor) برای اندازهگیری فاصله و نمایش آن روی یک نمایشگر مایع (LCD) طراحی شده است. این کد برای برد آردوینو (Arduino) نوشته شده است. دیگر کتابخانهها و کامپوننتهای مورد استفاده در این کد عبارتند از:
- LiquidCrystal: این کتابخانه برای کنترل نمایشگر مایع (LCD) استفاده میشود.
- pinMode: تنظیم پینهای مربوط به سنسور اولتراسونیک و LED.
- digitalWrite: تنظیم وضعیت خروجی پینها.
- Serial.begin: شروع ارتباط تسلسلی با مانیتور سریال برای ارسال اطلاعات به مانیتور سریال.
یک نمایشگر مایع با ۱۶ ستون و ۲ سطر تعریف شده و به پینهای ۸ تا ۹ و ۴ تا ۷ متصل میشود.یک متغیر String به نام “x” تعریف میشود که برای ذخیرهسازی مقدار فاصله در واحد سانتیمتر استفاده میشود.اتصال سریال به ۹۶۰۰ بیت در ثانیه برای ارسال اطلاعات به مانیتور سریال انجام میشود.پین ۱۰ به عنوان یک خروجی تعریف میشود و به وضعیت بالا (HIGH) تنظیم میشود.نمایشگر مایع مقداردهی و راهاندازی میشود.پینها ۲ و ۳ به ترتیب به عنوان خروجی (TRIG) و ورودی (ECHO) برای سنسور اولتراسونیک تنظیم میشوند.در تابع loop، فرآیند اندازهگیری فاصله تکرار میشود:
ابتدا پالس ترارسانی به سنسور اولتراسونیک فرستاده میشود تا سنسور آماده به اندازهگیری شود.سپس پالس ترارسانی متوقف شده و پالس دریافتی توسط سنسور ثبت میشود.مدت زمان پالس دریافتی با استفاده از تابع “pulseIn” به عنوان مقدار “duration” ذخیره میشود.سپس مقدار فاصله در واحد سانتیمتر محاسبه میشود و در متغیر “cm” ذخیره میشود.مقدار فاصله بر روی نمایشگر مایع نمایش داده میشود و همچنین بر روی مانیتور سریال چاپ میشود.با ایجاد تاخیر ۲۰۰ میلیثانیه، این فرآیند به صورت مکرر انجام میشود.
با سلام مطلبتون واقعا مفید بود میخاستم بگم که اگه به جای ال سی دی بخام به صورت صوتی وجود چیزی را تشخیص دهم باید چیکار کنم لطفا راهنمایی کنین.
با سلام
ضمن تشکر از توجه شما، منظورتان را متوجه نمیشوم. لطفا دقیقتر توضیح دهید. یعنی بجای آلتراسونیک از سنسور دیگری استفاده کنید؟
نه. در این نمونه ای که شما ساختید سنسور اولتراسونیک وجود چیزی یا فاصله را روی ال سی دی نشان میدهد ولی من میخاهم بجای این که روی ال سی دی نشان دهد بصورت صوتی وجود چیزی را بگوید .
سلام مجدد
ایدهی جالبی است. یعنی پس از تشخیص مانع یا جسم، از طریق یک بلندگو اعلام کند؟
بله دقیقاممنون میشم اگر کمک کنین
در این خصوص، سادهترین روش استفاده از بیزر است که اعلام وجود مانع را فقط با یک فرکانس صوتی اعلام کند. اما اگر تنایل دارید پیشرفتهتر و هوشمندانهتر به صورت کلامی اعلام کند، آموزش کنترل اشیا با برد Wemos از طریق صدا با Google Assistant و IFTTT را بررسی کنید، ایده میگیرید.
با سلام
اموزش کنترل اشیا با برد وموس را دیدم ولی نتونستم به نتیجه ای برسم .
راستش من میخام۴ عدد سنسور اولترا سونیک را راه اندازی کنم که هر کدام پس از تشخیص مانع فرمان های صوتی مختلفی رو بگه.
سلام مجدد
اون آموزش برای اینکه ایده بگیرید، پیشنهاد دادم. در این صورت سادهترین راه این است که چهار فایل صوتی ایجاد کنید، سپس روی مموری کارت ذخیره کنید و با استفاده از یک ماژول MP3 شرط گذاری کرده و پس از تشخیص مانع یکی از فایلهای صوتی که صدای انسان است، پخش شوند.
سلام از کابل پرینتر برای اتصال اردوینو به کامپیوتر میشه استفاده کرد
با سلام
بله دقت داشته باشید کابل مخصوص دیتا باشد.
باسلام.بی زحمت عکس شماتیک راه اندازی هم بزارید.ممنون
با سلام
ضمن تشکر از توجه شما، در حال حاضر امکان ایجاد تغییر در پست وجود ندارد. لطفا سوالاتتان را در این خصوص از همین طریق مطرح کنید.
سلام نقشه اتصال ماژول و شیلد را بگذارید لطفا
با سلام و تشکر از شما
متاسفانه برای پستهایی که تاریخ انتشار آنها مربوط به گذشته است، امکان ویرایش وجود ندارد. لطفا هر سوالی دارید از همین طریق مطرح بفرمایید.
سلام تمام محتویات محیط برنامه رو حذف کنم بعد این کد رو اپلود کنم
با سلام
بله کد را کامل به نرم افزار آردوینو انتقال داده و کامپایل کنید.
اتصالات رو لطف می کنید بگید من این پروژه رو برای طرح جابر میخوام ممنون میشم کمک کنید با تشکر
با سلام
اتصالات در متن آموزش نوشته شده است.
پایه تریگر سنسور به پایه ۲ دیجیتال آردوینو و پایه اکو به پایه ۳ دیجیتال آردوینو متصل شده است.
سلام میشه اتصالات رو بگید و برای برنامه نویسی باید کد های داخل محیط برنامه نویسی رو پاک کنم؟ بعد این کد هارو اپلود کنم و در اخر اینکه میشه از کابل پرینتر برای برنامه نوییی استفاده کرد
با سلام
کاربر گرامی تمامی سوالات قبلی شما پاسخ داده شده است. همچنین در نظر داشته باشید سوالات با اولویت و در سریعترین زمان ممکن پاسخ داده خواهد شد. لذا از ارسال پیام های پی در پی خودداری نمایید.
سلام پس پایه های ال سی دی به چه صورت است
سلام
در خصوص راه اندازی ال سی دی به آموزش زیر مراجعه کنید.
آموزش راه اندازی ۳ مدل ال سی دی کاراکتری LCD با آردوینو Arduino
سلام من شیلد ال سی دی رو با سیم جامپر نصب کردم التراسونیک هم نصب کردم و ال سی دی صفحه خالی نمایش میده چیکار کنم
با سلام
از کدام مدل ال سی دی استفاده میکنید؟
ال سی دی با کیپد مخصوص اردوینو باتوجه به اینکه من اتصالات رو به این طریق انجام دادم:
پایه اکو به پایه ۳ سمت راست اردوینو
پایه ی تریگر به پایه ی ۲ سمت راست اردوینو
و پایه های ال سی دی هم همون طوری که رو اردوینو قرار می گیره با سیم جامپر وصل کردم
و اینکه فقط کدی که داخل این اموزش هست اپلود کنم
یا اینکه اگر این اتصالات غلطه خواهشا کل اتصالات رو بگید و بگید که کدوم کد هارو اپلود کنم ممنون
با سلام
در خصوص استفاده از ال سی دی طبق آموزش زیر اتصالات را انجام دهید و در صورت برخورد به مشکل در پست مربوط به ال سی دی عنوان کنید تا سریعا رفع عیب شود.
آموزش راه اندازی ال سی دی
سلام من کتابخانه liquid crictal , DFR-LCD-CEYPADرو کامپایل کردم و مدار کار نمیکنه میشه اتصالات رو کامل بگید من از این دو تا مقاله که گفتید چیزی نفهمیدم
با سلام
چه پروژه ای اجرا شده است؟ توضیحات کامل به همراه ارور دریافتی را ارسال کنید تا بررسی شود.
سلام . خسته نباشید
من راه اندازی کزدم ولی ال سی دی فقط مربع نشون میده ودلیلش چی میتونه باشه ؟
با سلام
کتابخانه مورد استفاده را تعویض کنید. بخشی از آن با ورژن نرم افزار و یا بردشما سازگاری ندارد. لطفا بررسی و نتیجه را از همین طریق اعلام کنید.
ممنونم مطلب مفیدی بود برام. از شما سپاسگزارم
با سلام
از توجه شما ممنونم.
باسلام بنده قصد ساخت یک هد اتوفوکوس را دارم . میخواستم ببینم دوستان چه پیشنهادی دارن . نقطه aباید تحت هر شرایطی ثابط بماند . با استپ موتور و درایو و اردوینو . اگر دوستان اهل فن بتوانند کمک کنند ممنون میشم
با سلام
کاربر گرامی ضمن تشکر از شما، از دوستانی که در این زمینه تخصص و اطلاعاتی دارند، تقاضا میکنم در بحث شرکت کنند.
سلام من این کد رو نوشتم و اجرا گرفتم و اتصالات رو هم چک کردم درسته ولی روی LCD فقط CM: 0.00 رو به من نشون میده و ثابت هست فقط زمانی که دستمو میبرم سمت پایه های دیجیتال مقدار تغییر میکنه!!!!!!
یعنی مشکلش چیه؟
سلام
اگر صفر نمایش داده بشه قطعا در اتصالات ایرادی وجود دارد. حتما و حتما از اخرین آپدیت کتابخانه هم استفاده کنید.