در پروژهها نمایش نتیجه و Result خروجی هر سنسور از اهمیت ویژهای برخوردار است. بررسی وضعیت و نمایش دادههای سنسور در هر ثانیه بسیار مهم است. از این رو نمایشگرهای مختلفی بر این اساس تولید شدهاند که هر کدام دارای ویژگیهای منحصر به فردی میباشند. از جمله نمایشگرهای کاراکتری با ابعاد مختلف، نمایشگرهای OLED ، نمایشگرهای مدل Nokia و بسیاری دیگر که آموزشهای متنوعی در دیجی اسپارک منتشر شده است. در این بین نمایشگرهای کاراکتری پرطرفدار و پرمصرف می باشند. ال سی دی های کاراکتری در ابعاد متنوع و مدلهای مختلف تولید میشوند. همچنین قیمت بسیار مناسبی نسبت به دیگر نمایشگرها داشته و از این رو بسیار پرکاربرد هستند. کاربران زیادی خواستار آموزش و راه اندازی هر سه مدل ال سی دی کاراکتری ۲*۱۶ با جزییات کامل را داشته اند که در این پست به این موضوع خواهیم پرداخت. در ادامه این پست کامل با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
معرفی ال سی دی کاراکتری ۲*۱۶
LCD کاراکتری ۱۶*۲ یکی از پایهای ترین نمایشگرهای الکترونیکی میباشد. این LCD در بسیاری از مدارها کاربرد دارد. یکی از دلایل پر مصرف بودن این مدل ال سی دی در مقابل نمایشگرهایی همچون سون سگمنت، عدم محدودیت در نمایش کاراکترها میباشد. همچنین توانایی ساختن کارکترهای دلخواه را دارند. برای نمایش مقادیر و متن در کد نرم افزار آردوینو Arduino IDE نیاز به معرفی و تعریف چند تابع در کدها داریم. در ابتدا به معرفی پایههای ال سی دی LCD و سپس دستورات لازم برای نمایش کاراکتر در ال سی دی LCD میپردازیم.
معرفی پایههای ال سی دی LCD
پایه های ال سی دی کاراکتری از چپ به راست به صورت زیر است:
- VSS = زمین GND
- VCC = تغذیه ۵ ولت
- (VO (Display Contrast Pin = تنظیم شدت نور صفحه
- (RS (Register Select = انتخاب رجیستر
- (RW (Read/Write = پایه Read و Write
- E = پایه Enable
- D0 – D7 = پایه های دیتا
- A = پایه Anode
- K = پایه Cathode
اتصال ال سی دی به Arduino UNO
برای اتصال ال سی دی LCD به آردوینو همانطور که در بالا گفته شده است، پایه VSS را به پایه GND، پایه VCC را به ۵ ولت، پایه VO را به پایه GND اتصال میدهیم. در صورت نیاز میتوانید یک پتانسیومتر جهت تنظیم شدت نور بین دو پایه قرار دهید. پایه RS را به یکی از پایه های دیجیتال، پایه RW را به پایه GND، پایه E را به یکی از پایههای دیجیتال آردوینو متصل میکنیم. پایههای D0 -D7 را به پین دیجیتال آردوینو و در نهایت پایه Anode را به ۵ ولت و پایه Cathode را به پایه GND وصل کنید.
انواع دیگر آردوینو
برای آردوینو مگا Mega2560 و آردوینو نانو Nano هم به همین ترتیب عمل کنید و از پایههای دیجیتال برای اتصال به آردوینو استفاده کنید.
نکته مهم برای اتصال پایههای ال سی دی LCD به پایه های دیجیتال Digital آردوینو، توجه به یک نکته اهمیت دارد. هر یک از پایههایی که انتخاب میکنید باید در کد برنامه معرفی شود. به عنوان مثال اگر از پایههای ۱۲,۱۱,۵,۴,۳,۲ آردوینو استفاده میکنید، باید به صورت زیر در کد آردوینو تعریف شود:
LiquidCrystal lcd (12,11,5,4,3,2);
به روزرسانی آموزش در مهرماه ۹۹
با توجه به اینکه عده ای از کاربران پس از انجام اتصالات و آپلود برنامه با کادرهای مربعی در ال سی دی مواجه شده اند، جهت برطرف شدن مشکل نیاز به اتصال مقاومت به پایه V0 داریم. جهت تنظیم شدت نور صفحه یا همان کنتراست از پایه V0 در ال سی دی استفاده میشود. برای اتصال پایه V0 به برد آردوینو به یک مقاومت ۱۰ کیلو نیاز داریم. یک سر مقاومت را به پایه V0 وصل کرده و به GND برد آردوینو اتصال دهید. سر دیگر مقاومت ۱۰ کیلو بدون اتصال باشد.پیشنهاد میشود. لینک انواع مقاومت و ولوم برای راه اندازی ال سی دی کاراکتری را مشاهده کنید.
همچنین در صورتیکه باز هم مشکل برطرف نشد، پایه شماره ۱۵ یا همان A آند را به از یک سر به مقاومت ۲۲۰ اهم اتصال داده و سپس به ۵ ولت آردوینو متصل کنید.
معرفی تابع فراخوانی ال سی دی LCD
۱: liquid Crystal
برای شروع باید یک متغیر از انواع مختلف Liquid Crystal بسازید. در این متغیر میتوانید بین ۴ تا ۸ پایه از دیتا را معرفی کنید. در زیر چند نمونه متغیر معرفی میکنم. بسته به انتخاب پایههای آردوینو Arduino میتوانید از یکی متغیرهای زیر استفاده کنید.
LiquidCrystal(rs,en,d4,d5,d6,d7) LiquidCrystal(rs,rw,en,,d4,d5,d6,d7) LiquidCrystal(rs,en,d0,d1,d2,d3,d4,d5,d6,d7) LiquidCrystal(rs,rw,en,d0,d1,d2,d3,d4,d5,d6,d7)
- RS: یکی از پایه های آردوینو به پایه RS ال سی دی LCD متصل میشود.
- EN: یکی از پایه های آردوینو به پایه EN ال سی دی LCD متصل میشود.
- RW: پایه GND آردوینو به پایه RW ال سی دی LCD متصل میشود.
- d0,d1,d2,d3,d4,d5,d6,d7 : با توجه به تعریف متغیر در کد برنامه از پایه های D0 تا D7 ال سی دی به پایه های آردوینو متصل میشود.
۲: ()Begin
قبل از شروع نوشتن کدهای ال سی دی نیاز به معرفی ال سی دی LCD و مشخص کردن ابعاد مورد استفاده دارید. از اینرو سطر Begin اهمیت خاصی دارد. دستور معرفی ال سی دی همانند زیر است. cols جهت مشخص کردن تعداد ستون و row برای مشخص کردن تعداد سطر میباشد.
lcd.begin(cols, rows)
به عنوان مثال اگر ال سی دی مورد استفاده از نوع ۱۶*۲ باشد، همانند زیر در کد آردوینو فراخوانی میشود.
lcd.begin(16,2)
۳: ()clear
توسط تابع clear صفحه نمایش ال سی دی پاک شده و به صورت زیر در کد تعریف میشود. پس از تابع begin نیاز به تعریف تابع clear خواهیم داشت. تابع clear به صورت زیر در برنامه فراخوانی میشود.
lcd.clear()
۴: ()home
توسط تابع home مکان نما در بالا سمت چپ ال سی دی قرار میگیرد. تابع ()home به صورت زیر در برنامه فراخوانی میشود.
lcd.home()
۵: ()setcursor
توسط تابع setcursor یک موقعیت خاص در ال سی دی برای مکان نما انتخاب میکنیم. سپس در تابع سطر row و ستون cols مورد نظر را وارد میکنیم. تابع cursor به صورت زیر در برنامه فراخوانی میشود.
lcd.setCursor(col, row)
۶: ()write
از تابع write برای نوشتن کارکتر در ال سی دی استفاده میشود. تابع write به صورت زیر در برنامه فراخوانی میشود.
lcd.write(data)
۷: ()print
از تابع print برای نمایش کاراکتر در ال سی دی LCD اسنفاده میشود. تابع print به صورت زیر در برنامه فراخوانی میشود.
lcd.print(data)
۸: ()cursor و ()nocursor
از تابع cursor برای نمایش به صورت زیر خط underscore استفاده میشود. در واقع یک خط زیر کاراکتر کشیده میشود. همچنین برای عدم نمایش underscore از تابع nocursor استفاده میکنیم. هر دو تابع cursor و nocursor به صورت زیر در برنامه فراخوانی میشود.
lcd.cursor()
lcd.noCursor()
۹: ()blink و ()noblink
توسط تابع blink مکان نما به صورت چشمک زن در ال سی دی نمایش داده میشود. همچنین توسط تابع noblink از حالت چشمک زن خارج میشود. هر دو تابع blink و noblink به صورت زیر در برنامه فراخوانی میشوند.
lcd.blink()
lcd.noblink()
۱۰: ()display و ()nodisplay
توسط تابع display ال سی دی روشن و همچنین توسط تابع nodisplay ال سی دی خاموش میشود. هر دو تابع display و nodisplay به صورت زیر در برنامه فراخوانی میشوند.
lcd.display()
lcd.nodisplay()
۱۱: ()scrolldispalyleft و ()scrolldisplayright
توسط این دو تابع محتوای نمایش داده شده در ال سی دی یک واحد به سمت چپ و راست انتقال داده میشود. هر دو تابع scrolldispalyleft و scrolldisplayright به صورت زیر در برنامه فراخوانی میشوند.
lcd.scrolldisplayleft()
lcd.scrolldisplayright()
۱۲: ()autoscroll و ()noAutoscroll
توسط تابع autoscroll حرکت اتوماتیک محتوا فعال میشود. به این صورت که اگر جهت نمایش در ال سی دی به صورت چپ به راست است، با فراخوانی این تابع صفحه نمایش به سمت چپ حرکت میکند و برعکس؛ همجنین از تابع noautoscroll برای غیر فعال کردن این حالت استفاده میشود. هر دو تابع به صورت زیر در برنامه فراخوانی میشوند.
lcd.autoscroll()
lcd.noautoscroll()
۱۳: ()LeftToRight و ()RightToLeft
توسط تابع LeftToRight یک مسیر چپ به راست برای نوشتن متن در ال سی دی مشخص شده و محتوا از چپ به راست نوشته میشود. همچنین توسط تابع RightToLeft محتوا از راست به چپ در صفحه نمایش نوشته میشود. هر دو تابع به صورت زیر در برنامه فراخوانی میشود.
lcd.LeftToRight()
lcd.RightToLeft()
۱۴: ()CreatChar
از تابع creatchar برای نمایش یک کاراکتر خاص مانند smiley در ال سی دی استفاده میشود. تابع creatchar به صورت زیر در برنامه فراخوانی میشود:
lcd.creatchar(num,data)
فراخوانی کتابخانه LiquidCrystal
برای راه اندازی ال سی دی کاراکتری نیاز به کتابخانه LiquidCrystal داریم. هچنین کتابخانه ال سی دی کاراکتری در صفحه محصول ال سی دی کاراکتری LCD 2×۱۶ در قسمت دانلود قرار دارد. با کلیک بر روی لینک کتابخانه LiquidCrystal را دانلود کرده و مجددا در مسیر Arduino / Library کپی کنید. اگر هم شیوه افزودن کتابخانه به نرم افزار آردوینو را نمیدانید از آموزش نصب کتابخانه در آردوینو که قبلا توسط همکارم نوشته شده، استفاده کنید. حال تا اینجا توابع مهم برای فراخوانی یک ال سی دی کاراکتری ۲*۱۶ را فرا گرفتیم. در ادامه به بررسی ال سی دی گرافیکی ۱۶*۲ با راه انداز I2C میپردازیم.
معرفی LCD کاراکتری ۱۶*۲ با I2C
مدل دیگری از ال سی دی کاراکتری با درایور راه انداز I2C ارائه شده است. ماژول راه انداز LCD با تراشه PCF8574 و رابط I2C مناسب برای مدیریت ال سی دیهای کاراکتری است. همچنین به دلیل استفاده از تنها ۴ پایه باعث کاهش حجم سیم کشی در طی پروژه شده است. راه انداز LCD کاراکتری با رابط I2C دارای ۴ پایه SCL , SDA, VC , GND است. در ادامه اتصال ال سی دی LCD به آردوینو را توضیح خواهم داد.
راه اندازی lcd کاراکتری با i2c
راه انداز I2C دارای ۴ پایه SCL, SDA, VCC, GND است. اتصال پایه ها در مدل های مختلف آردوینو متفاوت است. در ادامه برای نمایش محتوا در ال سی دی LCD نیاز به معرفی چند تابع در کد آردوینو داریم که به معرفی آن خواهیم پرداخت.
- آردوینو UNO: پایه SCL به پایه A5, پایه SDA به پایه A4 متصل میشود.
- آردوینو Mega2560: پایه SCL به پایه ۲۰، پایه SDA به پایه ۲۱ متصل میشود.
- آردوینو Nano: پایه SCL به پایه A5،پایه SDA به پایه A4 متصل میشود.
- پایه VCC و GND هم به ترتیب به ۵ ولت و GND آردوینو متصل میشود.
معرفی توابع راه اندازی ال سی دی
۱: LiquidCrystal_I2C
در تابع crystalLiquid_I2C باید نوع ال سی دی LCD استفاده شده را مشخص کنید. به عنوان مثال برای استفاده از ال سی دی ۱۶*۲ تابع را به صورت زیر فراخوانی میکنیم.
LiquidCrystal_I2C lcd (0x27, 16, 2);
۲: ()write begin
تابع write begin کتابخانه wire را اجرا میکند و پروتکل I2C را فرامیخواند. این تابع تنها یک بار در برنامه فراخوانده میشود.
Wire.begin();
۳: ()backlight و ()nobacklight
از این دو تابع برای روشن شدن و خاموش شدن ال سی دی استفاده میشود. تابع backlight و nobacklight به صورت زیر فراخوانی میشود.
lcd.backlight(); lcd.nobacklight();
فراخوانی کتابخانه LiquidCrystal_I2C
برای راه اندازی ال سی دی کارکتری نیاز به فراخوانی کتابخانه LiquidCrystal_I2C داریم. لینک دانلود کتابخانه LiquidCrystal_I2C در صفحه محصول راه انداز LCD کاراکتری LCD Driver PCF8574 با رابط I2C در قسمت دانلود قرار دارد. کتابخانه را دانلود و در مسیر arduino/Library کپی کنید. همچنین برای راه اندازی ال سی دی نیاز به کتابخانه wire خواهیم داشت که به صورت پیش فرض در لیست کتابخانه Arduino قرار دراد. تنها کافیست از مسیر Sketch/ Include Library کتابخانه wire را فراخوانی کنید.
کد آردوینو راه اندازی LCD کاراکتری
۱: نمونه کد آردوینو نمایش متن در LCD ساده کاراکتری
#include <LiquidCrystal.h> LiquidCrystal lcd (12,11,5,4,3,2); void setup(){ lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Digispark.ir"); } void loop(){ lcd.noBlink(); delay(1000); // Turn on the blinking cursor: lcd.blink(); delay(1000); }
۲: کد آردوینو نمایش متن LCD کارکتری I2C
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd (0x27, 16, 2); void setup(){ Wire.begin(); lcd.begin(16, 2); lcd.clear(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Digispark.ir"); lcd.setCursor(0, 1); lcd.print("Check it"); //lcd.noBacklight(); } void loop(){ }
حال طبق آموزش اتصالات هر دو مدل ال سی دی ساده و همراه با درایور I2C را برقرار کنید. کدها را در نرم افزار آردوینو کپی کنید. سپس هر یک از کدها را جداگانه آپلود کنید. در هر دو مدل ال سی دی ساده و همراه با راه انداز I2C، محتوای متنی Digispark.ir در صفحه نمایش داده خواهد شد.
وسایل مورد نیاز
ال سی دی ۲*۱۶ به همراه درایور راه اندازی I2C
شیلد ال سی دی آردوینو LCD Shield Arduino
شیلد Arduino Shield 2*16 LCD
شیلد ال سی دی آردوینو Arduino Shield 2*16 LCD مخصوص آردوینو با استفاده از پرکاربردترین ال سی دی کاراکتری و ۶ میکروسوئیچ به برد آردوینو Arduino نصب میشود. از نقاط مثبت شیلد ال سی دی آردوینو Arduino Shield 2*16 LCD دارا بودن ۶ میکروسوئیچ به ترتیب SELECT,LEFT,DOWN, UP, RIGHT,RESET است. این ۶ کلیدجهت انجام فعالیت مختلف در پردازشها میباشد. این مدل ال سی دی به صورت شیلد بر روی آردوینو arduino قرار میگیرد.
فراخوانی کتابخانه
برای راه اندازی شیلد ال سی دی نیاز به فراخوانی کتابخانههای LiquidCrystal و DFR_LCD_Keypad داریم. لینک دانلود کتابخانه LiquidCrystal در صفحه محصول ال سی دی کاراکتری LCD 2×۱۶ در قسمت دانلود قرار دارد. با کلیک بر روی لینک کتابخانه LiquidCrystal را دانلود کرده و مجددا در مسیر Arduino / Library کپی کنید. همچنین برای فعال سازی کلیدهای قرار گرفته شده بر روی شیلد ال سی دی نیاز به فراخوانی کتابخانه DFR_LCD_Keypad داریم. لینک دانلود کتابخانه DFR_LCD_KEYPAD در صفحه محصول شیلد ال سی دی ۲×۱۶ آردوینو در قسمت دانلود قرار دارد. کتابخانه را دانلود و در مسیر Arduino / Library کپی کنید.
معرفی پایه شیلد ال سی دی LCD Shield
برای ارسال دیتا بین آردوینو و شیلد ال سی دی تنها از چند پایه آردوینو استفاده شده است که به معرفی آن ها میپردازیم:
- A0 : پایه A0 برای فراخوانی ۶ کلید قرار گرفته شده بر روی شیلد ال سی دی است و توسط این پایه فرمان ارسال میشود.
- DB4 – DB7 : پایه های D4 تا D7 برای ارسال دیتا بین آردوینو و شیلد ال سی دی استفاده میشود.
- DB8: پایه DB8 یا همان Register برای انتخاب دیتا و سیگنال در نمایشگر استفاده میشود.
- DB9: پایه Enable جهت فعال سازی ال سی دی استفاده میشود.
- DB10: برای کنترل Backlight استفاده میشود.
معرفی توابع
()DFR_LCD_Keypad
برای فعال سازی ۶ کلید نیاز به معرفی تابع آن داریم. همانطور که گفته شد، پایه A0 جهت فراخوانی کلیدها استفاده میشود. تابع DFR_LCD_Keypad به صورت زیر فراخوانی میشود.
DFR_LCD_Keypad keypad(A0, &lcd);
در نهایت برای فراخوانی کلیدها و نمایش تغییرات در متن نیاز به معرفی متغیر سوییچ خواهیم داشت که با انتخاب هر یک از سوییچ ها، محتوا مورد نظر در نمایشگر نشان داده شود.
نمونه کد آردوینو نمایش متن در LCD Shield
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
حال کد سوم را در نرم افزار آردوینو کپی کنید. همانطور که بر روی شیلد ال سی دی مشخص است، دارای ۶ عدد میکروسوییچ است. کد را آپلود کنید. با فشردن کلید RIGHT عبارت Digispark.ir ، کلید UP عبارت Digispark، کلید DOWN عبارت Daneshjookit، کلید LEFT عبارت Theladypi و کلید SELECT عبارت Projects نمایش داده میشود.
راه اندازی ال سی دی کاراکتری ۲۰X2
WH2002A یک نمابشگر ال سی دی کاراکتری ۲۰X2 میباشد که از آی سی داخلی ST7066 در ساختار آن بهره میبرد. رابط پیش فرض ال سی دی ۸۰۰ ۴/۸-bit موازی است. همچنین این مدل با آی سی RW1063 controller IC با پروتکل I2C و SPI در بازار موجود است و اتصالات و سیم کشی آن محدوتر خواهد شد. برعکس تمامی ال سی دی های گرافیکی در این مدل دو ردیف ۸ تایی در سمت راست ال سی دی برای لحیم کاری پایه ها در نظر گرفته شده است. ردیف اول پایه ۱ تا ۱۵ و ردیف دوم پایه ۲ تا ۱۶ است. ترتیب پایه ها بر اساس شماره پین به صورت زیر است:
پس با توجه به توضیحات و تصویر بالا، در ال سی دی گرافیکی ۲۰X2 فقط جای پایه ها تغییر کرده است و تفاوتی درنوع پایه، ساختار و ماهیت آن وجود ندارد. مطابق با تصویر پایه ها را تطبیق داده و اتصالات را انجام میدهیم.
اتصال LCD2x20 به آردوینو
جهت اتصال ال سی دی ۲۰X2 به آردوینو به پایه های دیجیتال و مقاومت نیاز داریم. مطابق با جدول پایه ها در تصویر بالا، ماهیت هر پایه را شناسایی کرده و طبق جدول زیر اتصالات را انجام دهید.
نکات اتصال
- جهت تنظیم شدت نور صفحه یا همان کنتراست از پایه V0 در ال سی دی استفاده میشود. برای اتصال پایه V0 به برد آردوینو به یک مقاومت ۱۰ کیلو نیاز داریم. یک سر مقاومت را به پایه V0 وصل کرده و به GND برد آردوینو اتصال دهید. سر دیگر مقاومت ۱۰ کیلو بدون اتصال باشد.
- پیشنهاد میشود پایه شماره ۱۵ یا همان A آند را به از یک سر به مقاومت ۲۲۰ اهم اتصال داده و سپس به ۵ ولت آردوینو متصل کنید.
- انتخاب پایه های دیتا بین D0 تا D7 آزادنه است و فقط به ساختار آن در کدنویسی دقت کنید:
LiquidCrystal(rs,en,d4,d5,d6,d7) LiquidCrystal(rs,rw,en,,d4,d5,d6,d7) LiquidCrystal(rs,en,d0,d1,d2,d3,d4,d5,d6,d7) LiquidCrystal(rs,rw,en,d0,d1,d2,d3,d4,d5,d6,d7)
کتابخانه Library
کتابخانه مورد استفاده برای ال سی همان Liquidcrystal است که در بخش اول آموزش روش نصب آن نوشته و آموزش داده شده است. با توجه به اینکه آخرین آپدیت این آموزش در مهرماه ۹۹ انجام شده است، آخرین ورژن معرفی شده برای کتابخانه liquidCrystal ورژن ۱٫۰٫۷ است:
کد آردوینو LCD20X2
پس از انجام اتصالات و اطمینان از نصب کتابخانه LiquidCrustal نوبت به تست یکی از برنامه های پیش فرض آردوینو است. کد زیر را کپی و به نرم افزار آردوینو Arduino انتقال دهید.
#include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() { lcd.begin(20, 2); lcd.print("hello, world!"); } void loop() { lcd.setCursor(0, 1); lcd.print(millis() / 1000); }
جهت آپلود برنامه ابتدا نوع برد آردوینو و پورت را مشخص کرده و سپس برنامه را آپلود کنید. عبارت Hello World به همراه کانتر شماره انداز بر روی ال سی دی گرافیکی نمایش داده میشود. جهت تغییر متن در خط زیر عبارت مورد نظر را تغییر دهید:
lcd.print("hello, world!");
انتخاب نوع ال سی دی مورد استفاده در این خط مشخص میشود:
lcd.begin(20, 2);
جهت نمایش عدد و کانتر از دستور زیر استفاده شده است:
lcd.print(millis() / 1000);
با انجام تمامی این موارد ال سی دی راه اندازی شده و آماده تست پروژه است.
وسایل مورد نیاز
ال سی دی ۲*۱۶ به همراه درایور راه اندازی I2C
شیلد ال سی دی آردوینو LCD Shield Arduino
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
سلام واقعا این پست بسیار لازم بود تشکر از شما خانم مهندس که همیشه مطالب مفید قرار میدید
سلام
ازتوجه و دقت نظر شما ممنونم.
امیدوارم مفید واقع شود.
سلام
من یه برد فلزیاب دارم با ۶پایه میخوام ال سی دی کارکتری ۲× ۱۶ روش بزارم
ممنون میشم راهنمایی کنین
با سلام
در این خصوص تجربه ای ندارم و نمیتوانم کمکی کنم.
درود
آموزش خیلی خوبیه من هر دفعه به مشکل عجیب غریبی میخوردم. الان تازه اصولی پیش میرم .
باز هم مرسی برای توضیحات دقیق
سلام
از توجه شما ممنونم.
امیدوارم مفید واقع شده باشد.
سلام
برای ال سی دی ۲/۱۶ نیازی به پتانسیومتر نیست ؟ خیلی از دیتاشیت ها پتانسیومتر داره ولی شما استفاده نکردین واتفاقا خیلی هم نوشته ها واضحه !
سلام
توسط پتانسیومتر وضوح متن و شفاف بودن آن را تنظیم میکنیم که استفاده از آن اختیاری است. بله همانطور که در تصویر و فیلم مشاهده میکنید متن نمایش داده شده کاملا واضح است و نیازی به تنظیم آن نیست.
ببخشید پروژه ای برای این قسمت تعریف نشده؟؟
سلام
در حال حاضر تعریف نشده است. این موضوع بررسی و در صورت امکان پروژه تعریف خواهد شد.
بسیار آموزش عالی و پر محتوایی بود ممنون از شما خانم بلورچیان 🙂
سلام
از توجه ودقت ظر شما ممنونم.
امیدوارم مفید واقع شده باشد.
سلام
من یه شیلد LCD دارم پایه A0 طبق معمول رزرو خود شیلد میخوام یه نمایشگر ضربان قلب راه اندازی کنم یه پالس سنسور دارم اونم برا ارسال دیتا به پایه A0 نیاز داره دیتا رو تویه serial monitor دارم ولی رو نمایشگر نمیاد راه حلی برا این مشکل دارین ؟؟
با تشکر
سلام
پایه A0 در اختیار کلید های قرار گرفته بر روی شیلد است. برای رفع مشکل باید یکی از پایه های دیگر آنالوگ را تعریف کنید، که با تغییر در کد برنامه به راحتی امکان پذیر است.
سلام
من تازه با این برد آشنا شدم و یه پک آموزشی خوب هم تهیه کردم ولی هر کاری کردم نتونستم lcd رو با i2c راه اندازی کنم .همه چیزو چندین بار چک کردم ، آموزش شما رو هم کلمه به کلمه خوندم ولی نمیشه.از هر کدوم ۴ تا داشتم که هیچکدوم جواب نمیده البته lcd ها بدون i2c کار میکنن.لطفا راهنمایی بفرمایید
سلام
لطفا اتصالاتی که انجام داده اید را بیان کنید تا بتوانم راهنمایی کنم.
سلام خانم مهندس خسته نباشید.
من یک lcd از بازار تهیه کردم ولی محل قرار گیری پایه ها و تعدادشون منو به مشکل در دونستن شماره هر پایه مواجه کرد.
بی زحمت بگید هر پایه پایه ی چندم هستش
http://s8.picofile.com/file/8321790868/20180315_194227.jpg
http://s8.picofile.com/file/8321791018/20180315_194241.jpg
با تشکر…
سلام
تشخیص پایه ها و بررسی آن به عهده خودتان است و برای این ال سی دی باید دیتاشیت کالا را مطالعه کنید.
سلام من این شیلدو از دانشجوکیت خریدم (https://daneshjookit.com/%D9%86%D9%85%D8%A7%DB%8C%D8%B4%DA%AF%D8%B1/1978-arduino-lcd-shield.html)
وقتی دکمه right میزنم عبارت digispark.ir نشون میده اما بقیه دکمه ها رو میزنم چیزی نشون نمیده . چیکار کنم؟
سلام
کتابخانه مربوط به Kepad را نصب کردید؟ اگر کلید را برای چند ثانیه نگه دارید، تغییری ایجاد میشود؟
با سلام
برای متصل کردن سنسور به شفیلد LCD باید از چه دستوری استفاده نمود؟
با تشکر.
سلام
برای هر سنسور نیاز به کتابخانه مرتبط به آن است. کتابخانه سنسور مورد نظر را فراخوانی کنید و سپس کدها را ترکیب کنید.
سلام خسته نباشید دوتا سوال داشتم
١-چجوری می شه مقدار داده یک سنسور روی lcdنمایش داد
٢-در شیلد lcdکه داری ۶دکمه هم هست می شه استفاده نکنیم از کلید ها در بعضی از پروژه ها که نیازی نیست
سلام
از توجه شما ممنونم.
در این آموزش نحوه ی فراخوانی کتابخانه و دستورات لازم برای نمایش مقادیر سنسور ها و یا حتی متن در ال سی دی کامل توضیح داده شده است. با توجه به تابع هایی که در متن آموزش گفته شده، باید آن را به کدهای برنامه مورد نظر خود تعمیم دهید.
در خصوص سوال دوم هم بله دقیقا استفاده از کلیدها کاملا دلخواه است و میتوانید آن ها را تعریف نکنید. سوالات خود را از همین طریق بپرسید تا پاسخ دهم.
با سلام
آیا این LCD ها کد هایشان یکی است و فرقی ندارند؟
باتشکر
سلام
بله امکان پذیر است.
برای دو ال سی دی کاراکتری ساده و کاراکتری همراه با درایور I2C دو کد یکسان است تنها باید کتابخانه مخصوص هر یک و نوع ال سی دی را فراخوانی کنید. برای کد سوم که مربوط به شیلد ال سی دی است، سوییچ ها و کتابخانه مربوط به آن تعریف شده است و باید تغییر دهید.
احسنت بر شما خانم مهندس که اینقدر کامل و با حوصله توضیح میدهید. انشاءالله توفیق یابید.
سلام
از توجه و دقت نظر شما بسیار ممنونم.
امیدوارم مفید واقع شود.
سلام
من یک lcd 20*4 دارم
وقتی یک داده ۲۴ بیتی رو دریافت میکنم و میخام روی lcd در سطر اول و دوم نشون داده بشه ، ۲۰ بیت اول بدون مشکل در سطر اول قرار میگیره اما ۴ بیت اخر به جای سطر دوم ، روی سطر سوم قرار میگیره .
من چیکار کنم که ۴ بیت اخر بیاد روی سطر دوم ؟
سلام
در این خصوص باید تابع (lcd.setcursor(col,row را تغییر دهید و موقعیت مکان نما را بر روی صفحه نمایش مشخص کنید.
من از این تابع استفاده کردم ، مشکل اینجاست که دیتای من ۲۴ بیت و ۲۰ بیت اول در سطر اول قرار گرفته و مشکلی نیست. اما ۴ بیت اخر به جای اینکه بیاد سطر دوم ، رفته سطر سوم.
من که نمیتونم جداگانه برای ۴ بیت اخر دوباره از تابعی که شما گفتید استفاده کنم!
سلام مجدد
بنده بررسی نکردهام. ولی مواردی از جمله اینکه پروتکل ارتباطی I2C است یا بدون I2C و همچنین در قسمت lcd.begin(16, 2); موارد را درست وارد کرده باشید. از دیگر کاربران که در این زمینه تجربه مشابهی دارند، تقاضا دارم تا در این بحث شرکت کنند.
سلام،دو کد دستوری زیر برای هر چهار سطر تعریف شود:
;(lcd.setCursor(col, row
;(lcd.print(“text
می توانید مثال display در کتابخانه liquid cristal را الگو قرار دهید و این تغییرات را در آن اجرا کنید.در هر صورت محدودیت ۲۴ کاراکتر وجود دارد،و حروف اضافه در فضای خالی سطرهای دیگر تاثیر گذارند.
با سلام
از توجه و توضیحات شما ممنونم.
درود برشما، بعد از آپلود برنامه ،LCD فقط صفحه آبی نمایش میدهد.
سلام
در ابتدا پیشنهاد میکنم، از نمونه کد قرار گرفته شده در این آموزش استفاده کنید. سپس در صورت خطا و مشکل از همین طریق ارسال کنید تا بررسی کنم.
همچنین یک مولتی ترن بر روی شیلد قرار گفته است، میزان نور صفحه را با آن تنظیم کنید و نتیجه را اعلام کنید.
مولتی ترن تنظیم نبود.
مشکل حل شد.
سپاس از راهنمایی شما.
بسیار عالی
موفق باشید. در صورت برخورد به مشکل از همین طریق اقدام نمایید.
ممنون،حتما.
اگه بخواهیم با یک بار فشردن یکی از میکرو سویچ های lcd متن مورد نظر بطور دائم نمایش داده بشه، باید چه تغییری در برنامه ایجاد کرد؟
سلام مجدد
برای هر سوییچ (switch (key میتوانید Delay تعیین کنید و زمان برای نمایش متن خاص را مشخص کنید.
سلام وقت بخیر
من هم مشکلم صفحه ابی هست و مولتی ترن راتغییر دادم ولی نوشته ای نمایش نمیدهد
سلام
از کدام مدل ال سی دی کاراکتری استفاده میکنید؟
و سوال بعدی من مربوط به متحرک کردن متن از چپ به راست است.
در همین آموزش تابع شماره ۱۳ ()LeftToRight و ()RightToLeft را مطالعه کنید.
با قرار دادن این دستور ها با خطا در خط بعدش مواجه میشم.
Arduino: 1.8.1 (Windows 10), Board: “Arduino/Genuino Uno”
C:\Users\Asus\Desktop\lcd_shild\lcd_shild.ino: In function ‘void loop()’:
lcd_shild:36: error: expected ‘;’ before ‘case’
case KEY_RIGHT:
^
Multiple libraries were found for “LiquidCrystal.h”
Used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal.library.daneshjookit
Multiple libraries were found for “DFR_LCD_Keypad.h”
Used: C:\Users\Asus\Documents\Arduino\libraries\DFR_LCD_Keypad-master
Not used: C:\Program Files (x86)\Arduino\libraries\DFR_LCD_Keypad-master
exit status 1
expected ‘;’ before ‘case’
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
چه دستوری قرار میدهید؟
delay(900)
()LeftToRight
تاخیر Delay را باید در شرط های Switch برای هر کلید جداگانه قرار دهید.
همچنین برای Left to Right باید به صورت زیر فراخوانی کنید.
;()lcd.rightToLeft
ok
دستور delay درست شد . ولی برای متحرک کردن متن ، فقط متن را به چپ شیفت داد و متحرک نشد.
در متن آموزش تابع ۱۱ و ۱۲ برای حرکت متن در ال سی دی به کار برده میشود.
تابع scrollsisplayleft و تابع autoscroll را فراخوانی کنید.
این دستور
;()lcd.autoscroll
مثل قبلی متن را شیفت داد.
مشکل برطرف شد ؟
خیر
سوالات خود را بپرسید تا راهنمایی کنم.
من فقط می خواهم مثل تابلو روان از یک سمت به سمت دیگه حرکت کنه.
باید در کدها از دستور For برای شیفت دادن محتوای مورد نظر به سمت چپ یا راست استفاده کنید.
در این خصوص نمونه کد دیگری در آموزش زیر وجود دارد که میتوانید از آن استفاده کنید.
LCD
این قسمت از برنامه ای که آقای قربانی نوشتند را در برنامه شما قرار دادم، ولی عدد ۱۲۳۴۵۶ یک بار از چپ و بار دیگه از راست نوشته شد. ولی با این حال ثابت بود و حرکتی نمی کرد.
delay(1000);
lcd.clear();
lcd.rightToLeft();//راست به چپ کردن
lcd.setCursor(15, 0);
lcd.print(“123456”);
lcd.leftToRight(); //چپ به راست کردن
lcd.setCursor(0, 0);
lcd.print(“123456”);
delay(2000);
سلام مجدد
دقت کنبد برای جا به جایی متن حتما باید تابع های lcd.scrollDisplayLeft و lcd.scrollDisplayRight فراخوانی کنید.
دستورات for هم با خطا مواجه میشد.
for (int thisChar = 0; thisChar < 10; thisChar++) {
lcd.print(thisChar);
delay(500);
خطا
Arduino: 1.8.1 (Windows 10), Board: “Arduino/Genuino Uno”
C:\Users\Asus\Desktop\lcd_shild\lcd_shild.ino: In function ‘void setup()’:
lcd_shild:16: error: ‘lt’ was not declared in this scope
for (int thisChar = 0; thisChar < 10; thisChar++) {
^
lcd_shild:16: error: expected ‘)’ before ‘;’ token
for (int thisChar = 0; thisChar < 10; thisChar++) {
^
lcd_shild:16: error: ‘thisChar’ was not declared in this scope
for (int thisChar = 0; thisChar < 10; thisChar++) {
^
lcd_shild:28: error: a function-definition is not allowed here before ‘{‘ token
{
^
lcd_shild:76: error: expected ‘}’ at end of input
}
^
Multiple libraries were found for “LiquidCrystal.h”
Used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal.library.daneshjookit
Multiple libraries were found for “DFR_LCD_Keypad.h”
Used: C:\Users\Asus\Documents\Arduino\libraries\DFR_LCD_Keypad-master
Not used: C:\Program Files (x86)\Arduino\libraries\DFR_LCD_Keypad-master
exit status 1
‘lt’ was not declared in this scope
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
دقت کنید از کدام یک از کدها استفاده میکنید و اینکه کتابخانه های هر یک را به درستی فراخوانی کنید. سپس همانطور که در کامنت قبل توضیح دادم، باید از تابع Scroll برای جا به جایی متن در ال سی دی استفاده کنید. مجددا تست کنید و نتیجه را از همین طریق اعلام نمایید.
دقت کنید هر دستور for برای تعداد حرکت به سمت راست یا جپ میباشد. کدها را باید تحلیل کنید و سپس جایگزین کنید. مجددا موارد گفته شده را تست کنید و نتیجه را اعلام کنید حتما راهنمایی خواهم کرد.
سلام من دستورات lcd to i2c رو نوشتم ولی روی ال سی دیم چیزی نمایش نداد
ممنون میشم راهنماییم کنید اتصالات رو هم درست انجام دادم
سلام
آیا مطابق با متن آموزش پیش رفته اید؟ برای اتصال i2c باید کتابخانه crystalLiquid_I2C را فراخوانی کنید. سپس باید نوع ال سی دی مشخص شود.
موارد را چک و اعلام کنید تا راهنمایی کنم.
مشکل حل شد از نور ال سی دیم بود
بسیار عالی
در صورت برخورد به مشکل از همین طریق اقدام نمایید تا راهنمایی کنم.
با سلام و خسته نباشید. تشکر از آموزش های خوبتون.
من ماژول ارتباط سریال I2C برای LCD کاراکتری رو با برد آردوینو UNO میتونم راه اندازی کنم ولی با برد آردوینو Mega 2560 هیچی نمیاره، از کنتراستشم نیست. پایه های SDA رو به پایه ۲۰ و SCL رو به پایه ۲۱ وصل کردم (بر عکسم وصل کردم) هیچی نمیاره.
لطفا راهنمایی فرمایید. با سپاس
سلام
از توجه شما ممنونم.
بررسی کردم و مشکلی در نمایش متن با آردوینو مگا۲۵۶۰ نیست. پتانسیومتر را تغییر دهید و از نمونه کد همین آموزش استفاده و سپس نتیجه را اعلام کنید.
عکس را ضمیمه کردم، مشاهده کنید.
با سپاس از راهنماییاتون.
مشکل از برد آردوینو مگا من بود با یکی دیگه تست کردم مشکلی نداشت و نشون داد.
با تشکر
سلام مجدد
خواهش میکنم. در صورت برخورد به مشکل از همین طریق اقدام نمایید.
خسته نباشید ؛
در تابع; ()lcd.clear کل صفحه پاک میشه.
اگه بخواهیم قسمتی از صفحه حذف شود از چه تابعی استفاده کنیم.. ؟
سلام
در این خصوص تجربه ای در مورد نداشته و تست نکرده ام. از دیگر کاربران تقاضا دارم در صورت داشتن اطلاعات در این بحث شرکت کنند.
سلام.ممنون از آموزشتون.
من وقتی کد راه انداز با ic2 رو آپلود می کنم فقط اول عبارات ینی c , d رو فقط نمایش می ده
می شه راهنمایی کنید مشکل از کجاست؟
سلام
از توجه شما ممنونم.
با استفاده از پتانسیومتر بر روی ال سی دی کنتراست را تنظیم کنید. اتصالات را مجددا چک کنید. نتیجه را اعلام کنید تا در صورت برطرف نشدن مشکل راهنمایی کنم.
نخیر.درست نشده.لطفا بیشتر راهنمایی فرمایید.
با سپاس
سلام
از کد همین آموزش استفاده کرده اید؟
سلام بله از همین کد استفاده کردم
سلام مجدد
از چه مدل ال سی دی استفاده میکنید؟
سلام خانم
چقدر اون بخش معرفی توابع عالی و خوب بود دمتون گرم، امیدوارم این نحوه آموزش (معرفی جزئیات) بیشتر بشه.
سلام
از توجه و دقت نظر شما بسیار ممنونم.
امیدوارم مفید واقع شود.
لطفا به صفحه حمایت از دیجی اسپارک هم مراجعه کنید.
سلام من میخوام از دکمه های up و down شیلد lcd به عنوان تنظیم کننده سطح رطوبت استفاده کنم ولی وقتی داخل دستور switch و مثلا KEY_UP میگم :
if(moistureSet!=100)moistureSet++; عمل نمیکنه
قبلشم مقدار انالوگ سنسور رو با دستور map بصورت درصد تعریف کردم و MOISTURE_SET با define 0 گذاشتم و با static int اینارو برابر قرار دادم
به نظر شما چیکار کنم؟
سلام
در این مورد باید کدها بررسی شود.
پیشنهاد میکنم از آموزش های منتشر شده با شیلد ال سی دی LCD ایده بگیرید.
آموزش راه اندازی ۳ مدل ال سی دی کاراکتری
با عرض سلام و احترام خدمت سرکار خانم مهندس
ضمن تشکر از مطالب مفید شما من یک مشکل داشتم، من شیلد LCD و keypad را به برد Arduino UNO وصل میکنم و ارتباط کامل برقرار می شود و متن بر روی LCD نمایش داده می شود اما زمانی که به برد Wemos D1 وصل میکنم متن نمایش داده نمی شود
لطفا در صورت امکان راهنمایی فرمایید
باتشکر از شما
سلام
دقت کنید برای راه اندازی با Wemos نیاز به فراخوانی دو کتابخانه خواهید داشت.
ArduinoJson
ESP8266WiFi
سلام
برای اتصال lcd 2*16 به اردوینو حالا متن یا اون کاراکتری رو که میخام نشون نمیده همش مربع از پتانسیومتر استفاده کردم فقط همون مربع ها کمرنگ و پرنگ شدن
ممنون میشم راهنمایی کنید
سلام
به احتمال زیاد اتصالات را به درستی انجام نداده اید. در متن آموزش معرفی تابع فراخوانی ال سی دی در بخش اول اتصالات کامل گفته شده است. طبق آموزش پیش بروید و نتیجه را اعلام کنید.
سلام، من باوجود درست بودن کدها و هم چنین اتصالات مربوط به برد آردوینو ولی موقع آپلود خروجی نمی گیرم. میخواستم بدونم مشکل از چیه؟
سلام
مدل LCD مورد استفاده را اعلام کنید تا راهنمایی کنم.
سلام
من scl رو به a5 و sda رو به a4 وصل کردم vcc و gnd هم متصل کردم
کتابخانه ها هم نصب هستند lcd هم ۱۶۰۲ هست حتی کد همین بخش روهم استفاده میکنم اما بعد از اپلود فقط lcd ابی میشه و هیچ کاراکتری نمایش نمیده پتانسومتر هم تغییر میدم ولی بازم هم چیزی نشون نمیده
کاری هست که بتونم انجام بدم این مشکل حل شه؟
سلام
اگر از آردوینو UNO و LCD با درایور I2C استفاده میکنید، پایه SCL به پایه A5, پایه SDA به پایه A4 متصل میشود.
تست کنید و نتیجه را از همین طریق اعلام کنید.
بله اول هم عرض کردم اینارو به همین شکل متصل کردم
lcd هم به دستور ها عمل میکنه و طبق کد backlight و nobacklight رو باهمون delay که بش وارد شده انجام میده اما کاراکتر هارو نشون نمیده
خود lcd رو هم چک کردم بدون درایور عمل میکنه
با توجه به توضیحات شما، مشکلی اتصالات نیست. دقت کنید nobacklight به عنوان کامنت اضافه شده است و نباید دستور باشد. همین کد را بدون تغییر کپی کنید و یک عکس ضمیمه کنید تا بررسی کنم.
عذرخواهم برای من در قسمت نظرات قابلیت ارسال تصویر موجود نیست
تصویر رو اگر ممکنه ایمیل کنم
در این خصوص از سایت های آپلود عکس استفاده کنید و لینک آن را ضمیمه کنید.
این خدمت شما
تصویر کد و اتصالات و عملکرد lcd
http://uupload.ir/files/dfvy_photogrid_1534175282842.jpg
به احتمال بسیار زیاد باید درایور I2C را پیدا کنید. در این کد از درایور ۰X27 استفاده شده و باید آن را تغییر دهید.
برای اینکار کد آردوینو I2C Scannner را اجرا کنید تا درایور شناسایی گردد.
اون رو هم بررسی کردم همون x27 هست حتی با x3f اصلا lcd کار نمیکنه
ممکنه مشکل از کتابخونه باشه
؟
به احتمال زیاد ایراد از درایور I2C هست ولی باز هم موارد دیگر مثل کتابخانه و یا آپدیت جدید آن را بررسی کنید.
سلام وقت بخیر
ضمن تشکر از زحمات شما ممکنه بفرمایید چطور میتونم ادامه متنم به خط بعدی منتقل کنم؟
از دستور for به این شکل استفاده کردم
for(Serial.available()=1,Serial.available()>17,Serial.available()++){
lcd.setCursor(2,0);
{ lcd.write(Serial.read());
for(Serial.available()=16,Serial.available()>33,Serial.available()++){
lcd.setCursor(2,0);
} lcd.write(Serial.read());
اما گویا درست نیست و ارور میده
ممنون میشم مشکل رو اصلاح بفرمایید
سلام
این کد مربوط به چه برنامه ای است؟! لطفا واضح و شفاف توضیح دهید.
ببینید میخوام با ارتباط سریال یه پیام رو که بیشتر از ۱۶ کاراکتر هست رو lcd نمایش بدم اما طبیعتا همش نمایش داده نمیشه دیگه
برای همین میخوام از خط دوم lcd هم برای نمایش بقیه متن استفاده کنم به طوری که کاربر متن مثلا ۲۰ کاراکتری رو ارسال کنه و خودکار ۱۶ کاراکتر در خط اول قرار بگیره و ۴ کاراکتر دیگه بجای حذف شدن به خط بعد منتقل بشه
کد برنامه ناخوانا است و امکان تحلیل وجود ندارد. به عنوان مثال اگر متن مورد نظر شما بیش از ۳۲ کاراکتر است، باید آن را جدا کنید و برای اینکار باید از تابع()string.length و (string.substring(from, to استفاده کنید.
ببخشید من برای یک پروژه که آردیونو همیشه باید روشن باشد از lcd استفاده کردم که اولش همه چی خوبه ولی بعد تقریبا ۴ ساعت دیگه هیچی رو lcd نشون نمیده وقتی هم پایه هاشو قطع و وصل میکنم که شاید درست شه فقط یه سری علامت سوال و فلش و اینا میاره یعنی همه چی خوب کار میکنه و درسته فقط هیچی رو صفحه نشون نمیده وقتی که آردیونو رو ریست میکنم دوباره درست میشه .
به نظر شما چیکار میتونم بکنم که بدون ریست کردن همیشه درست کار کنه؟
سلام
از کدام مدل ال سی دی LCD استفاده میکنید؟
همون اولی که شما توضیح دادین
در این خصوص باید تغذیه را بررسی کنید.
هیچ مشکلی در مدت زمان بالا برای برد و اتصالات به وجود نخواهد امد و این مورد قبلا توسط بنده تست شده است.
از چه تغذیه ای استفاده میکنید؟
من یه دونه شلید کنترل موتور گذاشتم رو برد آردیونو همون که کتابخونش AFMotor هست بعد ورودی ۱۲ ولت ۵۰۰ آمپر رو به همون شیلده وصل کردم .
در کامنت قبل توضیح داده شد.
بررسی و نتیجه را اعلام کنید.
من یه دونه شلید کنترل موتور گذاشتم رو برد آردیونو همون که کتابخونش AFMotor هست بعد ورودی ۱۲ ولت ۵۰۰ میلی آمپر رو به همون شیلده وصل کردم .
طیق بررسی های انجام شده، این مورد مشکل نرم افزاری است و باید کد برنامه را بررسی نمایید.
حتما از این طریق نتیجه را اعلام کنید تا کاربران دیگر هم از تجربیات شما استفاده کنند.
بله مشکل نرم افزاری بود
یه متغیر تو برنامه هی تا ۷۲۰۰ میرفت بعد دوباره صفر میشد که اول با int تعریفش کرده بودم بعد که سرچ کردم و اینا به این نتیجه رسیدم که با unsigned long شاید درست شه که تا حالا مشکلی نداشته امیدوارم که دوباره اونطور نشه 🙂 راستی تو این پروژه خیلی آموزش های مختلفتون کمکم کرد میخواستم ازتون تشکر کنم
سلام مجدد
خواهش میکنم، امیدوارم مفید واقع شده باشد.
بسیار عالی، از اینکه نتیجه پروژه و روش حل مشکل آن را با من و دیگر کاربران به اشتراک گذاشتید، صمیمانه سپاسگزارم.
همچنین در صورت علاقه، میتوانید جهت حمایت از دیجی اسپارک، پروژه خود را با هشتگ های دانشجوکیت و دیجی اسپارک منتشر کنید. در این خصوص دو لینک قرار میدهم و میتوانید قوانین آن را مطالعه نمایید.
موفق باشید.
حمایت از دیجی اسپارک
روش دریافت بن ارسال رایگان دانشجو کیت
سلام
میخواستم که سریال مانیتور رو رویlcdنمایش بدم….چیکار میتونم بکنم
بسته به ال سی دی مورد استفاده، فراخوانی دستورات کتابخانه ال سی دی متفاوت است. در این آموزش نحوهی راه اندازی ۳ مدل ال سی دی گفته شده است.
از چه ال سی دی استفاده میکنید تا بتوانم راهنمایی کنم.
lcd 16*2 کارکتری……میخوام که اطلاعات کارت rfid ک تو سریال مانیتور برنامه اردینو نمایش داده میشه روی lcdهم بتونم ببینم…ایا میشه؟
بله هیچ محدودیتی ندارد.
باید طبق همین آموزش کتابخانه و توابع LCD را در کد برنامه اضافه کنید.
از کدهای همین آموزش به راحتی میتوانید استفاده کنید.
۱-پایه های دیجیتال اردینو پرشده و فقط ۴ تا خالی هست…با این چهارتا پایه و یا پایه های انالوگ اردینو،میتوان lcd را متصل کرد؟
۲-هم چنین ماژول i2c ندارم.بدون این ماژول میشود؟
در خصوص سوال اول کامل در متن آموزش توضیح داده شده است:
برای اتصال پایههای ال سی دی LCD به پایه های دیجیتال Digital آردوینو، توجه به یک نکته اهمیت دارد. هر یک از پایههایی که انتخاب میکنید باید در کد برنامه معرفی شود. به عنوان مثال اگر از پایههای ۱۲,۱۱,۵,۴,۳,۲ آردوینو استفاده میکنید، باید به صورت زیر در کد آردوینو تعریف شود:
(LiquidCrystal lcd (12,11,5,4,3,2 دقت داشته باشید میتوانید از همان پایه های اشتراک بگیرید و به ال سی دی متصل کنید.
سوال دوم : بله میتوانید از ماژول lcd کاراکتری استفاده کنید.
با سلام و خسته نباشید من موضوعاتو کمو بیش مرور کردم عالی هستید . ادامه بدید…
سلام
از دقت نظر و توجه شما ممنونم.
صفحه زیر را مطالعه کنید.
حمایت از دیجی اسپارک
سلام
آموزش خوبی بود
من کد هارو با ال سی دی با i2c آپلود کردم ولی فقط یک حرف رو نمایش میده خط اول D و خط دوم C نمیدونم مشکلش چیه
خودم هم هر جور نوشتم فقط حرف اولو تایپ کرد
بردم آردوینو نانو هست
سلام
ابعاد ال سی دی چیست و کد I2C را بررسی کردید؟
سلام، بنده هنگام کامپایل کد، روی خط
lcd.begin(16, 2);
ارور میگیرم.
No matching function for call to ‘LiquidCrystal_I2C::begin(int, int)
وقتی پارامتر های ورودی فانکشن رو حذف میکنم برنامه کامپایل میشه ولی روی Lcd چیزی نشان داده نمیشود.
سلام
از چه مدل ال سی دی استفاده میکنید؟ ساده یا با درایور I2C?
سلام خسته نباشید، ببخشید تو این قسمت کد
۱
LiquidCrystal_I2C lcd (0x27, 16, 2);
عبارت ۰x27 ینی چی؟ و برای چیه اصن؟
سلام
همانطور که در متن آموزش بخش معرفی توابع راه اندازی ال سی دی توضیح دادم، طبق دستورات کتابخانه Liquid crystal باید نوع ال سی دی و کد I2C آن مشخص گردد. به عنوان مثال من در این آموزش از ال سی دی ۲*۱۶ استفاده کرده ام و کد I2c به صورت ۰X27 است.
سلام و عرض خسته نباشید
من این ارور رو دارم no matching function for call to ‘LiquidCrystal_I2C::begin(int, int)’
و از i2c هم استفاده می کنم لطفا راهنمایی کنید
از کد این آموزش استفاده میکنید؟
بله
مطمئن شوید که کتابخانه LiquidCrystal_I2C به درستی نصب شده باشد. برای انتقال کدها از کلیدهای میانبری که برای انتقال کدها در نظر گرفته شده است، استفاده کنید.
مشکل از کتابخانه بود از سایت خودش دانلود کردم حل شد
بازم ممنون
بسیار عالی
موفق باشید.
سلام
برای اینکه دمای نمایش داده شده روی lcd بعداز ٣٠ ثانیه شیفت پیدا کنه به خط پایینی باید چه کدی نوشت؟ و دمای جدید روی خط اول نمایش داده بشه
سلام
در این خصوص باید ابتدا از delay استفاده کنید و زمان مورد نظر خود را تعیین کنید. سپس برای انتقال متن به خط بعدی از دستور ;(lcd.setCursor(col, row استفاده نمایید.
سلام
بسیار عالی
سلام
از توجه شما ممنونم.
سلام مهندس.خسته نباشید.
من برای ساخت یه دستگاه از lcd 16×۲ کارکتری استفاده کردم.
و البته شامل فتوسل و lm35 و mq7 وماژول بلوتوث و رله هم هست.
مشکلم اینجاست که نور فونت ال سی دی اغتشاش داره.و واقعا کلافه شدم.
میخواستم راهنماییم کنید و احتمال های موجود برای این اتفاق بهم بگید؟
و اینکه آیا میتونه مشکل از برد اردوینو نانو و کامپایل اشتباهی باشه؟
ممنون
سلام
برای بررسی مشکل تغذیه مورد استفاده را بیان کنید. همچنین از کدام یک از مدل های LCD استفاده میکنید؟ کاراکتری ساده یا I2C?
از رابط usb ولی حتی با باتری کتابی هم تست کردم بدتر شد که بهتر نشد.
اما بقیه اجزای مدار کاملا درست عمل میکنند.
از ال سی دی کاراکتری ساده(سبز رنگ) با اتصال ۱۲پین از ۱۶پین.
با توجه به اتصالات شما و ماژول هایی که در پروژه استفاده کرده اید و اینکه از رابط usb برای تغذیه استفاده میکنید به نظر میرسد جریان کافی در مدار وجود ندارد و سبب نویز میگردد. در این مدار نیاز به جریان کافی دارید و یک باتری پاسخگو نیست. نتیجه را از همین طریق اعلام نمایید.
سلام مجدد
از من خواستید که مشکل ام رو اینجا مطرح کنم.
من از سنسور MQ135 برای گاز CO2 استفاده میکنم و میخوام مقدار گاز روی نمایشگر نشان داده بشه.
نمایشگر من به درستی کار می کنه و نوشته رو نشان میدهد و با سنسور DHT22 هم به درستی کار میکنه
حالا من دستورات سنسور MQ135 رو که وارد میکنم نمایشگر دیگه هیچی نشون نمیده ولی کماکان مقادیر رو توی سریال مانیتور میبینم.
تاکید کنم که فقط وقتی اولین دستور MQ135 رو وارد میکنم این اتفاق می افته.
ممنون میشم راهنمایی کنید که چه کاری کنم؟
سلام مجدد
از توجه شما ممنونم.
با توجه به اینکه نمایشگر با کدهای دیگر همانند DHT به درستی مقادیر را نمایش میدهد، به نظر میرسید کد آردوینو پروژه MQ135 دارای ایراداتی باشد.
منظور از اولین دستور MQ135 چیست؟
مثلا
float rzero = gasSensor.getRZero();
البته اینجا کد به درستی نیومد 🙁
ولی منظور این که برای اینکه بفهمم ایراد از کجاس خط به خط کد ها رو تست کردم و فقط وقتی این مشکل رو دارم که یکی از دستور های مربوط به کتابخانه MQ135 اجرا بشه
برای تست ال سی دی از نمونه کد آموزش زیر که مربوط به راه اندازی سنسور MQ5 است استفاده کنید. در این آموزش مقدار گاز خوانده شده بر روی ال سی دی نمایش داده میشود. کد را تست و نتیجه را اعلام کنید.
آموزش ساخت کیت هشدار نشت گاز شهری با سنسور MQ5 بر پایه آردوینو
این پست از I2C استفاده کردین
LCD ام به صورت مستقیم (از پایه های دیتا مثل آموزش DHT 11 ) وصل شده.
هیچ تفاوتی ندارد. تنها باید تابع فراخوانی ال سی دی را تغییر دهید.
لطفا این آموزش را کامل مطالعه کنید و سپس در کد پروژه MQ5 چایگزین کنید. دقت کنید بسیار ساده است.
ننیجه را اعلام کنید.
انجام دادم.
کالیبریشن روی نمایشگر انجام میشه.
پیغام SENSOR ACTIVE میاد ولی بعدش دیگه هیچی نشون نمیده.
کماکان سریال مانیتور مقادیر رو نشون میده.
(من یه تستی هم کردم اونم این بود که به جای دستور int gasSensor = analogRead(gasPin); مقدار ثابت گذاشتم یعنی int gasSensor = 10; در این حالت همه چی به صورت نرمال کار میکنه …….)
تشکر فراوان از پیگیریی که انجام دادین .
الان مشکل من حل شد 🙂
– با جابجا کردن پایه ی VSS و اتصال اون به یک GND دیگه مشکل حل شد-
ولی اینکه چه ارتباطی داره رو میدونین؟
خواهش میکنم.
بله همانطور که گفتم اتصالات را باید چک کنید. در آموزش راه اندازی ال سی دی نحوهی اتصال کامل توضیح داده شده است. برای اتصال حتما باید به تغذیه VCC و GND متصل گردد.
این تغییری ارتباطی به نمایش مقادیر در ال سی دی ندارد و تنها شروع مقادیر اولیه برای نمایش را تغییر میدهید.
برای برطرف شدن مشکل باید اتصالات و یا کدهای پروژه را بررسی کنید.
این دستور یک تعریف متغیر و فراخوانی آن است و برای نمایش داده با رقم اعشار استفاده میشود و تاثیری بر نمایش و عدم نمایش محتوا ندارد.
بله و مشکل من همین است 🙂
من الان از کد های بالا هم استفاده میکنم و نتیجه رو میگم.
بسیار عالی
پس از بررسی نتیجه را اعلام کنید.
سلام با تشکر
سلام
خواهش میکنم.
با سلام
من با یگ مشکل روبرو شدم
اینکه بعد از آ\لود کردن برنامه فقط کاراکتر اول روی lcd نمایش داده میشه و مابقی کاراکتر ها نمایش داده نمی شه
علت چی میتونه باشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
با سلام
از کدام مدل ال سی دی استفاده میکنید؟
باسلام
وقتی از مبدل i2c استفاده می کنم بعد از آ\لود کردن برنامه فقط کاراکتر های اول نمایش داده میشه و مابقی کاراکتر ها نمایش داده نمیشه؟؟؟
با سلام
ممکن است اتصالات به درستی انجام نشده باشد. از مبدل جداگانه استفاده میکنید؟
بله از مبدل جداگانه استفاده میکنم توی انجمن آردینو سرچ کردم میگن مشکل از کتابخونه است الان کتابخونه برای شما بدونه مشکله پس نباید اینجا ایجاد مشکل کنه
سلام مجدد
ورژن آخرین کتابخانه LiquidCrystal_I2C در نرم افزار شما چیست؟
ممنون که پیگیرانه پاسخ گو بودید مشکل برطرف شد ممنون از اموزشای عالیتون
خواهش میکنم.
موفق باشید.
سلام من از ال سیدی ۴*۲۰ استفاده می کنم ولی برای ارتباط دو سیمه مشکل دارم …ال سی دی هیچی نشون نمیده …… بتانسیومتر رو تغییر دادم ولی فایده نداشت … آدرس رو هم تغییر دادم هم ۰x27 و هم ۰x3f v رو استفاده کردم بازم فایده نداشت . اتصالات هم درست هست … کدها رو هم درست زدم …. مشکل از کجاست ؟
سلام
آیا ابعاد ال سی دی در بخش liquidcrystal_I2c وارد شده است؟
سلام ببخشید من به یه مشکلی بر خوردم میخوام اگه میتونید راهنمایی کنید.من میخوام تو ال سی دی کاراکتری یه کلمه مثل (HELLO) نشون بدم بعد با فشردن یه کلید این کلمه از رو ال سی دی پاک بشه بعد به مدت ۳ ثانیه کلمه دیگه ای مثل(START) نمایان بشه بعد باز ال سی دی پاک بشه و دوباره همون کلمه (HELLO) رو نمایش بده. میخوام بدونم چی کار باید کنم یعنی چه برنامه ای بنویسم که این کارو انجام بده
با سلام
در این خصوص بایستی از دستور switch case استفاده کنید. برای هر مرحله یک case تعریف کرده و دستورات را بنوسید.
سلام ببخشید من به یه مشکلی بر خوردم میخوام اگه میتونید راهنمایی کنید.من میخوام تو ال سی دی کاراکتری یه کلمه مثل (HELLO) نشون بدم بعد با فشردن یه کلید این کلمه از رو ال سی دی پاک بشه بعد به مدت ۳ ثانیه کلمه دیگه ای مثل(START) نمایان بشه بعد باز ال سی دی پاک بشه و دوباره همون کلمه (HELLO) رو نمایش بده. میخوام بدونم چی کار باید کنم یعنی چه برنامه ای بنویسم که این کارو انجام بده
با سلام
در کامنت قبل پاسخ داده شد، بررسی و در صورت سوال از همین طریق اقدام نمایید.
عرض سلام و خسته نباشی
ببخشید من مراحلی که گفتید برای راه اندازی ال سی دی قدم به قدم اجرا کردم نمیدونم چرا ال سی دی روشن میشه و شانزده کارکتر سطر اول به صورت مربعی روشن میشه اگه میشه راهنمایی کنید ممنون
با سلام
از کدام مدل ال سی دی و کدام ورژن کتابخانه استفاده میکنید؟
از ال سی دی ۲*۱۶
واینکه ورژن نرم افزارم۱,۸,۵هستش
سلام مجدد
از منو نرم افزار آردوینو وارد شده و سپس از منو Sketch گزینه include library بر روی manage libraries کلیک کنید. سپس در کادر فیلتر عبارت liquidcrysal سرچ کنید. در صورتیکه گزینه آپدیت وجود دارد، کتابخانه را آپدیت نمایید.
بررسی و نتیجه را از همین طریق اعلام فرمایید.
سلام
مشکل حل شد.
ممنون
سلام
بسیار عالی
موفق باشید.
سلام
من شیلد آردونیو Arduino Shield 2*16 LCD ( نمونه سوم همین مقاله ) رو تهیه کردم . برای تست عین کد های شما رو داخل اردونیو آپلود کردم اما با زدن کلید ها هیچ تصویری نشون داده نمیشه فقط lcd روشن هست .
مشکل رو چطوری میتونم برطرف کنم ؟
درایور های شیلد رو هم همانند خود نمونه از لینک فروشگاه دانلود کردم و داخل فولدر library کپی کردم .
هیچ خطایی هم نمیگیرم
با سلام
در این خصوص بایستی کتابخانه را آپدیت نمایید.
سلام وقت بخیر مطالب خیلی عالیه تشکر موفق باشید اراک
با سلام
از توجه شما ممنونم.
سلام،برای راه اندازی مثالها در IDE این کد دستوری را کپی میکنم:
LCD(12,10,11,5,4,3,2)
در صورتی که پایه R/W معرفی نشود نمایشگر ۴*۲۰ بنده بالا نمی آید و دلیل آن هنوز برایم نامعلوم است.LCD(12,11,5,4,3,2)
لطفا راهنمایی فرمایید.(علی اکبر برسلانی)
سلام، با توجه دقیق تر به مطالب ارائه شده شما و توجه دقیق تر به توضیحاتIDE ابهام بنده رفع شد.
درحالت lcd(12,11,5,4,3,2) باید پایه R/W را به GND وصل میکردم.
بسیار عالی موفق باشید.
با سلام
پایه RW پایه Read و Write است و بایستی به GND متصل گردد.
سلام،لطفا در مورد سه عددی که در معرفی ورژن نرم افزار وجود دارد توضیح دهید.
مثلا (۱٫۸٫۹ ) ولطفا بفرمایید جهت نصب ide در سیستم، باید به چه مواردی از سیستم خودمان و ورژن انتخابی توجه داشته باشیم؟
نیز بفرمایید آخرین ورژن موجود را چگونه میتوان استعلام کرد.
با سلام
این سه عدد مربوط به ورژن نرم افزار آردوینو میباشد. در حال حاضر اگر نسخه شما ۱٫۸٫۹ است آخرین نسخه از آن میباشد. جهت اطلاع از ورژن های جدید نرم افزار آردوینو از طریق پیام در نرم افزار به شما اطلاع رسانی خواهد کرد.
سلام وقت بخیر
من از LCD کاراکتری ۱۶*۲ با I2C استفاده کردم و با روشن شدن مهتابی ال سی دی هنگ میکنه!
چه کنم؟
با سلام
سوال شما مفهوم نیست. منظور شما از مهتابی چیست؟
میشه لطفا اتصالات پایه های ال سی دی نوع سوم را برای ساخت فاصله سنج بگید و اینکه به کدام کد ها نیاز دارد
با سلام
جهت اتصال شیلد ال سی دی به آردوینو تنها کافیست همانند تصویر ال سی دی را روی پایه های آردوینو قرار دهید. در ویدیو هم نشان داده شده است. برای راه اندازی شیلد ال سی دی همانطور که در متن آموزش گفته شده است بایستی دو کتابخانه LiquidCrystal و DFR_LCD_Keypad را به کدها اضافه کنید که در نمونه کد قرار گرفته شده هم مشخص شده است. همچنین کدنویسی این برنامه بر عهده خودتان میباشد. تنها کافیست با در اختیار داشتن دو نمونه کدهای سایت آن ها را تعمیم دهید. بررسی و از همین طریق سوالات خود را بپرسید تا راهنمایی شود.
منظور همچنین به بعد رو نفهمیدم
با سلام
لطفا سوال خود را شفاف بپرسید تا راهنمایی شود.
منظورتان رو از نوشتن برنامه نمیفهمم و نمیدونم باید برنامه رو درباره چه چیزی بنویسم دومندش اولین پروژه منه و برنامه نویسی بلد نیستم نمیدونم چیکار کنم
با سلام
کدهای آردوینو جهت تست ماژول در متن آموزش قرار گرفته شده است. بایستی کدها را کپی و به نرم افزار آردوینو انتقال داده و کامپایل کنید. در صورتیکه با نرم افزار آردوینو آشنایی ندارید، در ابتدا آموزش زیر را مطالعه کنید.
آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE
با عرض سلام و خسته نباشید
در راه اندازی ال سی دی با I2C ، نوشته مورد نظر روی LCD نشون داده میشه ولی نور صفحه بشدت کمه. پتانسیومتر رو هم بیشتر میکنم بازم نور ضفحه کمه و نوشته به زور خونده میشه. حتی نور دور حاشیه LCD هم خاموشه. چراغ قرمز رنگ پشت LCD هم همیشه روشنه.
اگه راهنماییم کنین یک دنیا ممنون میشم. سپاسگزارم
با سلام
در این خصوص جهت بررسی دقیق یک تصویر ضمیمه نمایید.
سلام من با i2c راه اندازی کردم ولی اصلا کار نکرد هم ارر می زارم هم عکس
Arduino: 1.8.10 (Windows 10), Board: “Arduino/Genuino Uno”
C:\Users\PAIA\AppData\Local\Temp\arduino_modified_sketch_533461\sketch_jan15f.ino: In function ‘void setup()’:
sketch_jan15f:7:17: error: no matching function for call to ‘LiquidCrystal_I2C::begin(int, int)’
lcd.begin(16,2);
^
In file included from C:\Users\PAIA\AppData\Local\Temp\arduino_modified_sketch_533461\sketch_jan15f.ino:2:0:
C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h:76:7: note: candidate: void LiquidCrystal_I2C::begin()
void begin();
^~~~~
C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h:76:7: note: candidate expects 0 arguments, 2 provided
Multiple libraries were found for “Wire.h”
Used: C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\hardware\arduino\avr\libraries\Wire
Multiple libraries were found for “LiquidCrystal_I2C.h”
Used: C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\Arduino-LiquidCrystal-I2C-library-master
exit status 1
no matching function for call to ‘LiquidCrystal_I2C::begin(int, int)’
Invalid library found in C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\libraries: no headers files (.h) found in C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\libraries
Invalid library found in C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\tools: no headers files (.h) found in C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\tools
Invalid library found in C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\libraries: no headers files (.h) found in C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\libraries
Invalid library found in C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\tools: no headers files (.h) found in C:\Users\PAIA\Desktop\arduino-1.8.10-windows\arduino-1.8.10\libraries\tools
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
عکس :[URL=http://uupload.ir/view/y9x0_screenshot_(7).png][IMG]http://uupload.ir/files/y9x0_screenshot_(7)_thumb.png[/IMG][/URL]
با سلام
ارورهای دریافتی مربوط به نضب کتابخانه و تداخل آن هاست. پیشنهاد میشود در ابتدا کتابخانه ها را حذف و طبق آموزش پیش رفته و نصب کنید.
بدون شیلد هم میشه راه اندازی کرد؟؟؟
با سلام
در این آموزش سه مدل ال سی دی راه اندازی و تست شده است و میتوانید یکی از مدل های گفته شده که فاقد شیلد است، استفاده کنید.
مدل اردینو من unoهست و شیلدش رو هم نمیدونم از کجا باید بگیرم
بدون شسلد هم میتونم راه اندازی کنم؟؟؟
بله ال سی دی مدل های مختلفی دارد که همگی با آردوینو در همین آموزش و آموزش های دیگر سایت تست شده است.
از لینک های زیر میتوانید استفاده کنید.
ال سی دی کاراکتری LCD 2×16 با پین هدر مخصوص
ماژول نمایشگر ۲X16 کاراکتری با راه انداز I2C
سلام و عرض خسته نباشید خدمت شما یه آردینو UNO دارم که بهش LCD Keypad shield رو روی بردم جایگزاری کردم منتها هیچی نشون نمیده ممنون میشم راهنمایی کنید
با سلام
در این خصوص میبایست طبق آموزش کتابخانه های مورد نیاز را نصب و نمونه کد را اجرا کنید. بررسی و نتیجه را از همین طریق اعلام کنید.
با سلام
من واسه یه پروژه نیاز هست تا از آردینو راه انددازی بکنم.
تخصصی تو زمینه برق ندارم . مراحل بالا را عینا اجرا کردم ولی LCD ( I2C ) روشن میشه ولی هیچ چیز نمایش نمیده.
عیب کار کجاست به نضر شما؟
با سلام
لطفا تصویر از ال سی دی خود ضمیمه کنید تا بررسی شود.
سلام ممنون از آموزش زیباتون من چجوری می تونم بیه آردوینو بگم یه متنی رو نمایش بده و بعد از چند ثانیه دیگه نمایش نده
با سلام
از توجه شما ممنونم. به عنوان مثال میتوانید پس از نمایش متن مورد نظر توسط تابع Delay زمان مورد نظر را تعریف کرده و پس از آن از دستور lcd.clear() استفاده کنید.
سلام آموزش شما واقعا عالی هست من یه سوال داشتم اون هم اینکه فرق بین وصل کردن نمایشگر به صورت ۴ بیتی و۸ بیتی در آردوینو چیه
با سلام
تفاوت چندانی ندارد و تنها بایستی طبق دیتاشیت پایه ها را به آردوینو متصل کنید.
تمام موارد رو انجام دادم برای LCD keypad Shield
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is “/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf”
User configuration file is “/Users/nima/.avrduderc”
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/cu.usbmodemFD121
Using Programmer : arduino
Overriding Baud Rate : 115200
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
———– —- —– —– —- —— —— —- —— —– —– ———
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : Arduino
Description : Arduino
Hardware Version: 3
Firmware Version: 4.4
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file “/var/folders/bj/_7d2wn8102l11wkxmv2b3tth0000gn/T/arduino_build_731189/sketch_jun11b.ino.hex”
avrdude: writing flash (2440 bytes):
Writing | ################################################## | 100% 0.41s
avrdude: 2440 bytes of flash written
avrdude: verifying flash memory against /var/folders/bj/_7d2wn8102l11wkxmv2b3tth0000gn/T/arduino_build_731189/sketch_jun11b.ino.hex:
avrdude: load data flash data from input file /var/folders/bj/_7d2wn8102l11wkxmv2b3tth0000gn/T/arduino_build_731189/sketch_jun11b.ino.hex:
avrdude: input file /var/folders/bj/_7d2wn8102l11wkxmv2b3tth0000gn/T/arduino_build_731189/sketch_jun11b.ino.hex contains 2440 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.33s
avrdude: verifying …
avrdude: 2440 bytes of flash verified
avrdude done. Thank you.
اما چیز بهم نشون نمیده !!
با سلام
لطفا طبق همین آموزش پیش بروید.
سلام خانم پوربلورچیان ،طبق آموزشتون من پایه vo را به گراند اردینو وصل کردم و … متن به طوراصلا واضح نیست و ال سی دی به طور کامل مربع های پرشده نشون میده چرا؟؟؟
با سلام
در این خصوص در صورت عدم ارتباط از یک پتانسیومتر ۱۰ کیلو برای این پایه میتوانید استفاده کنید.
درود بر شما
ببخشید من از ال سی دی نوع دوم استفاده میکنم
کد خودتون رو آپلود می کنم اما توی قسمت ; ( lcd.begin(16,2
این ارور رو میده:: error: no matching function for call to ‘LiquidCrystal_I2C::begin(int, int)’
با سلام
در این خصوص ممکن است کتابخانه نصب نشده باشد. بررسی و نیتجه را اعلام فرمایید.
سلام
وقتی کد رو آپلود می کنم چیزی نمایش داده نمیشه
با سلام
کاربر گرامی از کدام نوع ال سی دی استفاده میکنید؟
مشکل از کتابخانه بود
ممنون
سپاس از اطلاع رسانی شما
سلام خانم پوربلورچیان، روشی هست که متن رو فارسی در lcd نمایش بدهیم؟
با سلام
ار کد هگز میتوانید استفاده کنید اما این مورد تست نشده است.
سلام خسته نباشید
ببخشید من lcd کاراکتری رو با رابط i2c راه اندازی کردم و لحیم کردم و لحیم ها هیچ کدوم به یک دیگه نخوردن ولی برنامه رو اپلود میکنم فقط تصویر اول که چند تا مستطیل هست بالا میاد
چیکار باید بکنم
کمکم کنید
ممنون
با سلام
در این خصوص کتابخانه مورد استفاده و اتصالات را بررسی نمایید. ممکن است ورژن کتابخانه همخوانی نداشته باشد.
سلام
من کد نمونه کد آردوینو نمایش متن در LCD ساده کاراکتری روی اردویونو ریختم و ال سی دی رو به درایورش وصل کردم ولی فقط تو خط اول مکعب های سیاه نشو داد
با سلام
این مشکل با بررسی و به روز رسانی کتابخانه برطرف میشود.
سلام وقت بخیر
من یک ال سی دی کاراکتری ۱۶ *۲ رو به آردوینو uno وصل کردم و وقتی کدو آپلود میکنم فقط صفحه نمایش روشن میشه و هیچ چیزو نمایش نمیده..ممنون میشم اگه راهنمایی کنید
در ضمن کتابخونه هم نصبه
با سلام
پیشنهاد میشود از یک مولتی ترن استفاده کنید.
سلام ممنون از پست خوبتون. من۱۶*۲ lcdرو که راه اندازی کردم به صورت خونه های مربع مربع متن مورد نظرمو نمایش میده مشکل از کجاست؟ از پتانسیومتر هم استفاده کردم ولی مشکل رفع نشد تغذیه هم ۵ ولت از اردوینو گرفتم.ممنون از راهنمایی شما
با سلام
در صورتیکه مربع نمایش داده میشود پیشنهاد میشود از مقاومت ۲٫۲ کیلو بین پایه V0, GND استفاده کنید.
سلام. وقت شما بخیر. میخوام یک عدد رو در سریال مانیتور مجازی نمایش بدم. virtual terminal و ماژول یونو رو در پروتئوس به همدیگه وصل کردم اما بعد از نوشتن برنامه در نرم افزار آردوینو هنگام کامپایل کردن خطای serial wasn’t declared in this scope میده. برای رفع این خطا باید چکار کرد؟
با سلام
کاربر گرامی سوال شما مرتبط با این آموزش نیست و این مورد توسط بنده تست نشده است.
سلام دوستان مشکل نمایش ندادن نوشته در I2C رو خیلیا مثل من داشتن ولی من یک راه حلی دارم که مشکل خیلیارو حل میکنه! اگر در حالت استفاده از I2C همه چیز درست کار میکرد ولی کاراکتر نمایش داده نمیشد شما باید یک پیچ که بر روی ماژول I2C هست رو بچرخونید تا تصویر واضح و شفاف بشه و نمایش داده بشه.
با سلام
کاربر گرامی از اینکه تجربیات خود را با دیگر کاربران به اشتراک میگذارید سپاسگزاریم.
بنده با lcd 16*2 استفاده کردم چیزی نشون نداد
با سلام
در این خصوص اتصالات شما قطعا اشتباه است و یا کابل های مورد استفاده ممکن است قطعی داشته باشد. همچنین رنج مقاومت هم بین ۱ تا ۱۰ کیلو بایستی باشد.
ولوم ۱۰ کیلو قرار دادم سیم هایم هم بله قدیمی است و قطعی دارد
با سلام
در این خصوص کمک های لازم گفته شده است. اتصالات را بررسی کنید.
سلام. ببخشید در مورد نمایشگر های ریپ رپ ۱۲۸۶۴ فول گرافیک اسمارت کنترلر که برای پرینتر سه بعدی استفاده میشه به یه مشکلی برخوردم اونم این که تصویر ال سی دی میاد ولی نوشته هاش نمیاد. اگه کمک ممنون میشم
با سلام
کاربر گرامی این مورد توسط بنده تست نشده است. از دیگر کاربرانی که در این مورد اطلاعاتی دارند، تقاضا میکنم در بحث شرکت کنند.
سلام میشه یه راهنمایی کنین راجب اینکه کدوم پین ال سی دی ۲ در ۱۶ بدون i2c رو به آردوینو وصل کنم
با سلام
جدول اتصالات در متن آموزش با عنوان تغییرات سال ۹۹ اضافه شده است. طبق جدول اتصالات را انجام دهید.
سلام
میخوام تجربه کاریم رو که الان بهش برخوردم بگم
من از دانشجوکیت شیلد LCD رو خریدم بعد برنامه رو که لود کردم دیدم صفحه همونطوری روشن مونده دریغ از یه حرف
بعدش کلی سرچ فلان
فهمیدم کار کار همون پتانسیومتر مخصوص بکلایته
کمترش کردم دیدم چیزایی نشون میده
و الان کار میکنه!
خیلی ناامید بودم یهو درست شد
با سلام
کاربر گرامی از اینکه تجربه ی خود را با دیگر کاربران به اشتراک گذاشته اید، صمیمانه سپاسگزاریم.
امیدواریم این آموزش مفید واقع شده باشد.
ممنونم همین ,بلد نیستم جوری که لایقه تشکر کنم
با سلام
کاربر گرامی ضمن تشکر از شما، امیدوارم مفید واقع شده باشد.
با درود ، چگونه میشود با تحریک یک سویچ که به ورودی آردواینو متصل شده وارد یک صفحه از ال سی دی شد ؟
با سلام
سوال شما شفاف نیست. دقیق تر توضیح دهید تا بررسی شود.
با درود ، با چه دستوری میتوان ، وقتی یک ورودی دیجیتال را که به اردواینو متصل است high شود ، ال سی دی وارد صفحه جدید شود ؟
با سلام
لطفا توضیح بیشتری دهید. وارد صفحه جدید شدن به معنی پاک شدن اطلاعات قبلی و نمایش محتوای جدید است؟
سلام اگه بخوام این کد هارو ب پروژه رطوبت خاک اضافه کنم باید ترتیپ کد داشته باشه یا ن فقط کپی پیست کنم
با سلام
قطعا بایستی دستورات فراخوانی ال سی دی را به ترتیب در حلقه های void setup و void loop قرار دهید. در صورتیکه آموزش را کامل مطالعه کنید روش اجرا بسیار ساده خواهد بود.
سلام اگه بخوام این کد هارو ب پروژه رطوبت خاک اضافه کنم باید ترتیپ کد داشته باشه یا ن فقط کپی پیست کنم؟؟؟؟
با سلام
قطعا بایستی دستورات فراخوانی ال سی دی را به ترتیب در حلقه های void setup و void loop قرار دهید. در صورتیکه آموزش را کامل مطالعه کنید روش اجرا بسیار ساده خواهد بود.
سلام.من فقط چراغ ال سی دی روشن میشه … کاراکتر را نشون نمیده…از مقاومت های ۱۰k و۲۲۰ یا پتانسیومتر هم استفاده کردم ولی فایده نداره
با سلام
پتانسیومتر به کدام پایه متصل است؟
من از شیلد LCD 2*16 استفاده میکنم که آموزش راه اندازیشم گذاشتین .. کتابخونه رو ادد کردم و برنامه رو که آپلود میکنم فقط صفحه ی آبی نمایش میده. مشکل چیه ؟!
با سلام
احتمالا نسخه کتابخانه با درایور ماژول یکسان نیست.
سلام ببخشید من یدونه شیلد ال سی دی خریدم و کد های شما رو روش آپلود کردم ولی فقط ال سی دی روشن میشه و هیچ متنی بالا نمیاد چیکار باید بکنم ممنون
با سلام
در این خصوص از آپدیت کتابخانه مطمئن شوید. سپس از پتانسیومتر قرار گرفته بر روی شیلد برای افزایش شدت نور ال سی دی استفاده کنید.
سلام مجدد یه سوال چجوری باید کتابخان را آپدیت کنم ممنون
با سلام
در منو Arduino بر روی tools کلیک کنید. سپس بر روی manage libraraies کلیک کنید. در صفحه ی باز شده کتابخانه ی مورد نظر را سرچ کنید.
اگر در کتار اسم آن گزینه update باشد. میتوانید آپدیت کنید.
من قسمت پایه های دیجیتال رو متوجه نشدم اگه میشه کامل توضیح بدید
با سلام
در متن آموزش جدول اتصالات و در بخش اول آموزش پایه ها کامل توضیح داده شده است.
سلام و خسته نباشید
ممنون بابت اظلاعات خوبتون
اگر بخوام که چند متغیر را باهم نشان بدهم چجوری باید انجام بدم مثلا برای نوشتن ساعت در ccs مینویسم:
printf(lcd_putc,”%d:%d:%d”,h,m,s);
اما در آردوینو که %d را میزنم ایراد میگیره آیا روشی هست که بشه اینطور نشون داد مثل ساعت؟؟؟؟
با سلام
همین مورد در کتابخانه DS3231 در مثال های پیش فرض قرار دارد. تفکیک داده ها و سپس نمایش بر روی ال سی دی
سلام روزتون بخیر . بسیار عالی بود ممنون
فقط من یک سوالی داشتم
اینکه چطور وقتی یکی از اعداد کی پد رو می زنیم برای ما روی ال سی دی نشان دهد؟
با سلام
برای نمایش دیتا روی ال سی دی از دستور LCD.PRINT در کد برنامه استفاده میشود. در همین آموزش کامل توضیح داده ام.
سلام آجی.
عزیزم بی زحمت هر موقع تایم داشتی آموزشِ اتصال نمایشگر ۱۶*۲ به آردوینو برای پروژهی تسترِ قطعات الکترونیکی رو هم با کلام و نوشتارِ شیوا و فصیحِ خودت آموزش بده.
رشتهام الکترونیکه،
برای پروژهی دانشگاهم دارم میسازمش.
به اینجور کانفیگها Component Tester گفته میشه.
مرسی عجقم.
با سلام
کاربر گرامی سپاس از همراهی شما
بررسی و در صورت امکان آموزش خواهم داد.
با سلام و خسته نباشید ،سوالی داشتم و اینکه اگه چندتا ال سی دی مثلا ۸تا ۲در۲۰ ال سی دی را چطور به اردینو متصل میشوند ، و بعد برنامه نویسی آن چگونه خواهد بود ، مثلا LCD1,LCD2, LCD3, چطور بهم وصل مولتی پلکس میشوند و چطور برنامه نویسی میشوند به حساب آدرس دهی میشوند هرکدام از دل سی دی کارکتر خودش را دریافت کند مثل بهم بستن چند دات ماتریس ، هست یا نمیشه ال سی را بهم وصل کرد ممنون
با سلام
برای اتصال چندین ال سی دی میتوانید از پایه های دیتا اشتراک گرفته و به آردوینو اتصال دهید و در کد برنامه برای هر ال سی دی کلاس منحصر به فرد فراخوانی کنید مانند:
LiquidCrystal lcd1(12, en1, 5, 4, 3, 2);
LiquidCrystal lcd2(12, en2, 5, 4, 3, 2);
سلام خسته نباشید
خیلی مطلب خوبی بود دستتون درد نکنه
فقط میشه از اتصالات عکس بهتری بزارید ؟ ممنون جوری که ادم بتونه ببینه چی به کجا خورده
با سلام و تشکر از شما
بایستی به متنی که نوشته شده دقت کنید. تمامی اتصالات یک به یک توضیح داده شده است.
سلام بر عزیزان بنده ال سی دی شیلد و برد نود ام سی یو دارم . چطوری با چه نقشه یا برنامه فقط از این دو برای نمایش متن در ال سی دی شیلد استفاده کنم لطفا راهنمائی فرمائید سپاسگزارم
با سلام
شیلد ال سی دی UNO فقط برای برد آردوینو uno قابل استفاده است.
سلام خانم مهندس احسنت بشماهم برای آموزش کامل وجامع که عنایت فرمودیددراختیارمون گزاشتیدهم اینکه شماهیچ کامنت وسوالی وبی جواب نگزاشتیدمن تمام شون خوندم وشماهمه وجواب دادین احسنت.آرزوی توفیق برای شما
با سلام
کاربر گرامی سپاس از همراهی شما
امیدوارم مفید واقع شده باشد.
سلام وقت بخیر
من با IC2 راه اندازی کردم اما با قطع شدن جریان برق مدار متن ها از بین رفته و کلمات بی معنی نمایش میده
با سلام
در این خصوص بایستی ولتاژ و جریان مدار را بررسی کنید.
سلام .
خسته نباشید میگم خدمت شما استاد عزیز که آموزشهای ارائه داده شده توسط شما واقعا عالی و خیلی کامل ارائه شده. ممنونم از تمام زحمات شما
با سلام
کاربر گرامی سپاس از همراهی شما
امیدوارم مفید واقع شده باشد.
سلام و درود ! آموزش آردینو سایت شما خیلی تمیز و کامل هست . من دارم آردینو یادمیگیری و آموزشهای شما خیلی بهم کمک میکنه . خواستم تشکر کنم ازتون
با سلام
از همراهی شما سپاسگزاریم.