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

    هر آماتور رادیویی، پس از مقدار مشخصی DIY ساده، به هدف می‌رسد که با استفاده از حسگرها و دکمه‌ها چیزی بزرگ بسازد. از این گذشته ، نمایش داده ها روی صفحه نمایش بسیار جالب تر از نمایشگر پورت است. اما پس از آن این سوال مطرح می شود: کدام صفحه نمایش را انتخاب کنیم؟ و به طور کلی نحوه اتصال آن چه چیزی برای اتصال لازم است؟ پاسخ به این سوالات در این مقاله مورد بحث قرار خواهد گرفت.

    LCD 1602

    در میان گزینه های بسیار در بین نمایشگرها، می خواهم به طور جداگانه به صفحه نمایش LCD1602 بر اساس کنترلر HD4478 اشاره کنم. این صفحه نمایش در دو رنگ وجود دارد: حروف سفید در پس زمینه آبی، حروف سیاه در پس زمینه زرد. اتصال LCD 1602 به آردوینو نیز مشکلی ایجاد نمی کند، زیرا یک کتابخانه داخلی وجود دارد و نیازی به دانلود چیز اضافی ندارید. نمایشگرها نه تنها از نظر قیمت، بلکه در اندازه نیز متفاوت هستند. اغلب آماتورهای رادیویی از 16 x 2 استفاده می کنند، یعنی 2 خط 16 کاراکتری. اما 20 × 4 نیز وجود دارد که در آن 4 خط 20 کاراکتری وجود دارد. ابعاد و رنگ در اتصال نمایشگر lcd 1602 به آردونو هیچ نقشی ندارند، به همین صورت به هم متصل می شوند. زاویه دید 35 درجه، زمان پاسخگویی نمایشگر 250 میلی ثانیه است. می تواند در دمای 20- تا 70 درجه سانتیگراد کار کند. در حین کار از 4 میلی آمپر برای صفحه نمایش و 120 میلی آمپر برای نور پس زمینه استفاده می کند.

    کجا استفاده می شود؟

    این نمایشگرمحبوبیت خود را نه تنها در بین آماتورهای رادیویی، بلکه در بین تولید کنندگان بزرگ نیز دارد. به عنوان مثال، چاپگرها، دستگاه های قهوه ساز نیز از LCD1602 استفاده می کنند. این به دلیل قیمت پایین آن است، این نمایشگر در سایت های چینی 200-300 روبل قیمت دارد. ارزش خرید از آنجا را دارد، زیرا در فروشگاه های ما حاشیه های این نمایشگر بسیار زیاد است.

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

    اتصال LCD 1602 به آردوینو نانو و یونو تفاوتی ندارد. شما می توانید با نمایشگر در دو حالت 4 بیتی و 8 بیتی کار کنید. هنگام کار با نمایشگر 8 بیتی، هر دو بیت پایین و بالاتر استفاده می شود و با 4 بیت فقط از بیت های پایین استفاده می شود. هیچ نکته خاصی در کار با 8 بیت وجود ندارد، زیرا 4 مخاطب دیگر برای اتصال اضافه می شود، که توصیه نمی شود، زیرا سرعت بالاتر نخواهد بود، محدودیت به روز رسانی صفحه نمایش 10 بار در ثانیه است. به طور کلی، سیم های زیادی برای اتصال ال سی دی 1602 به آردوینو استفاده می شود که باعث ایجاد ناراحتی می شود، اما محافظ های خاصی وجود دارد، اما بعداً در مورد آن صحبت خواهیم کرد. عکس اتصال نمایشگر را نشان می دهد آردوینو اونو:

    مثال کد برنامه:

    #عبارتند از // ال سی دی کتابخانه LiquidCrystal مورد نیاز را اضافه کنید (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup()( lcd.begin(16,2)؛ // تنظیم ابعاد صفحه نمایش lcd.setCursor(0,0)؛ // تنظیم مکان نما برای شروع 1 خطوط lcd.print("سلام، دنیا!")؛ // نمایش متن lcd.setCursor(0, 1)؛ // مکان نما را در ابتدای خط 2 تنظیم کنید lcd.print("سایت")؛ // نمایش متن ) حلقه خالی ()( )

    کد چه کاری انجام می دهد؟ اول از همه، کتابخانه کار با نمایشگر متصل است. همانطور که در بالا ذکر شد، این کتابخانه قبلاً در آن گنجانده شده است آردوینو IDEو نیازی به دانلود یا نصب آن ندارید. در مرحله بعد، کنتاکت هایی که به پین ​​ها متصل می شوند به ترتیب تعریف می شوند: RS، E، DB4، DB5، DB6، DB7. سپس اندازه صفحه نمایش تنظیم می شود. از آنجایی که ما با نسخه ای با 16 کاراکتر و 2 خط کار می کنیم، چنین مقادیری را می نویسیم. مکان نما را در ابتدای خط اول قرار می دهیم و اولین متن Hello World را نمایش می دهیم. سپس مکان نما را در خط دوم قرار دهید و نام سایت را نمایش دهید. همین! اتصال lcd 1602 به Arduino Uno در نظر گرفته شد.

    I2C چیست و چرا لازم است؟

    همانطور که در بالا ذکر شد، اتصال صفحه نمایش به تعداد زیادی پین نیاز دارد. به عنوان مثال، هنگام کار با چندین سنسور و صفحه نمایش LCD، 1602 مخاطب ممکن است به سادگی کافی نباشد. اغلب، آماتورهای رادیویی از نسخه های Uno یا Nano استفاده می کنند، جایی که مخاطبین زیادی وجود ندارد. سپس مردم با سپرهای مخصوص آمدند. برای مثال I2C. این امکان را به شما می دهد تا صفحه نمایش را تنها با 4 پین متصل کنید. این دو برابر کمتر است. ماژول I2C هر دو به صورت جداگانه فروخته می شود، جایی که باید خودتان آن را لحیم کنید، و قبلاً به صفحه نمایش LCD 1602 لحیم شده است.

    اتصال با ماژول I2C

    اتصال LCD 1602 به آردوینو نانو با I2C فضای کمی را اشغال می کند، فقط 4 پین: زمین، برق و 2 خروجی داده. ما برق و زمین را به ترتیب به 5 ولت و GND در آردوینو وصل می کنیم. دو کنتاکت باقیمانده: SCL و SDA به هر پین آنالوگ متصل هستند. در عکس نمونه ای از اتصال lcd 1602 به arduino با ماژول I2C را مشاهده می کنید:

    کد برنامه

    اگر برای کار با نمایشگر بدون ماژول، فقط از یک کتابخانه استفاده می شد، سپس برای کار با ماژول، به دو کتابخانه نیاز بود. یکی از آنها در حال حاضر در Arduino IDE - Wire است. کتابخانه دیگری به نام LiquidCrystal I2C باید جداگانه دانلود و نصب شود. برای نصب کتابخانه در آردوینو، محتویات آرشیو دانلود شده باید در پوشه ریشه Libraries آپلود شود. کد مثال با استفاده از I2C:

    #عبارتند از #عبارتند از ال سی دی LiquidCrystal_I2C (0x27,16,2); // تنظیم نمایش void setup() ( lcd.init(); lcd.backlight();// روشن کردن نور پس زمینه نمایشگر lcd..setCursor(8,1); ( ) ( // مکان نما را روی خط دوم و کاراکتر تهی تنظیم کنید. lcd. setCursor(0, 1)؛ // نمایش تعداد ثانیه هایی از زمانی که آردوینو شروع به ال سی دی کرده است. print(millis()/1000)؛ )

    همانطور که می بینید، کد تقریباً یکسان است.

    چگونه نماد خود را اضافه کنیم؟

    مشکل این نمایشگرها عدم پشتیبانی از سیریلیک و نمادها است. برای مثال، باید مقداری کاراکتر را در صفحه نمایش بارگذاری کنید تا بتواند آن را منعکس کند. برای انجام این کار، صفحه نمایش به شما اجازه می دهد تا حداکثر 7 کاراکتر خود را ایجاد کنید. جدولی را تصور کنید:

    0 0 0 1 0
    0 0 0 0 1
    1 1 0 0 1
    0 0 0 0 1
    1 1 0 0 1
    0 0 0 0 1
    0 0 0 1 0
    0 0 0 0 0

    اگر 0 - چیزی وجود ندارد، اگر 1 - این یک منطقه سایه دار است. در مثال بالا می توانید ایجاد نماد شکلک را مشاهده کنید. با استفاده از یک برنامه نمونه در آردوینو، به صورت زیر است:

    #عبارتند از #عبارتند از // کتابخانه مورد نیاز را اضافه کنید // نماد لبخند بیت ماسک بایت لبخند = ( B00010, B00001, B11001, B00001, B11001, B00001, B00010, ); ال سی دی LiquidCrystal (7، 6، 5، 4، 3، 2); // (RS، E، DB4، DB5، DB6، DB7) void setup()( lcd.begin(16، 2)؛ // تنظیم اندازه صفحه lcd.createChar(1، لبخند)؛ // ایجاد کاراکتر 1 lcd. setCursor(0, 0); // مکان نما را روی ابتدای خط 1 تنظیم کنید lcd.print("\1")؛ // شکلک را نمایش دهید (شخصیت شماره 1) - "\1" ) void loop()( )

    همانطور که می بینید بیت ماسک همانند جدول ایجاد شده است. پس از ایجاد، می توان آن را به عنوان یک متغیر به نمایشگر خروجی داد. به یاد داشته باشید که تنها 7 کاراکتر را می توان در حافظه ذخیره کرد. در اصل این کافی است. به عنوان مثال، اگر می خواهید نماد درجه را نشان دهید.

    مشکلاتی که ممکن است نمایشگر در آنها کار نکند

    مواقعی وجود دارد که صفحه نمایش کار نمی کند. به عنوان مثال، روشن می شود، اما شخصیت ها را نشان نمی دهد. یا اصلا روشن نمیشه ابتدا ببینید آیا مخاطبین را به درستی وصل کرده اید یا خیر. اگر قبلا lcd 1202 را بدون I2C به آردوینو وصل می کردید، گره خوردن در سیم ها بسیار آسان است که می تواند باعث شود کار نادرستنمایش دادن. همچنین باید مطمئن شوید که کنتراست نمایشگر افزایش یافته است، زیرا در حداقل کنتراست حتی روشن نیست یا خیر LCD 1602 قابل مشاهده نیست. اگر این کمکی نکرد، ممکن است مشکل در لحیم کاری مخاطبین باشد، این هنگام استفاده از ماژول I2C است. همچنین علت مشترک، که در آن نمایشگر ممکن است کار نکند، است نصب نادرستآدرس های I2C واقعیت این است که تولید کنندگان زیادی وجود دارد، و آنها می توانند آدرس متفاوتی را تعیین کنند، شما باید آن را در اینجا تعمیر کنید:

    ال سی دی LiquidCrystal_I2C (0x27,16,2);

    در براکت ها می توانید دو مقدار 0x27 و 16.2 را ببینید (16، 2 اندازه نمایشگر است و 0x27 فقط آدرس I2C است). به جای این مقادیر، می توانید سعی کنید 0x37 یا 0x3F را قرار دهید. خوب، دلیل دیگر فقط یک LCD 1602 معیوب است. با توجه به اینکه تقریباً همه چیز برای آردوینو ساخت چین است، نمی توانید 100٪ مطمئن باشید که محصول خریداری شده ازدواج نیست.

    مزایا و معایب LCD 1602

    مزایا و معایب نمایشگر LCD 1602 را در نظر بگیرید.

    • قیمت. این ماژول را می توان با قیمت بسیار مقرون به صرفه در فروشگاه های چین خریداری کرد. قیمت 200-300 روبل است. حتی گاهی اوقات همراه با یک ماژول I2C فروخته می شود.
    • اتصال آسان. احتمالاً این روزها هیچ کس LCD 1602 را بدون I2C وصل نمی کند. و با این ماژول، اتصال فقط 4 پین طول می کشد، هیچ "وب" سیم وجود نخواهد داشت.
    • برنامه نويسي. به لطف کتابخانه های آماده، کار با این ماژول آسان است، همه توابع قبلاً ثبت شده اند. و در صورت لزوم، اضافه کردن شخصیت خود را تنها چند دقیقه طول می کشد.
    • در طول استفاده توسط هزاران آماتور رادیویی، هیچ منفی بزرگی شناسایی نشده است، فقط مواردی از خرید ازدواج وجود دارد، زیرا از گزینه های نمایش چینی عمدتا استفاده می شود.

    این مقاله به نحوه اتصال 1602 به آردوینو پرداخته و نمونه برنامه های کار با این نمایشگر را نیز ارائه کرده است. واقعاً یکی از بهترین ها در رده خود است، بی جهت نیست که هزاران آماتور رادیویی آن را برای پروژه های خود انتخاب می کنند!

    دستورالعمل

    عملکرد فاصله یاب اولتراسونیک HC-SR04 بر اساس اصل اکولوکاسیون است. پالس های صوتی را در فضا منتشر می کند و سیگنال بازتاب شده از مانع را دریافت می کند. فاصله تا جسم با زمان انتشار موج صوتی به مانع و عقب تعیین می شود.
    شروع یک موج صوتی با یک پالس مثبت با مدت زمان حداقل 10 میکروثانیه در پایه TRIG فاصله یاب شروع می شود. به محض پایان یافتن پالس، فاصله یاب موجی از پالس های صوتی با فرکانس 40 کیلوهرتز را در فضای جلوی خود منتشر می کند. در همان زمان، الگوریتم تعیین زمان تاخیر سیگنال منعکس شده راه اندازی می شود و یک واحد منطقی در پای ECHO فاصله یاب ظاهر می شود. به محض اینکه سنسور سیگنال منعکس شده را دریافت می کند، یک صفر منطقی روی پین ECHO ظاهر می شود. مدت زمان این سیگنال ("تاخیر اکو" در شکل) فاصله تا جسم را تعیین می کند.
    برد اندازه گیری فاصله یاب HC-SR04 تا 4 متر با وضوح 0.3 سانتی متر می باشد.زاویه مشاهده 30 درجه، زاویه موثر 15 درجه است. مصرف جریان در حالت آماده به کار 2 میلی آمپر، در حین کار - 15 میلی آمپر.

    مسافت یاب اولتراسونیک از +5 ولت تغذیه می کند. دو خروجی دیگر به هر کدام متصل هستند پورت های دیجیتالآردوینو، ما به 11 و 12 متصل خواهیم شد.

    حالا بیایید طرحی بنویسیم که فاصله تا مانع را مشخص می کند و آن را به پورت سریال خروجی می دهد. ابتدا شماره پین ​​های TRIG و ECHO را تنظیم می کنیم - اینها پین های 12 و 11 هستند. سپس ماشه را به عنوان خروجی و اکو را به عنوان ورودی اعلام می کنیم. پورت سریال را در 9600 baud مقداردهی اولیه می کنیم. در هر تکرار چرخه حلقه ()فاصله را می خوانیم و به پورت خروجی می دهیم.
    تابع getEchoTiming()یک پالس شروع ایجاد می کند. این فقط یک جریان 10 میکروثانیه یک ضربه ایجاد می کند، که محرکی برای فاصله یاب برای شروع انتشار یک بسته صوتی در فضا است. سپس زمان شروع انتقال موج صوتی تا رسیدن اکو را به یاد می آورد.
    تابع getDistance()فاصله تا جسم را محاسبه می کند. از درس فیزیک مدرسه، به یاد می آوریم که فاصله برابر است با سرعت زمان: S = V * t. سرعت صوت در هوا 340 متر بر ثانیه است، زمانی که بر حسب میکروثانیه می دانیم «دوره» است. تقسیم بر 1,000,000 برای دریافت زمان در ثانیه. از آنجایی که صدا دو برابر مسافت را طی می کند - تا جسم و عقب - باید فاصله را به نصف تقسیم کنید. بنابراین معلوم می شود که فاصله تا جسم S = 34000 سانتی متر بر ثانیه * مدت زمان / 1.000.000 ثانیه / 2 = 1.7 سانتی متر در ثانیه / 100 است، که در طرح نوشتیم. میکروکنترلر عملیات ضرب را سریعتر از تقسیم انجام می دهد، بنابراین من "/ 100" را با معادل "* 0.01" جایگزین کردم.

    همچنین، بسیاری از کتابخانه ها برای کار با فاصله یاب اولتراسونیک نوشته شده اند. برای مثال، این یکی: http://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. کتابخانه به روشی استاندارد نصب شده است: دانلود کنید، از حالت فشرده خارج کنید به دایرکتوری کتابخانه هاکه در پوشه Arduino IDE قرار دارد. پس از آن می توان از کتابخانه استفاده کرد.
    پس از نصب کتابخانه، بیایید یک طرح جدید بنویسیم. نتیجه کار او یکسان است - در مانیتور درگاه سریالفاصله تا جسم را بر حسب سانتی متر نمایش می دهد. اگر در طرح بنویسید float dist_cm = ultrasonic.Ranging(INC);، فاصله بر حسب اینچ نمایش داده می شود.

    بنابراین، ما یک مسافت یاب اولتراسونیک HC-SR04 را به آردوینو وصل کردیم و داده‌های آن را با دو دستگاه دریافت کردیم. راه های مختلف: با و بدون کتابخانه مخصوص.
    مزیت استفاده از کتابخانه این است که مقدار کد به میزان قابل توجهی کاهش می یابد و خوانایی برنامه بهبود می یابد، شما مجبور نیستید به پیچیدگی های دستگاه بپردازید و بلافاصله می توانید از آن استفاده کنید. اما این نیز یک اشکال است: شما درک ضعیف تری از نحوه کار دستگاه و فرآیندهایی که در آن انجام می شود دارید. در هر صورت استفاده از کدام روش به شما بستگی دارد.

    بر اساس کنترلر HD44780، نمایشگرهای LCD 1602 هنوز یکی از مقرون به صرفه ترین، ساده ترین و پرتقاضاترین نمایشگرها برای توسعه هر نوع دستگاه الکترونیکی امروزی هستند. تعجب آور نیست که آنها را می توان هم در واحدهای ساده که به معنای واقعی کلمه روی زانو مونتاژ شده اند و هم در موارد صنعتی جدی تر مانند دستگاه های قهوه مشاهده کرد. با چنین نمایشگری است که محبوب ترین ماژول ها و شیلدهای با تم آردوینو مونتاژ می شوند، به عنوان مثال، ماژول LCD I2C و صفحه کلید LCD.

    در این مقاله به طور کامل با تصاویر نحوه اتصال LCD به آردوینو و نمایش اطلاعات توضیح داده شده است.

    1602 نمایشگر دارند دو نسخه متفاوت:

    نور پس زمینه زرد با حروف مشکی
    - یا (این خیلی بیشتر اتفاق می افتد) نور پس زمینه آبی با سفید.

    ابعاد نمایشگرها در کنترلر HD44780 بسیار متفاوت است اما به همین صورت کنترل می شوند. رایج ترین ابعاد 16 در 02 (یعنی 16 کاراکتر در دو خط) یا 20 در 04 است. خود کاراکترها دارای وضوح 5 در 8 پیکسل هستند.

    اکثر نمایشگرها از سیریلیک پشتیبانی نمی کنند (به استثنای نمایشگرهای علامت گذاری CTK). اما چنین مشکلی تا حدی قابل حل است و سپس مقاله نحوه انجام آن را توضیح می دهد.

    صفحه نمایش دارای یک کانکتور 16 پین برای اتصال است. نتیجه گیری شده است علامت گذاری در پشت تخته، به شرح زیر است:

    1 (VSS) - قدرت به منفی برای کنترلر.
    2 (VDD) - منبع تغذیه مثبت برای کنترل.
    3 (VO) - تنظیمات کنترل کنتراست.
    4 (RS) - انتخاب برای ثبت نام.
    5 (R/W) - خواندن و نوشتن، به ویژه، نوشتن در هنگام اتصال به زمین.
    6 (E) - فعال سازی (فعال کردن).
    7-10 (DB0-DB3) - بیت های کم از رابط هشت بیتی.
    11-14 (DB4-DB7) - مهم ترین بیت ها از رابط
    15 (A) - آند مثبت برای تغذیه نور پس زمینه.
    16 (K) - کاتد منفی برای تغذیه نور پس زمینه.

    مرحله 2: اتصال LCD

    قبل از اتصال صفحه نمایش و انتقال اطلاعات به آن، ارزش بررسی عملکرد آن را دارد. ابتدا به کنترلر VSS و VDD ولتاژ اعمال کنید، نور پس زمینه (A, K) را روشن کنید، سپس کنتراست را تنظیم کنید. برای چنین تنظیماتی، یک پتانسیومتر 10 کیلو اهم مناسب است، شکل آن مهم نیست. + 5 ولت و GND روی پایه های شدید اعمال می شوند و پایه در مرکز به خروجی VO متصل می شود.

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

    برای کارکرد صفحه نمایش، از کتابخانه ویژه LiquidCrystal.h که در Arduino IDE تعبیه شده است استفاده می شود که در زیر در مورد آن خواهم نوشت. می تواند در حالت 8 بیتی و 4 بیتی کار کند. در نوع اول فقط از بیت های کم و زیاد (BB0-DB7) و در نوع دوم فقط بیت های کم (BB4-DB7) استفاده می شود.

    اما اعمال حالت 8 بیتی در این نمایشگر - تصمیم اشتباه، تقریباً هیچ مزیتی در سرعت وجود ندارد، زیرا سرعت به روز رسانی آن همیشه کمتر از 10 بار در ثانیه است. برای نمایش متن، باید پایه های DB7، DB6، DB5، DB4، E و RS را به پایه های کنترلر متصل کنید. شما می توانید آنها را به هر پین آردوینو متصل کنید، نکته اصلی این است که دنباله صحیح را در کد تنظیم کنید.

    اگر کاراکتر مورد نیاز هنوز در حافظه کنترلر نیست، می توان آن را به صورت دستی تعیین کرد (در مجموع تا هفت کاراکتر). سلول در نمایشگرهای مورد بررسی دارای پسوند پنج در هشت نقطه است. وظیفه ایجاد یک نماد نوشتن یک ماسک بیت و قرار دادن یک ها در مکان هایی است که نقطه ها باید بسوزند و صفرها در جایی که نباید بسوزند.

    طرح اتصال مورد بحث در بالا همیشه خوب نیست، زیرا آردوینو حداقل از شش خروجی دیجیتال استفاده می کند.

    مرحله 3: دور زدن شماتیک

    بیایید راهی برای دور زدن این موضوع و تنها با دو مورد بررسی کنیم. یک ماژول مبدل LCD به IIC/I2C اضافی مورد نیاز است. نحوه لحیم شدن آن به نمایشگر و اتصال آن به آردوینو در تصاویر زیر قابل مشاهده است.

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

    مرحله 4: کتابخانه LiquidCrystal.h

    کتابخانه LiquidCrystal.h را می توان از منبع رسمی دانلود کرد - . همچنین می توانید از لینک های زیر دانلود کنید:

    طرح

    پس از دانلود بایگانی، پوشه LiquidCrystal را در پوشه libraries دایرکتوری نصب آردوینو خود جایگزین کنید.

    می توانید یک نمونه طرح را در آن مشاهده کنید File -> Examples -> LiquidCrystal -> HelloWorld_SPI(File -> Examples -> LiquidCrystal -> HelloWorld_SPI).

    این درس بعدی ما را به پایان می رساند. ما برای شما پروژه های با کیفیت آرزو می کنیم!

    نمایشگر کریستال مایع (Liquid Crystal Display) به اختصار LCD ساخته شده بر روی فناوری کریستال مایع است. هنگام طراحی دستگاه های الکترونیکی، ما به یک دستگاه ارزان قیمت برای نمایش اطلاعات نیاز داریم و دومین عامل به همان اندازه مهم، در دسترس بودن کتابخانه های آماده برای آردوینو است. از بین تمام نمایشگرهای LCD موجود در بازار، پرکاربردترین نمایشگر LCD 1602A است که قابلیت نمایش را دارد. کاراکترهای اسکیدر 2 خط (16 کاراکتر در 1 خط) هر کاراکتر در قالب یک ماتریس 5x7 پیکسل. در این مقاله به اصول اتصال نمایشگر به آردوینو می پردازیم.

    مشخصات فنی

    ولتاژ تغذیه: 5 ولت
    اندازه نمایشگر: 2.6 اینچ
    نوع نمایشگر: 2 خط در 16 کاراکتر
    رنگ نور پس زمینه: آبی
    رنگ کاراکتر: سفید
    ابعاد: 80mm x 35mm x 11mm

    توضیحات نمایش

    LCD 1602A یک ماژول الکترونیکی مبتنی بر درایور HD44780 هیتاچی است. LCD1602 دارای 16 پین است و می تواند در حالت 4 بیتی (فقط با استفاده از 4 خط داده) یا 8 بیتی (با استفاده از هر 8 خط داده) یا رابط I2C کار کند. در این مقاله در مورد اتصال در حالت 4 بیتی صحبت خواهم کرد.

    تخصیص پین:
    VSS: قدرت ماژول "-".
    VDD: قدرت ماژول "+".
    VO: خروجی کنترل کنتراست
    RS: ثبت نام انتخاب
    RW: حالت نوشتن یا خواندن را انتخاب کنید (هنگام اتصال به زمین، روی حالت نوشتن تنظیم کنید)
    E: سقوط بارق
    DB0-DB3: بیت های رابط
    DB4-DB7: بیت های رابط
    A: قدرت نور پس زمینه "+".
    K: "-" قدرت نور پس زمینه

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

    در پشت ماژول دو تراشه در طرح قطره ای (ST7066U و ST7065S) و یک مهار الکتریکی وجود دارد. مدارمن نکته ای را نمی بینم، من فقط در مورد مقاومت R8 (100 اهم) صحبت می کنم، که به عنوان یک مقاومت محدود کننده عمل می کند. نور پس زمینه LED، بنابراین می توانید 5 ولت را مستقیماً به پین ​​A وصل کنید. کمی بعد مقاله ای خواهم نوشت که در آن نحوه تغییر را به شما خواهم گفت. نور پس زمینه LCDنمایش با استفاده از PIECE و ترانزیستور.

    اتصال LCD 1602A به آردوینو (حالت 4 بیتی)

    جزئیات مورد نیاز:
    آردوینو UNO R3 x 1pc
    صفحه نمایش LCD 1602 آمپر (2×16، 5 ولت، آبی) x 1 عدد.
    سیم DuPont، 2.54 میلی‌متر، 20 سانتی‌متر، F-F (مونث - ماده) x 1 عدد.
    پتانسیومتر 10 کیلو اهم x 1 عدد.
    کانکتور PLS-16 x 1 عدد.
    تخته نان MB-102 x 1
    کابل یو اس بی 2.0A-B x 1pc

    ارتباط:
    برای اتصال از برد برد استفاده می کنیم، نمودار و جدول اتصال LCD1602a به آردوینو در حالت 4 بیتی در شکل زیر قابل مشاهده است.

    صفحه نمایش از طریق پین های PLS-16 به تخته نان وصل می شود (آنها باید به نمایشگر لحیم شوند). ماژول نمایشگر را در آن نصب کنید تخته نان بردو پاور VDD (پایه 2) را به 5 ولت (آردوینو) و VSS (پایین 1) را به GND (آردوینو) و سپس RS (پایه 4) را به پایه دیجیتال 8 (آردوینو) وصل کنید. RW (پایه 5) با اتصال آن به GND (آردوینو) به زمین متصل می شود، سپس پایه E را به پایه 8 (آردوینو) وصل می کنیم. اتصال 4 بیتی به چهار پین (DB4 تا DB7) نیاز دارد. پایه‌های DB4 (پایین 11)، DB5 (پایین 12)، DB6 (پایین 13) و DB7 (پایه 14) را به پایه‌های دیجیتال آردوینو 4، 5، 6، و 7 وصل کنید. یک پتانسیومتر 10K برای تنظیم کنتراست نمایشگر، 1602a استفاده می‌شود. نمودار اتصال LCD در زیر نشان داده شده است

    کتابخانه در حال حاضر چهارشنبه است توسعه IDEآردوینو و نیازی به نصب آن نیست. این مثال کد را در پنجره برنامه Arduino IDE کپی کرده و در کنترلر آپلود کنید.

    /* تست در Arduino IDE 1.6.11 تاریخ تست 2016/09/20 انجام شد. */ #عبارتند از ال سی دی LiquidCrystal (8، 9، 4، 5، 6، 7); void setup() ( lcd.begin(16, 2); // Initialize LCD 16x2 ) void loop() ( lcd.setCursor(0,0); // تنظیم مکان نما به خط اول lcd.print ("سلام، دنیا" // نمایش متن lcd.setCursor(0,1)؛ // مکان نما را روی خط دوم تنظیم کنید lcd.print("www.robotchip.ru"); // نمایش متن )

    تست روی Arduino IDE 1.6.11 انجام شد

    تاریخ تست 1395/09/20

    #عبارتند از

    ال سی دی LiquidCrystal (8 , 9 , 4 , 5 , 6 , 7 ) ;

    void setup()

    ال سی دی . شروع (16، 2)؛ // LCD 16x2 را راه اندازی کنید

    حلقه خالی()

    ال سی دی . چاپ ("سلام، دنیا"); // خروجی متن

    ال سی دی . print("www.robotchip.com") ; // خروجی متن

    دانلود برنامه

    کمی در مورد برنامه.
    برای تسهیل ارتباط بین آردوینو و نمایشگر LCD، از یک کتابخانه داخلی در آردوینو IDE استفاده شده است. LiquidCrystal.h - که برای نمایشگرهای LCD با استفاده از نوشته شده است HD44780 چیپست (یا تراشه های سازگار) (هیتاچی). این کتابخانه می تواند هر دو حالت 4 بیتی و 8 بیتی اتصال LCD را اداره کند.

    صفحه نمایش ال سی دیمهمان مکرردر پروژه های آردوینو ولی در طرح های پیچیدهممکن است به دلیل نیاز به اتصال شیلدی که پین ​​های زیادی دارد، مشکل کمبود پورت های آردوینو داشته باشیم. راه خروج در این شرایط می تواند باشد I2C/IICآداپتوری که تقریباً استاندارد برای سپر آردوینوبردهای 1602 تا Uno، Nano یا Mega فقط با 4 پین. در این مقاله، خواهیم دید که چگونه می توانید یک صفحه نمایش LCD را با رابط I2C متصل کنید، از چه کتابخانه هایی می توانید استفاده کنید، یک نمونه طرح کوتاه بنویسید و خطاهای معمولی را تجزیه و تحلیل کنید.

    صفحه نمایش کریستال مایع LCD 1602است انتخاب خوببرای خروجی رشته کاراکترها در پروژه های مختلف. این ارزان است، تغییرات مختلفی با رنگ های مختلف نور پس زمینه وجود دارد، می توانید به راحتی کتابخانه های آماده برای طرح های آردوینو را دانلود کنید. اما عیب اصلی این صفحه نمایش 16 پین دیجیتال است که حداقل 6 پین آن مورد نیاز است.بنابراین استفاده از این صفحه نمایش ال سی دی بدون i2c محدودیت های جدی برای بردهای آردوینو Uno یا نانو به همراه دارد. اگر مخاطبین کافی وجود ندارد، باید هزینه ای بخرید آردوینو مگایا مخاطبین را ذخیره کنید، از جمله با اتصال صفحه نمایش از طریق i2c.

    شرح مختصری از پین های LCD 1602

    بیایید نگاهی دقیق تر به پین ​​های LCD1602 بیندازیم:

    هر یک از نتایج هدف خود را دارد:

    1. GND زمینی؛
    2. منبع تغذیه 5 ولت;
    3. تنظیم کنتراست مانیتور؛
    4. فرمان، داده؛
    5. نوشتن و خواندن داده ها؛
    6. فعال کردن

    7-14. خطوط داده؛

    1. به علاوه نور پس زمینه؛
    2. منهای نور پس زمینه

    مشخصات نمایشگر:

    • نوع نمایش نمادین، امکان بارگیری نمادها وجود دارد.
    • لامپ های ال ای دی؛
    • کنترلر HD44780;
    • ولتاژ تغذیه 5 ولت؛
    • قالب بندی کاراکترهای 16x2;
    • محدوده دمای عملیاتی از -20C تا +70C، محدوده دمای ذخیره سازی از -30C تا +80C؛
    • زاویه دید 180 درجه

    نمودار سیم کشی برد LCD به آردوینو بدون i2C

    طرح استاندارد برای اتصال مستقیم مانیتور به میکروکنترلر آردوینو بدون I2C به شرح زیر است.

    به دلیل تعداد زیادی کنتاکت برای اتصال، ممکن است فضای کافی برای اتصال عناصر لازم وجود نداشته باشد. استفاده از I2C تعداد سیم ها را به 4 و پین های مشغول را به 2 کاهش می دهد.

    صفحه نمایش i2c 1602 برای آردوینو را از کجا بخریم

    صفحه نمایش LCD 1602 بسیار محبوب است، بنابراین می توانید آن را هم در فروشگاه های آنلاین داخلی و هم در سایت های خارجی به راحتی پیدا کنید. در اینجا چند پیوند به در دسترس ترین گزینه ها وجود دارد:

    • گونه ای از نمایشگر معمولی از یک فروشنده نسبتاً مشهور Wavgat با قیمت زیر 100 روبل.
    • مجموعه ای از صفحه نمایش و آداپتور i2c (شما باید خودتان آن را لحیم کنید). قیمت - زیر 200 روبل
    • صفحه نمایش i2c shield - ماژول LCD 1602 با دکمه های کنترل و برد توسعه.

    شرح پروتکل I2C

    قبل از بحث در مورد اتصال نمایشگر به آردوینو از طریق آداپتور i2c، اجازه دهید به طور خلاصه در مورد خود پروتکل i2C صحبت کنیم.

    I2C / IIC(Inter-Integrated Circuit) پروتکلی است که در اصل برای ارتباط ایجاد شده است مدارهای مجتمعداخل دستگاه الکترونیکی. توسعه متعلق به فیلیپس است. پروتکل i2c مبتنی بر استفاده از یک گذرگاه 8 بیتی است که برای اتصال بلوک ها در الکترونیک کنترل لازم است و یک سیستم آدرس دهی که به لطف آن می توانید با چندین دستگاه از طریق یک سیم ارتباط برقرار کنید. ما به سادگی داده ها را به یک یا دستگاه دیگر منتقل می کنیم و شناسه عنصر مورد نظر را به بسته های داده اضافه می کنیم.

    بیشترین مدار ساده I2C می تواند شامل یک Master (اغلب یک میکروکنترلر آردوینو) و چندین Slave (به عنوان مثال، یک صفحه نمایش LCD) باشد. هر دستگاه دارای یک آدرس در محدوده 7 تا 127 است. نباید دو دستگاه با آدرس یکسان در یک طرح وجود داشته باشد.

    برد آردوینو از i2c در سخت افزار پشتیبانی می کند. برای اتصال دستگاه ها با استفاده از این پروتکل می توانید از پین های A4 و A5 استفاده کنید.

    چندین مزیت برای کار با I2C وجود دارد:

    • فقط 2 خط برای عملیات مورد نیاز است - SDA (خط داده) و SCL (خط ساعت).
    • اتصال تعداد زیادی از دستگاه های پیشرو.
    • کاهش زمان توسعه
    • فقط یک میکروکنترلر برای کنترل کل مجموعه دستگاه ها مورد نیاز است.
    • تعداد ممکن ریز مدارهای متصل به یک اتوبوس فقط با حداکثر ظرفیت محدود می شود.
    • درجه بالایی از ایمنی داده ها به دلیل فیلتر ویژه مهار نوسانات تعبیه شده در مدارها.
    • روش ساده برای تشخیص خرابی های در حال ظهور، عیب یابی سریع.
    • این گذرگاه قبلاً در خود آردوینو ادغام شده است، بنابراین نیازی به توسعه رابط اتوبوس اضافی نیست.

    ایرادات:

    • محدودیت خازنی در خط وجود دارد - 400 pF.
    • مشکل در برنامه نویسی کنترلر I2C اگر چندین دستگاه مختلف در اتوبوس وجود داشته باشد.
    • در در تعداد زیاداگر یکی از آنها به طور کاذب پایین بیاید، محلی سازی خرابی دشوار می شود.

    ماژول i2c برای LCD 1602 آردوینو

    سریع ترین و راه راحتاستفاده از نمایشگر i2c در آردوینو، خرید یک صفحه نمایش آماده با پشتیبانی از پروتکل داخلی است. اما این صفحه نمایش ها خیلی زیاد نیستند و ارزان نیستند. اما متنوع صفحه نمایش استاندارددر حال حاضر تعداد زیادی منتشر شده است. بنابراین، امروزه مقرون به صرفه ترین و محبوب ترین گزینه خرید و استفاده از یک ماژول جداگانه I2C است - آداپتوری که به نظر می رسد:

    در یک طرف ماژول، پین های i2c - زمین، پاور و 2 برای انتقال داده را می بینیم. در آداپتور دیگر ما کانکتورهای برق خارجی را می بینیم. و البته پین ​​های زیادی روی برد وجود دارد که با کمک آنها ماژول به پین ​​های صفحه نمایش استاندارد لحیم می شود.


    برای اتصال به برد آردوینو از خروجی های I2c استفاده می شود. در صورت لزوم، منبع تغذیه خارجی را برای روشنایی وصل کنید. با صاف کننده داخلی، می توانیم مقادیر کنتراست قابل تنظیم J را تنظیم کنیم

    در بازار، می توانید ماژول های LCD 1602 را با آداپتورهای لحیم کاری شده پیدا کنید، استفاده از آنها حداکثر ساده شده است. اگر یک آداپتور جداگانه خریداری کرده اید، باید آن را از قبل به ماژول لحیم کنید.

    اتصال صفحه LCD به آردوینو از طریق I2C

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

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


    یک مانیتور LCD مجهز به i2c با استفاده از چهار سیم - دو سیم برای داده و دو سیم برای برق - به برد متصل می شود.

    • پایه GND به GND روی برد متصل است.
    • پایه VCC 5 ولت است.
    • SCL به پایه A5 متصل است.
    • SDA به پین ​​A متصل است.

    و این همه است! بدون تار عنکبوت از سیم، که در آن خیلی راحت گیج می شود. در عین حال، ما می توانیم به سادگی کل پیچیدگی اجرای پروتکل i2C را به کتابخانه ها بسپاریم.

    کتابخانه هایی برای کار با صفحه نمایش LCD i2c

    برای ارتباط آردوینو با LCD 1602 از طریق گذرگاه I2C، به حداقل دو کتابخانه نیاز دارید:

    • کتابخانه Wire.h برای کار با I2C در حال حاضر در دسترس است برنامه استانداردآردوینو IDE.
    • کتابخانه LiquidCrystal_I2C.h که شامل طیف گسترده ای از دستورات برای کنترل مانیتور از طریق گذرگاه I2C است و به شما امکان می دهد طرح را ساده تر و کوتاه تر کنید. باید کتابخانه را نیز نصب کنید پس از اتصال صفحه نمایش، باید کتابخانه LiquidCrystal_I2C.h را نیز نصب کنید.

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

    #عبارتند از #عبارتند از // اتصال کتابخانه //#include // اتصال کتابخانه جایگزین LiquidCrystal_I2C lcd(0x27,16,2); // آدرس I2C (متداول ترین مقدار) و همچنین پارامترهای صفحه نمایش (در مورد LCD 1602 - 2 خط 16 کاراکتری هر کدام //LiquidCrystal_PCF8574 lcd(0x27) را مشخص کنید؛ // نوع برای تنظیم خالی کتابخانه PCF8574 () ( lcd.init ()؛ // راه اندازی صفحه نمایش lcd.backlight(); // نور پس زمینه را وصل کنید lcd.setCursor(0,0)؛ // مکان نما را در ابتدای خط اول تنظیم کنید lcd.print( "سلام")؛ // متن را در خط اول تایپ کنید lcd.setCursor(0,1)؛ // مکان نما را در ابتدای خط دوم تنظیم کنید lcd.print("ArduinoMaster")؛ // متن را در خط دوم تایپ کنید خط ) void loop() ( )

    شرح عملکردها و روش های کتابخانه LiquidCrystal_I2C:

    • home() و clear() - اولین تابع به شما امکان می دهد مکان نما را به ابتدای صفحه بازگردانید، دومی نیز، اما در عین حال همه چیزهایی را که قبلاً روی مانیتور بود حذف می کند.
    • Write(ch) - به شما امکان می دهد یک کاراکتر ch را روی صفحه چاپ کنید.
    • cursor() و noCursor() - نشانگر/مخفی کردن مکان نما روی صفحه.
    • blink() و noBlink() - مکان نما چشمک می زند/چشمک نمی زند (اگر نمایش آن قبلاً فعال شده باشد).
    • display() و noDisplay() - به شما امکان می دهد نمایشگر را فعال/غیرفعال کنید.
    • scrollDisplayLeft() و scrollDisplayRight() - صفحه را یک کاراکتر به چپ/راست اسکرول می کند.
    • autoscroll() و noAutoscroll() - به شما امکان می دهد حالت autoscroll را فعال/غیرفعال کنید. در این حالت هر کدام شخصیت جدیددر همان مکان ضبط می شود و جایگزین آنچه قبلاً روی صفحه نوشته شده بود.
    • leftToRight() و rightToLeft() - جهت متن نمایش داده شده را تنظیم می کند - از چپ به راست یا راست به چپ.
    • createChar(ch، bitmap) - یک کاراکتر با کد ch (0 - 7) با استفاده از آرایه ای از بیت مپ های بیت مپ برای ایجاد نقاط سیاه و سفید ایجاد می کند.

    کتابخانه جایگزین برای کار با صفحه نمایش i2c

    در برخی موارد، هنگام استفاده از کتابخانه مشخص شده با دستگاه های مجهز به کنترل کننده های PCF8574، ممکن است خطاهایی رخ دهد. در این مورد، کتابخانه LiquidCrystal_PCF8574.h می تواند به عنوان جایگزین ارائه شود. LiquidCrystal_I2C را گسترش می دهد، بنابراین نباید هیچ مشکلی در استفاده از آن وجود داشته باشد.

    مشکلات اتصال صفحه نمایش ال سی دی i2c

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

    ابتدا می توانید کنتراست مانیتور را کم یا زیاد کنید. اغلب کاراکترها به دلیل کنتراست و حالت نور پس زمینه به سادگی قابل مشاهده نیستند.

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

    یکی دیگر از دلایل رایج کمبود متن روی صفحه نمایش می تواند آدرس اشتباه i2c باشد. ابتدا سعی کنید آدرس دستگاه را در طرح از 0x27 0x20 یا به 0x3F تغییر دهید. در تولید کنندگان مختلفآدرس‌های پیش‌فرض مختلف را می‌توان کدگذاری کرد. اگر این کار کمکی نکرد، می‌توانید طرح اسکنر i2c را اجرا کنید، که تمام دستگاه‌های متصل را اسکن می‌کند و آدرس آنها را با زور بی‌رحمانه تعیین می‌کند. نمونه ای از طرح یک اسکنر i2c.

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

    نتیجه

    در این مقاله به مسائل اصلی استفاده از صفحه نمایش LCD در پروژه های پیچیده آردوینو در مواقعی که نیاز به ذخیره پین ​​های رایگان روی برد داریم پرداخته ایم. یک آداپتور ساده و ارزان i2c به شما امکان می دهد یک صفحه نمایش LCD 1602 را با تنها 2 پین آنالوگ وصل کنید. در بسیاری از موقعیت ها این می تواند بسیار مهم باشد. پرداخت برای راحتی - نیاز به استفاده ماژول اضافی- مبدل و کتابخانه به نظر ما این قیمت برای راحتی زیاد نیست و استفاده از این قابلیت را در پروژه ها به شدت توصیه می کنیم.