يأتي كل هواة راديو ، بعد بعض الأعمال اليدوية البسيطة ، إلى هدف بناء شيء عظيم باستخدام المستشعرات والأزرار. بعد كل شيء ، يعد عرض البيانات على الشاشة أكثر إثارة للاهتمام من عرض البيانات على شاشة المنفذ. لكن السؤال الذي يطرح نفسه بعد ذلك: أي عرض تختار؟ وبشكل عام ، كيف يتم توصيله ، ما هو المطلوب للاتصال؟ ستتم مناقشة إجابات هذه الأسئلة في هذه المقالة.
LCD 1602
من بين العديد من الخيارات بين الشاشات ، أود أن أفرد شاشة LCD1602 بناءً على وحدة التحكم HD4478. يوجد هذا العرض بلونين: أحرف بيضاء على خلفية زرقاء وحروف سوداء على خلفية صفراء. لن يتسبب توصيل شاشة LCD 1602 بـ Arduino في حدوث أي مشاكل أيضًا ، نظرًا لوجود مكتبة مضمنة ، ولن تحتاج إلى تنزيل أي شيء إضافي. تختلف شاشات العرض ليس فقط في السعر ، ولكن أيضًا في الحجم. غالبًا ما يستخدم هواة الراديو 16× 2 ، أي سطرين من 16 حرفًا. ولكن يوجد أيضًا 20 × 4 ، حيث يوجد 4 أسطر من 20 حرفًا. لا تلعب الأبعاد واللون أي دور في توصيل شاشة LCD 1602 بـ Arduno ، فهي متصلة بنفس الطريقة. زاوية الرؤية 35 درجة ، وقت استجابة الشاشة 250 مللي ثانية. يمكن أن تعمل في درجات حرارة من -20 إلى 70 درجة مئوية. عند العمل يستخدم 4 مللي أمبير للشاشة و 120 مللي أمبير للإضاءة الخلفية.
أين يتم استخدامه؟
تحظى هذه الشاشة بشعبية كبيرة ليس فقط بين هواة الراديو ، ولكن أيضًا بين كبار الشركات المصنعة. على سبيل المثال ، تستخدم الطابعات وآلات القهوة أيضًا شاشة LCD1602. هذا بسبب انخفاض سعره ، هذا العرض يكلف 200-300 روبل في المواقع الصينية. الأمر يستحق الشراء هناك ، حيث إن هوامش هذه الشاشة عالية جدًا في متاجرنا.
تواصل مع اردوينو
توصيل LCD 1602 بـ Arduino Nano و Uno لا يختلف. يمكنك العمل مع الشاشة في وضعين: 4 بت و 8. عند العمل مع شاشة 8 بت ، يتم استخدام كل من البتات المنخفضة والعليا ، ومع 4 بت ، يتم استخدام الوحدات السفلية فقط. لا توجد نقطة معينة في العمل مع 8 بت ، حيث ستتم إضافة 4 جهات اتصال أخرى للاتصال ، وهو أمر غير مستحسن ، لأن السرعة لن تكون أعلى ، ويبلغ حد تحديث الشاشة 10 مرات في الثانية. بشكل عام ، يتم استخدام الكثير من الأسلاك لتوصيل LCD 1602 بـ Arduino ، مما يسبب بعض الإزعاج ، ولكن هناك دروع خاصة ، ولكن المزيد حول ذلك لاحقًا. تُظهر الصورة اتصال الشاشة بـ Arduino Uno:
مثال على الرمز:
تشمل //أضف مكتبة LiquidCrystal LCD المطلوبة (7 ، 6 ، 5 ، 4 ، 3 ، 2) ؛ // (RS، E، DB4، DB5، DB6، DB7) إعداد باطل () {lcd.begin (16، 2) ؛ // ضبط شاشة LCD.setCursor (0 ، 0) ؛ // اضبط المؤشر على بداية السطر 1 lcd.print ("مرحبًا ، العالم!") ؛ // عرض شاشة lcd. setCursor (0 ، 1) ؛ // اضبط المؤشر على بداية السطر 2 lcd.print ("fb.ru") ؛ // Output text} حلقة فارغة () {}
ماذا يفعل الكود؟ بادئ ذي بدء ، تم توصيل مكتبة للعمل مع الشاشة. كما هو مذكور أعلاه ، هذه المكتبة مضمنة بالفعل في Arduino IDE ولا تحتاج إلى تنزيلها وتثبيتها بالإضافة إلى ذلك. بعد ذلك ، يتم تحديد جهات الاتصال المتصلة بالدبابيس: RS ، E ، DB4 ، DB5 ، DB6 ، DB7 ، على التوالي. ثم يتم ضبط حجم الشاشة. نظرًا لأننا نعمل بإصدار مكون من 16 حرفًا وسطرين ، فنحن نكتب هذه القيم. قمنا بضبط المؤشر على بداية السطر الأول وعرض نصنا الأول Hello World. بعد ذلك ، ضع المؤشر على السطر الثاني واعرض اسم الموقع. هذا كل شئ! تم النظر في توصيل شاشة LCD 1602 بـ Arduino Uno.
ما هو I2C ولماذا هو مطلوب؟
كما ذكر أعلاه ، يتطلب توصيل الشاشة الكثير من المسامير. على سبيل المثال ، عند العمل مع أجهزة استشعار متعددة وشاشة LCD ، قد لا تكون جهات الاتصال 1602 كافية. غالبًا ما يستخدم هواة الراديو إصدارات Uno أو Nano ، حيث لا يوجد الكثير من جهات الاتصال. ثم جاء الناس بدروع خاصة. على سبيل المثال ، I2C. يسمح لك بتوصيل الشاشة بـ 4 دبابيس فقط. هذا أقل مرتين. تُباع وحدة I2C بشكل منفصل ، حيث تحتاج إلى لحامها بنفسك ، ولحامها بالفعلشاشة LCD 1602.
اتصال مع وحدة I2C
توصيل شاشة LCD 1602 بـ Arduino Nano باستخدام I2C يشغل مساحة صغيرة ، فقط 4 دبابيس: مخرجات أرضية وطاقة و 2 بيانات. نقوم بتوصيل الطاقة والأرض بـ 5V و GND على Arduino ، على التوالي. جهات الاتصال المتبقية: SCL و SDA متصلان بأي دبابيس تناظرية. في الصورة ، يمكنك رؤية مثال لتوصيل LCD 1602 بأردوينو بوحدة I2C:
رمز البرنامج
إذا كان من الضروري استخدام مكتبة واحدة فقط للعمل مع شاشة عرض بدون وحدة نمطية ، فستحتاج إلى مكتبتين للعمل مع وحدة نمطية. واحد منهم موجود بالفعل في Arduino IDE - Wire. مكتبة أخرى ، LiquidCrystal I2C ، تحتاج إلى تنزيلها بشكل منفصل وتثبيتها. لتثبيت المكتبة في Arduino ، يجب تحميل محتويات الأرشيف الذي تم تنزيله إلى مجلد الجذر Libraries. مثال على الكود باستخدام I2C:
تتضمنتتضمن LiquidCrystal_I2C lcd (0x27، 16، 2) ؛ // إعداد إعداد باطل العرض () {lcd.init () ؛ lcd.backlight () ؛ // قم بتشغيل الإضاءة الخلفية للعرض lcd.print ("FB.ru") ؛ lcd.setCursor (8 ، 1) ؛ lcd.print ("LCD 1602") ؛ } حلقة فارغة () {// تعيين المؤشر إلى السطر الثاني وحرف فارغ. lcd.setCursor (0 ، 1) ؛ // اطبع عدد الثواني منذ بدء تشغيل اردوينو lcd.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 - إنها منطقة مظللة. في المثال أعلاه ، يمكنك أن ترى إنشاء شخصية "مبتسم مبتسم". باستخدام برنامج مثال في Arduino ، سيبدو كما يلي:
تتضمنتضمين // تضمين المكتبة المطلوبة // Smile icon bitmask byte smile [8]={B00010، B00001، B11001، B00001، B11001، B00001، B00010،}؛ LiquidCrystal LCD (7 ، 6 ، 5 ، 4 ، 3 ، 2) ؛ // (RS، E، DB4، DB5، DB6، DB7) إعداد باطل () {lcd.begin (16، 2) ؛ // ضبط شاشة LCD.createChar (1 ، ابتسامة) ؛ // إنشاء رقم الحرف 1 lcd.setCursor (0 ، 0) ؛ // اضبط المؤشر على بداية السطر 1 lcd.print ("\ 1") ؛ // عرض الابتسامة (الحرف رقم 1) - "\ 1"} حلقة فارغة () {}
كما ترى تم إنشاؤهقناع البت هو نفس الجدول. بمجرد إنشائها ، يمكن إخراجها كمتغير للعرض. تذكر أنه يمكن تخزين 7 أحرف فقط في الذاكرة. من حيث المبدأ ، هذا يكفي. على سبيل المثال ، إذا كنت تريد إظهار رمز الدرجة
مشاكل حيث قد لا تعمل الشاشة
هناك أوقات لا تعمل فيها الشاشة. على سبيل المثال ، يتم تشغيله ، لكنه لا يعرض الأحرف. أو لا يتم تشغيله على الإطلاق. أولاً ، تحقق مما إذا كنت قد قمت بتوصيل جهات الاتصال بشكل صحيح. إذا كنت تستخدم توصيل LCD 1202 بـ Arduino بدون I2C ، فمن السهل جدًا أن تتشابك الأسلاك ، مما قد يتسبب في عمل الشاشة بشكل غير صحيح. يجب عليك أيضًا التأكد من زيادة تباين الشاشة ، لأنه على الأقل لا يمكن رؤية ما إذا كانت شاشة LCD 1602 قيد التشغيل أم لا. إذا لم يساعد ذلك ، فربما تكمن المشكلة في لحام جهات الاتصال ، وهذا عند استخدام وحدة I2C. أيضًا ، أحد الأسباب الشائعة لعدم عمل العرض هو الإعداد غير الصحيح لعنوان I2C. الحقيقة أن هناك العديد من الشركات المصنعة ، ويمكنهم تعيين عنوان مختلف ، تحتاج إلى تصحيحه هنا:
LiquidCrystal_I2C lcd (0x27، 16، 2) ؛
بين قوسين ، يمكنك رؤية قيمتين ، 0x27 و 16 ، 2 (16 ، 2 هو حجم العرض ، و 0x27 هو عنوان I2C فقط). بدلاً من هذه القيم ، يمكنك محاولة وضع 0x37 أو 0x3F. حسنًا ، هناك سبب آخر وهو ببساطة وجود خلل في شاشة LCD 1602. نظرًا لأن كل شيء تقريبًا بالنسبة إلى Arduino مصنوع في الصين ، فلا يمكنك التأكد بنسبة 100٪ من أن المنتج الذي تم شراؤهالمنتج ليس به عيب.
LCD 1602 إيجابيات وسلبيات
دعونا نلقي نظرة على إيجابيات وسلبيات شاشة LCD 1602.
الايجابيات
- السعر. يمكن شراء هذه الوحدة بسعر مناسب جدًا في المتاجر الصينية. السعر 200-300 روبل. تباع أحيانًا مع وحدة I2C.
- سهل الاتصال. ربما لا أحد يقوم بتوصيل شاشة LCD 1602 بدون I2C هذه الأيام. ومع هذه الوحدة ، يستغرق الاتصال 4 دبابيس فقط ، ولن يكون هناك "شبكات" من الأسلاك.
- البرمجة. بفضل المكتبات الجاهزة ، أصبح العمل مع هذه الوحدة أمرًا سهلاً ، حيث تم تسجيل جميع الوظائف بالفعل. وإذا أردت إضافة شخصيتك ، فلن يستغرق الأمر سوى دقيقتين.
سلبيات
خلال وقت الاستخدام من قبل الآلاف من هواة الراديو ، لم يتم تحديد عيوب كبيرة ، فقط هناك حالات شراء زواج ، حيث يتم استخدام خيارات العرض الصينية بشكل أساسي
ناقش هذا المقال كيفية توصيل شاشة LCD 1602 بـ Arduino ، وقدم أيضًا نماذج لبرامج للعمل مع هذه الشاشة. إنها حقًا واحدة من الأفضل في فئتها ، ليس فقط أن الآلاف من هواة الراديو يختارونها لمشاريعهم!