آیا میخواهید پروژههای الکترونیکی خود را به یک سطح جدید از جذابیت و کاربرد رسانده و به آنها تازگی ببخشید؟ آیا تا به حال به فکر نوشتن یک پیام بر روی یک صفحه نمایش کاراکتری بودهاید؟ در این آموزش، ما به شما نشان خواهیم داد که چگونه با استفاده از این تکنولوژی جادویی و با تنها چند خط کد، یک صفحه نمایش کاراکتری را به پروژههای آردوینوی خود اضافه کنید. با راهاندازی LCD کاراکتری I2C، شما قادر خواهید بود متنهای ساده و پیامهای خاص را به کاربرانتان نمایش دهید، اطلاعات مهمی مانند دما و رطوبت را نمایش داده و حتی ساعت دیجیتالی زیبایی بسازید.
همچنین، استفاده از رابط I2C باعث سهولت بیشتر در اتصال صفحه نمایش و کاهش تعداد پینهای مورد استفاده میشود. به این ترتیب، شما میتوانید با دسترسی آسانتر و سرعت بیشتر، نتایج شگفتانگیزی را به دست آورید. آیا آمادهاید تا از قدرت LCD کاراکتری با رابط I2C در پروژههای خود بهرهبرداری کنید؟ پس با ما همراه باشید.
ساختار LCD I2C
یک نمایشگر LCD معمولی I2C از یک نمایشگر LCD با کاراکتر HD44780 و یک آداپتور LCD I2C تشکیل شده است. بیایید در مورد آنها بیشتر بدانیم.
LCD کاراکتری
پیش از آن که به نحوه راهاندازی LCD کاراکتری I2C بپردازیم باید با این نوع صفحهنمایشها آشنا شوید. نمایشگرهای LCD کاراکتری، همانطور که از نامشان پیداست، برای نمایش کاراکترها ایدهآل هستند. بهعنوانمثال، یک نمایشگر LCD کاراکتری با ابعاد 16×2 قادر است 32 کاراکتر ASCII را در دو ردیف نمایش دهد.
اگر بهدقت نگاه کنید، میتوانید مستطیلهای کوچکی را برای هر کاراکتر و پیکسلهایی که یک کاراکتر را تشکیل میدهند، مشاهده کنید. این مستطیلها به شکل شبکهای با ابعاد 5×8 پیکسل هستند، به این معنی که هر کاراکتر در نمایشگر توسط یک شبکه 5 سطر و 8 ستون از پیکسلها ساخته شده است.
با استفاده از این قابلیتها، نمایشگرهای LCD کاراکتری امکان نمایش حروف، اعداد، علائم و الگوهای مختلف را فراهم میکنند. در واقع هر پیکسل یا خاموش است و یا روشن. با ترکیب این پیکسلها، الگوها و شکلهای مختلفی را برای هر کاراکتر میتوان به نمایش درآورد.
در نتیجه، نمایشگرهای LCD کاراکتری با استفاده از این ساختار 5×8 پیکسل، قدرتمند و منعطف بوده و قادر به نمایش متنهای متنوع و زیبا هستند. این ویژگیها آنها را به انتخاب مناسبی برای بسیاری از پروژههای الکترونیکی و کنترلی میکند.
خرید LCD کاراکتری ۱۶ کاراکتری با بک لایت آبی
I2C LCD Adapter
در قلب آداپتور LCD I2C، یک تراشه منبسطکننده ورودی/خروجی 8 بیتی به نام PCF8574 قرار دارد. این تراشه قادر است دادههای I2C را از آردوینو به دادههای موازی موردنیاز برای نمایشگر LCD تبدیل کند.
با استفاده از تراشه PCF8574، ارتباط بین آردوینو و نمایشگر LCD از طریق پروتکل I2C برقرار میشود. آردوینو اطلاعات را بهصورت سریالی از طریق خطوط SDA (خط داده سریال) و SCL (خط ساعت سریال) به آداپتور ارسال میکند. سپس تراشه PCF8574، این دادهها را دریافت کرده و به دادههای موازی تبدیل میکند.
دادههای موازی که توسط تراشه PCF8574 تولید میشوند، شامل سیگنالهای موردنیاز برای کنترل نمایشگر LCD است. این شامل سیگنالهای کنترلی مانند RS (Register Select)، RW (Read/Write) و EN (Enable) است، همچنین سیگنالهای داده مانند D4 تا D7 که برای ارسال دادههای مورد نمایش به نمایشگر LCD استفاده میشوند.
با استفاده از تراشه PCF8574 و تبدیل دادههای I2C به دادههای موازی، آداپتور LCD I2C امکان کنترل و نمایش متن و عدد را بر روی نمایشگر LCD با کاراکتر HD44780 فراهم میکند. این روش کارکرد آداپتور LCD I2C را ساده و قابلاستفاده میکند و امکان کاهش تعداد پینهای مورداستفاده از سمت آردوینو را به ارمغان میآورد که در هنگام راهاندازی LCD کاراکتری I2C موجب سهولت در کاربرد خواهد شد.
در آداپتور LCD I2C، علاوه بر تراشه PCF8574، یک تریم پوت کوچک نیز وجود دارد که بهمنظور تنظیم دقیق کنتراست نمایشگر استفاده میشود. تریم پوت، یا همان پتانسیومتر، یک عنصر قابلتنظیم است که با تغییر مقاومتش، میزان سیگنال خروجی را تنظیم میکند. در این حالت، تریم پوت کوچک در آداپتور LCD I2C برای تنظیم کنتراست نمایشگر استفاده میشود.
تنظیم کنتراست مربوط به تنظیم نسبت روشنایی به تاریکی در نمایشگر LCD است. با استفاده از تریم پوت، میتوان میزان کنتراست را بهصورت دقیق تنظیم کرده و نمایشگر را بهوضوح و بهترین شکل ممکن قرار داد.با تغییر مقدار مقاومت تریم پوت، سطح و روشنایی پیکسلها در نمایشگر تغییر میکند و به کاربر امکان میدهد تا تنظیمات کنتراست را به مطابقت با نیازهای خود تنظیم کند. این ویژگی، در هنگام راهاندازی LCD کاراکتری I2C امکان بهینهسازی کارایی و قابلیت خوانایی نمایشگر را برای شما فراهم میکند.
بر روی آداپتور LCD I2C، یک جامپر قرار دارد که برق نور پسزمینه نمایشگر را تأمین میکند. با برداشتن این جامپر، شما میتوانید کنترل شدت نور پسزمینه را به دست بگیرید. برای این کار، شما باید ولتاژ خارجی را به پین هدری که با برچسب “LED” مشخص شده است، متصل کنید. با تغییر ولتاژ متصل شده به این پین، شدت نور پسزمینه قابلتنظیم است که به شما اجازه میدهد تا بهترین شرایط نوردهی برای مشاهده و خواندن محتوای نمایشگر را داشته باشید.
پایهها
برای راهاندازی LCD کاراکتری I2C باید با پایههای اتصال آشنا شوید که به شرح زیر هستند:
- VCC : اتصال به منبع تغذیه مثبت (معمولاً 5 ولت).
- GND :اتصال به منبع تغذیه منفی (معمولاً زمین).
- SDA :اتصال به پین داده (Data) ) رابط I2C در آردوینو. (معمولاً پایه A4 در برد آردوینو UNO و پایه D2 در آردوینو Nano و آردوینو Pro Mini)
- SCL اتصال به پایه ساعت (Clock) رابط I2C در آردوینو. (معمولاً پایه A5 در برد آردوینو UNO و پایه D3 در آردوینو Nano و آردوینو Pro Mini)
میتوانید این پایهها را با استفاده از سیمهای مناسب به آردوینو متصل کنید. لازم به ذکر است که برای استفاده از رابط I2C در آردوینو، شما باید کتابخانه Wire را در کد آردوینو خود فراخوانی کنید تا بتوانید با ماژول I2C ارتباط برقرار کنید.
همچنین دقت کنید که شماره پایهها ممکن است در بردهای آردوینو مختلف متفاوت باشد؛ لذا، بهدقت دیتاشیت (دفترچه راهنما) مربوط به برد آردوینو خود را مطالعه کنید تا پایههای درست را شناسایی کنید.
آدرس I2C LCD
درصورتیکه در یک گذرگاه I2C چندین دستگاه مختلف دارید، ممکن است نیاز به تنظیم آدرس I2C متفاوت برای آداپتور LCD داشته باشید تا از تداخل با سایر دستگاههای I2C جلوگیری کنید.
برای این منظور، آداپتور LCD I2C با سه جامپر یا پد لحیمکاری به نامهای A0، A1 و A2 همراه است. با تنظیم این جامپرها یا با لحیمکردن یک لکه، میتوانید آدرس موردنظر را برای آداپتور LCD تنظیم کنید.
ازآنجاکه هر جامپر/پد لحیمکاری میتواند بهصورت باز یا بسته باشد، آدرس I2C بر اساس وضعیت هر جامپر تنظیم میشود. با کوتاهکردن یک لکه لحیم، جامپر بسته شده و آدرس تنظیم میشود. در غیر این صورت، جامپر باز است و آدرس پیشفرض حفظ میشود.
این ویژگی به شما اجازه میدهد تا آدرس منحصربهفرد برای آداپتور LCD تنظیم کنید و در هنگام راهاندازی LCD کاراکتری I2C، از تداخل با دستگاههای I2C دیگر در گذرگاه جلوگیری کنید.
نکته مهمی که در اینجا باید موردتوجه قرار گیرد، این است که تراشه PCF8574 که در آداپتور LCD I2C استفاده میشود، توسط چندین شرکت از جمله Texas Instruments و NXP Semiconductors تولید میشود. این مسئله به معنای آن است که آدرس I2C نمایشگر LCD شما به تولیدکننده تراشه بستگی دارد. بهعبارتدیگر، بسته به شرکتی که تراشه PCF8574 را تولید کرده است، آدرس I2C مورداستفاده برای نمایشگر LCD ممکن است متفاوت باشد؛ بنابراین، قبل از استفاده از آداپتور LCD I2C، بهتر است اطمینان حاصل کنید که آدرس I2C مورداستفاده برای نمایشگر LCD توسط تراشه PCF8574 در آداپتور تنظیم شده است.
درصورتیکه برای راهاندازی LCD کاراکتری I2C، یک آداپتور LCD I2C خریداری کردهاید، معمولاً آدرس پیشفرض از قبل بر روی آن تنظیم شده که بر روی آداپتور یا در دستورات مربوطه مشخص میشود. در صورت نیاز، میتوانید با مطالعه دقیق مستندات و راهنماییهای مربوطه، آدرس I2C را تنظیم و سفارشی کنید.
خرید LCD ۱۶ کاراکتری با بک لایت سبز
چیپ Texas Instrument PCF8574
درصورتیکه نمایشگر LCD شما دارای تراشه PCF8574 Texas Instruments است، بر اساس برگه اطلاعات تگزاس اینسترومنتز، سه بیت انتخاب آدرس (A0، A1 و A2) در انتهای رجیستر آدرس I2C 7 بیتی قرار دارند.
این بیتها امکان تنظیم آدرس I2C را بهصورت سفارشی در دستگاه PCF8574 فراهم میکنند با تنظیم وضعیت این سه بیت بهعنوان LOW یا HIGH، میتوانید آدرس I2C متفاوتی را برای دستگاه تنظیم کنید. این امکان به شما اجازه میدهد تا در محیطی که چندین دستگاه I2C وجود دارد، تداخل بین آنها را جلوگیری کنید و هر یک را بهصورت جداگانه شناسایی کنید.
بهطورکلی، برای تنظیم آدرس I2C در تراشه PCF8574، شما باید با تغییر وضعیت بیتهای A0، A1 و A2، آدرس مطلوب خود را بین 0 و 7 تنظیم کنید. این تغییرات در رجیستر آدرس I2C اعمال میشوند و بسته به تنظیمات شما، دستگاه با آدرس مناسب شناسایی خواهد شد.
ازآنجاکه سه ورودی آدرس وجود دارد که هر کدام میتوانند در دو حالت HIGH یا LOW قرار گیرند، بهطورکلی میتوان هشت (2^3) ترکیب (آدرس) مختلف را تنظیم کرد. هر سه ورودی آدرس با استفاده از pullupهای داخلی به بالا کشیده میشوند. این به PCF8574 یک آدرس I2C پیشفرض 0x27 میدهد.
وقتی یک جامپر لحیمکاری را کوتاه میکنید، ورودی آدرس مربوطه را در حالت LOW قرار میدهید. اگر بخواهید هر سه جامپر را کوتاه کنید، آدرس I2C برابر با 0x20 خواهد بود؛ بنابراین محدوده همه آدرسهای ممکن از 0x20 تا 0x27 را شامل میشود.
باتوجهبه جدول زیر میتوانید یک آدرس I2C متفاوت تنظیم کنید.
جامپر A2 | جامپر A1 | جامپر A0 | آدرس I2C |
LOW | LOW | LOW | 0x20 |
LOW | LOW | HIGH | 0x21 |
LOW | HIGH | LOW | 0x22 |
LOW | HIGH | HIGH | 0x23 |
HIGH | LOW | LOW | 0x24 |
HIGH | LOW | HIGH | 0x25 |
HIGH | HIGH | LOW | 0x26 |
HIGH | HIGH | HIGH | 0x27 |
با تغییر حالت جامپر های A2، A1 و A0 میتوانید آدرس I2C موردنظر را برای آداپتور LCD خود تنظیم کنید. با مشاهده این جدول، در هنگام راهاندازی LCD کاراکتری I2C شما میتوانید بهراحتی آدرس I2C منحصربهفردی را برای آداپتور LCD خود تعیین کنید.
چیپ NXP
باتوجهبه اطلاعات ارائه شده توسط NXP Semiconductors، سه بیت انتخاب آدرس (A0، A1 و A2) در انتهای رجیستر آدرس I2C با طول 7 بیت قرار دارند. اما بیتهای باقیمانده در ثبات آدرس، در تراشههای مختلفی متفاوت است. بدین ترتیب، در هر تراشه ممکن است بیتهای باقیمانده دارای الگوها و مقادیر مختلفی باشند. این الگوها و مقادیر بهطورکلی به تولیدکننده تراشه بستگی دارند؛ بنابراین، برای تنظیم آدرس I2C دقیق برای آداپتور LCD خود، باید به برگه اطلاعات تراشه خاص خود مراجعه کنید و الگوها و مقادیر مربوطه را بررسی کنید. این اطلاعات معمولاً در برگه اطلاعات مربوط به تراشه PCF8574 ارائه میشود.
همانطور که پیشتر گفتیم باتوجهبه وجود سه ورودی آدرس که میتوانند در حالت HIGH یا LOW قرار گیرند، تعداد ترکیبهای (آدرسها) مختلف که ممکن است تنظیم کنید، هشت (با درنظرگرفتن قاعده توانی 2، 2^3 = 8)است؛ اما این بار هر سه ورودی آدرس با استفاده از pull-up های داخلی در حالت HIGH قرار میگیرند. این امر باعث میشود تراشه PCF8574 یک آدرس I2C پیشفرض با مقدار 0x3F داشته باشد.
وقتی شما یک جامپر لحیمکاری را کوتاه میکنید، ورودی آدرس آن را در حالت LOW قرار میدهید؛ اما درصورتیکه همه سه جامپر را کوتاه کنید، آدرس I2C تنظیم شده 0x38 خواهد بود؛ بنابراین، دامنه آدرسهای ممکن از 0x38 تا 0x3F را شامل میشود.
با استفاده از جدول زیر در هنگام راهاندازی LCD کاراکتری I2C میتوانید یک آدرس I2C متفاوت را تنظیم کنید. (توجه داشته باشید که این جدول برای تراشه PCF8574 با تنظیمات آدرس مشخص شده برای شرکت NXP Semiconductors صادق است.)
A2 | A1 | A0 | آدرس I2C |
LOW | LOW | LOW | 0x38 |
LOW | LOW | HIGH | 0x39 |
LOW | HIGH | LOW | 0x3A |
LOW | HIGH | HIGH | 0x3B |
HIGH | LOW | LOW | 0x3C |
HIGH | LOW | HIGH | 0x3D |
HIGH | HIGH | LOW | 0x3E |
HIGH | HIGH | HIGH | 0x3F |
بهاینترتیب، با تنظیم ورودیهای آدرس، میتوانید آدرس I2C موردنظر برای آداپتور LCD خود را انتخاب کنید.
راهاندازی LCD کاراکتری I2C با آردوینو
قطعات لازم
- برای راهاندازی LCD کاراکتری I2C با آردوینو، به قطعات زیر نیاز دارید:
- برد آردوینو: شما نیاز دارید تا یک برد آردوینو مانند آردوینو UNO یا آردوینو Nano را داشته باشید. این بردها شامل پایههای دیجیتال و آنالوگ و رابط I2C هستند.
- ماژول LCD کاراکتری: شما نیاز به یک ماژول LCD کاراکتری با رابط I2C دارید. این ماژول شامل صفحهنمایش LCD و یک مبدل I2C به پارالل (parallel) است که به آن اجازه میدهد تا از طریق رابط I2C با آردوینو ارتباط برقرار کند. این ماژولها معمولاً دارای دو خط (16×2) یا چهار خط (20×4) برای نمایش کاراکتر هستند.
- کابلهای اتصال: شما نیاز به کابلهای اتصال برای اتصال ماژول LCD به برد آردوینو دارید. این کابلها معمولاً شامل کابلهای جک دار (Jumper) با انتهایی زن و دیگری نر هستند. شما باید کابلها را به پایههای SDA، SCL، VCC و GND روی ماژول LCD و برد آردوینو متصل کنید.
- منبع تغذیه: برای تغذیه LCD و ماژول I2C، نیاز به یک منبع تغذیه +5V است. در آردوینو، میتوانید از پایه VCC برای تغذیه ماژول I2C و پایههای VCC و GND برای تغذیه LCD استفاده کنید.
- برنامهنویسی: شما نیاز به کد برنامهنویسی برای آردوینو دارید. معمولاً برای کنترل LCD کاراکتری با رابط I2C در آردوینو، از کتابخانه LiquidCrystal_I2C استفاده میشود که قبلاً باید آن را به کتابخانههای آردوینو اضافه کنید.
در کل، با این قطعات میتوانید LCD کاراکتری خود را با رابط I2C به آردوینو متصل کرده و آن را کنترل کنید.
اتصال پایهها
صفحهنمایش LCD I2C تنها دارای چهار پین است. پینآوت زیر است:
- پین GND یک پین زمین است که به ارتباط الکتریکی با زمین متصل میشود.
- پین VCC پایه منبع تغذیه است. شما میتوانید آن را به خروجی 5 ولت آردوینو یا به منبع تغذیه خارجی 5 ولت متصل کنید تا ولتاژ تغذیه موردنیاز را فراهم کنید.
- پین SDA (Serial Data) یک پین داده I2C است که برای ارسال و دریافت دادهها در ارتباط I2C استفاده میشود.
- پین SCL (Serial Clock) یک پین ساعت I2C است که سیگنال ساعت برای هماهنگسازی انتقال دادهها در ارتباط I2C فراهم میکند.
لطفاً توجه داشته باشید که این توضیحات بهمنظور راهاندازی LCD کاراکتری I2C ارائه شده است و نحوه اتصال به آردوینو یا منبع تغذیه خارجی بستگی به سیستم شما دارد.
برای خرید باتری کلیک کنید.
سیمکشی صفحهنمایش LCD I2C به آردوینو
اتصال نمایشگر LCD با رابط I2C بسیار سادهتر از اتصال نمایشگر LCD استاندارد است. برای اتصال آن، شما فقط باید چهار پین را بهدرستی وصل کنید.
- ابتدا پایه VCC را به خروجی 5 ولت آردوینو و یا منبع تغذیه خارجی 5 ولت متصل کنید.
- سپس پایه GND را به زمین (GND) متصل کنید.
- حالا باقی ماندهایم با پینهای ارتباط I2C. توجه کنید که هر برد آردوینو ممکن است پینهای I2C مختلفی داشته باشد که باید بهدرستی متصل شوند. در بردهای آردوینو با طرح R3، پینهای SDA (خط داده) و SCL (خط ساعت) روی هدرهای پین نزدیک به پایه AREF قرار دارند. این پینها به ترتیب با نامهای A4 (SDA) و A5 (SCL) نیز شناخته میشوند. با متصلکردن این چهار پین، شما اتصال اولیه LCD I2C را انجام دادهاید.
بنابراین، برای اتصال نمایشگر LCD I2C، شما باید پین SDA را به پایه A4 (SDA) آردوینو و پین SCL را به پایه A5 (SCL) آردوینو متصل کنید.
برای مرجع سریع جدول زیر را بررسی کنید.
SCL | SDA | |
Arduino Uno | A5 | A4 |
Arduino Nano | A5 | A4 |
Arduino Mega | 21 | 20 |
Leonardo/Micro | 3 | 2 |
نمودار زیر نحوه اتصال همه چیز را نشان میدهد.
تنظیم کنتراست LCD
پس از انجام سیمکشی برای نمایشگر LCD، باید کنتراست LCD را تنظیم کنید. روی ماژول I2C یک پتانسیومتر وجود دارد که میتوانید با یک پیچگوشتی کوچک آن را تنظیم کنید.
حالا آردوینو را روشن کنید و تغذیه را فعال کنید. با این کار، نور پسزمینه نمایشگر LCD شما روشن میشود. با چرخاندن دستگیره پتانسیومتر، اولین ردیف مستطیلی روی نمایشگر ظاهر میشود. اگر تا به اینجا پیش رفتهاید، به شما تبریک میگوییم! نمایشگر LCD شما بهدرستی کار میکند و آماده استفاده است.
با انجام این مراحل، شما موفق به تنظیم کنتراست LCD و نمایش متن اولیه بر روی صفحهنمایش شدهاید. اکنون میتوانید با آردوینو و نمایشگر LCD I2C خود به انجام پروژههای جذابی بپردازید.
نصب کتابخانه
پیش از آن که به کدنویسی نحوه راهاندازی LCD کاراکتری I2C بپردازیم دقت کنید که برای استفاده از نمایشگرهای I2C، باید کتابخانه LiquidCrystal_I2C را نصب کنید. این کتابخانه به شما امکان میدهد نمایشگرهای I2C را با استفاده از عملکردهایی که بسیار شبیه به کتابخانه LiquidCrystal هستند، کنترل کنید.
برای نصب کتابخانه، ابتدا به قسمت Sketch رفته و سپس گزینه Include Library را انتخاب کنید. در ادامه، بروی گزینه Manage Libraries کلیک کنید. منتظر بمانید تا مدیر کتابخانه فهرست کتابخانهها را دانلود کند و لیست کتابخانههای نصب شده را بهروز کند.
سپس در جستجوی کتابخانه، عبارت LiquidCrystal_I2C را تایپ کنید. پس از پیداشدن کتابخانه مدنظر، بر روی آن کلیک کرده و گزینه Install را انتخاب کنید. صبر کنید تا عملیات نصب کتابخانه تکمیل شود.
اکنون با نصب این کتابخانه، شما آمادهاید تا از عملکردهای مرتبط با نمایشگرهای I2C استفاده کنید و آنها را بهراحتی کنترل کنید.
تنظیمات آدرس LCD
همانطور که قبلاً اشاره شد، آدرس I2C برای LCD شما بستگی به سازنده آن دارد؛ لذا باید بدانید که آیا نمایشگر LCD شما از نوع PCF8574 ساخته شده توسط شرکت Texas Instruments استفاده میکند یا شرکت NXP Semiconductors . بر اساس این اطلاعات، آدرس I2C متفاوت است.
اگر LCD شما از تراشه ساخته شده توسط شرکت Texas Instruments استفاده میکنید، آدرس I2C آن 0x27 است. اما اگر تراشه از نوع PCF8574 که توسط شرکت NXP Semiconductors ساخته شده، استفاده میکنید، آدرس I2C آن 0x3F است.
درصورتیکه مطمئن نیستید که آدرس I2C LCD شما چیست، میتوانید از یک طرح ساده اسکنر I2C استفاده کنید. این طرح، گذرگاه I2C شما را اسکن کرده و آدرس هر دستگاه I2C را که پیدا میکند، به شما نشان میدهد.
برای دسترسی به این طرح، به بخش “File” بروید، و سپس “Examples” را انتخاب کنید. در ادامه، به بخش “Wire” و سپس “i2c_scanner” را انتخاب کنید. در اینجا، میتوانید آدرس I2C LCD خود را تعیین کنید و با استفاده از آن در پروژههای خود استفاده کنید. با استفاده از این برنامه، شما قادر خواهید بود آدرس I2C مربوط به نمایشگر LCD خود را تشخیص داده و استفاده صحیح از آن را در پروژههای خود ادامه دهید.
کدنویسی اولیه
اکنون که اتصالات فیزیک برقرار شده است باید به کدنویسی نحوه راهاندازی LCD کاراکتری I2C بپردازیم. بدین منظور باید طرح i2c_scanner را در آردوینو IDE خود بارگذاری کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
#include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("\nI2C Scanner"); } void loop() { int nDevices = 0; Serial.println("Scanning..."); for (byte address = 1; address < 127; ++address) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); byte error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address < 16) { Serial.print("0"); } Serial.print(address, HEX); Serial.println(" !"); ++nDevices; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) { Serial.print("0"); } Serial.println(address, HEX); } } if (nDevices == 0) { Serial.println("No I2C devices found\n"); } else { Serial.println("done\n"); } delay(5000); // Wait 5 seconds for next scan } |
بعد از آپلود طرح مدنظر خود بر روی آردوینو، شما باید مانیتور سریال را در سرعت 9600 baud راهاندازی کنید. این کار میتواند از طریق برنامه سریال مانیتور در نرمافزار آردوینو IDE صورت گیرد. بعد از راهاندازی، شما باید آدرس I2C صفحهنمایش LCD I2C خود را در مانیتور سریال مشاهده کنید.
در پنجره مانیتور سریال، اطلاعاتی نمایش داده خواهد شد که شامل آدرس I2C است. لطفاً این آدرس را یادداشت کنید. در نمونههای بعدی پروژه خود، به این آدرس نیاز خواهید داشت. آدرس I2C به صورتت عددی نمایش داده میشود، مانند “0x27” یا “0x3F”.
با داشتن آدرس I2C صفحهنمایش LCD خود، میتوانید آن را در برنامههای بعدی که از کتابخانه LiquidCrystal_I2C استفاده میکنید نیز به کار بگیرید تا ارتباط مستقیم با نمایشگرتان برقرار شود.
چاپ پیام Hello World! با کمک آردوینو و LCD I2C
در اینجا میخواهیم یک کد آزمایشی که شمال عبارت “Hello World!” است را در خط اول LCD و “LCD Tutorial” را در خط دوم چاپ کنیم.
قبل از آپلود کد زیر، باید یک سری تغییر جزئی در آن ایجاد کرد تا برای ما کار کند. این تغییرات شامل انتقال آدرس I2C نمایشگر LCD خود و همچنین ابعاد نمایشگر مورداستفاده است. در صورت استفاده از یک نمایشگر کاراکتری 16×2 ، باید اعداد 16 و 2 را به سازنده LiquidCrystal_I2C ارسال کنیم. همچنین، اگر از یک نمایشگر کاراکتری 20×4 استفاده کنیم، باید اعداد 20 و 4 را به سازنده LiquidCrystal_I2C بفرستیم.
کد
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
// enter the I2C address and the dimensions of your LCD here LiquidCrystal_I2C lcd(0x3F, 16, 2); #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display void setup() { lcd.init(); lcd.clear(); lcd.backlight(); // Make sure backlight is on // Print a message on both lines of the LCD. lcd.setCursor(2,0); //Set cursor to character 2 on line 0 lcd.print("Hello world!"); lcd.setCursor(2,1); //Move cursor to character 2 on line 1 lcd.print("LCD Tutorial"); } void loop() { } |
این چیزی است که باید روی صفحهنمایش ببینید.
توضیحات کد
طرح مدنظر با گنجاندن کتابخانه LiquidCrystal_I2C در ابتدای کد آغاز میشود.
1 |
#include <LiquidCrystal_I2C.h> |
سپس یک شی از کلاس LiquidCrystal_I2C را ایجاد میکنیم و آن را بهعنوان lcd نامگذاری میکنیم. این شی سه ورودی را میپذیرد: آدرس I2C نمایشگر، تعداد ستونها و تعداد ردیفهای نمایشگر.
1 |
LiquidCrystal_I2C lcd(0x3F,16,2); |
در این مرحله تابع init() ابتدا رابط LCD را راهاندازی میکند. سپس تابع clear() صفحهنمایش LCD را پاک میکند و مکاننما را در گوشه سمت چپ بالا قرار میدهد و در نهایت، تابع backlight() نور پسزمینه نمایشگر LCD را روشن میکند.
1 2 3 4 5 |
lcd.init(); lcd.clear(); lcd.backlight(); |
در این قسمت با استفاده از تابع setCursor(2, 0)، مکاننما را به ستون سوم و ردیف اول منتقل میکنیم. موقعیت مکاننما همان مکانی است که میخواهید متن جدید در آن ظاهر شود. در این حالت، گوشه سمت چپ بالا با مقادیر col=2 و row=0 مشخص میشود.
1 |
lcd.setCursor(2,0); |
سپس از تابع print() برای چاپ عبارت “Hello world!” استفاده میکنیم.
1 |
lcd.print("Hello world!"); |
به طور مشابه، خطوط بعدی مکاننما را به ستون سوم و ردیف دوم منتقل کرده و عبارت “آموزش LCD” را روی LCD چاپ میکنند.
در نهایت طرح تکمیل شده بهصورت زیر خواهد بود:
1 2 3 |
lcd.setCursor(2,1); lcd.print("LCD Tutorial"); |
سایر توابع پرکاربرد در کتابخانه LiquidCrystal_I2C
در هنگام راهاندازی LCD کاراکتری I2C بسیاری از توابع مفید وجود دارد که میتوانید با LiquidCrystal_I2C Object از آنها استفاده کنید که در ادامه به معرفی اجمالی برخی از آنها پرداختهایم.
v تابع lcd.noBlink() که چشمکزن نمایشگر LCD را غیرفعال میکند.
v تابع lcd.cursor() که یک زیرخط در موقعیتی که کاراکتر بعدی روی آن نوشته میشود، نمایش میدهد.
v تابع lcd.noCursor() که مکاننما نمایشگر LCD را مخفی میکند.
v تابع lcd.scrollDisplayRight() که محتویات نمایشگر را یک فاصله به سمت راست اسکرول میکند. اگر میخواهید متن به طور مداوم اسکرول شود، میتوانید از این تابع در داخل یک حلقه for استفاده کنید.
v تابع lcd.scrollDisplayLeft() که محتویات نمایشگر را یک فاصله به سمت چپ اسکرول میکند. مشابه عملکرد بالا، از این تابع در داخل یک حلقه for برای اسکرول مداوم استفاده میشود.
v تابع lcd.noDisplay() که نمایشگر LCD را خاموش میکند، اما متن نمایشدادهشده در آن از بین نمیرود.
v تابع lcd.display() که نمایشگر LCD را پس از خاموشکردن با noDisplay() روشن میکند. این کار بازیابی متن (و مکاننما) روی صفحهنمایش را انجام میدهد.
با استفاده از این توابع، میتوانید کنترل بیشتری بر روی عملکرد و نمایش نمایشگر LCD خود داشته باشید
جمعبندی
راهاندازی LCD کاراکتری I2C با آردوینو، یک پروژه آموزشی فوقالعاده و جذاب است که علاوه بر نمایش متن و اعداد بر روی السیدی، شما را به دنیای جدیدی از امکانات الکترونیکی و برنامهنویسی هدایت میکند. این آموزش ساده و قابلفهم، به شما امکان میدهد بهسرعت و سهولت اطلاعات را بهصورت مرتب و قابل خواندن بر روی السیدی نمایش دهید. با دنبالکردن مراحل آموزش، شما قادر خواهید بود برنامههای خود را با استفاده از LCD کاراکتری بهبود داده و با آردوینو تعامل بیشتری داشته باشید. با خواندن این مقاله، شما بهسرعت و بهراحتی نمایشگر LCD کاراکتری خود را به آردوینو متصل کرده و در ساخت پروژههای جذاب و خلاقانه از آن استفاده خواهید کرد. پس باانرژی و شوروشوق، خود را در دنیای LCD کاراکتری آردوینو غرق کنید و تجربهی منحصربهفردی را به دست آورید!
در نهایت امیدواریم که مطالب فوق برای شما مفید بوده باشد. بیصبرانه منتظر نظرات، انتقادات و پیشنهادهای شما عزیزان هستیم. شما می توانی برایه تهیه قطعات الکترونیکی از سایت جم ترونیک کلیک کنید.