جدول المحتويات:

1602 LCD Keypad Shield Module مع حقيبة ظهر I2C: 6 خطوات
1602 LCD Keypad Shield Module مع حقيبة ظهر I2C: 6 خطوات

فيديو: 1602 LCD Keypad Shield Module مع حقيبة ظهر I2C: 6 خطوات

فيديو: 1602 LCD Keypad Shield Module مع حقيبة ظهر I2C: 6 خطوات
فيديو: LCD I2C Backpack 2024, شهر نوفمبر
Anonim
1602 LCD Keypad Shield Module مع حقيبة ظهر I2C
1602 LCD Keypad Shield Module مع حقيبة ظهر I2C

كجزء من مشروع أكبر ، كنت أرغب في الحصول على شاشة LCD ولوحة مفاتيح للتنقل في بعض القوائم البسيطة. سأستخدم الكثير من منافذ الإدخال / الإخراج على Arduino لوظائف أخرى ، لذلك أردت واجهة I2C لشاشة LCD. لذلك اشتريت بعض الأجهزة ، التي تتكون من وحدة درع لوحة مفاتيح LCD 1602 من DFRobot ووحدة تسلسلية I2C مجهولة لشاشات LCD. أريد أن أستخدمها مع Arduino Nano. ثم وجدت أن هناك بعض التحديات لجعل هذه المكونات تعمل معًا - لكن هذا ممكن. لذلك أريد أن أشارك تجربتي وربما أساعد البعض الآخر.

هذه الصورة من لوحة التجارب العاملة ، والتي يمكنها عرض الرسائل على شاشة LCD وتحديد ضغطات المفاتيح. يتم التحكم في شاشة LCD من خلال واجهة I2C ، بما في ذلك الإضاءة الخلفية لشاشة LCD. يتم تلقي ضغطات المفاتيح بواسطة Arduino على الدبوس A0 (يمكن أن يكون أيًا من المسامير التناظرية ، باستثناء A4 و A5 المربوطة بواجهة I2C).

الخطوة 1: وصف الأجزاء - وحدة درع لوحة مفاتيح LCD

وصف الأجزاء - وحدة درع لوحة مفاتيح LCD
وصف الأجزاء - وحدة درع لوحة مفاتيح LCD

تتكون وحدة درع لوحة مفاتيح LCD من شاشة LCD 1602 شائعة الاستخدام مثبتة أعلى لوحة الدائرة التي تحتوي على المفاتيح ، والتي تأخذ مجموعة فرعية من اتصالات LCD وتجعلها متاحة لمسامير الرأس الموجودة على الجانب السفلي من لوحة الدائرة. أفهم أن هذه اللوحة مصممة ليتم تثبيتها أعلى Arduino Uno أو ما شابه ، وتوفر تخطيط الدبوس الصحيح للعمل في تلك البيئة. اشتريت هذه الوحدة على موقع ئي باي من بائع في الصين. يتم تمييز دبابيس الرأس الموجودة على الجانب السفلي (لوحة المفاتيح) من اللوحة في الغالب ولكن المسامير الموجودة على الجانب العلوي ، وهي واجهة LCD ، غير مصنفة. ومع ذلك ، يتم تمييز المسامير الموجودة على شاشة LCD نفسها.

الخطوة 2: وصف الأجزاء - الوحدة التسلسلية I2C

وصف الأجزاء - الوحدة التسلسلية I2C
وصف الأجزاء - الوحدة التسلسلية I2C

تحتوي الوحدة التسلسلية على الرأس المعتاد ذي 4 سنون لـ I2C ، ومجموعة من دبابيس الرأس غير الموسومة التي أفهمها تهدف إلى توصيلها مباشرة بالجانب السفلي من وحدة LCD. من خلال دراسة الملصقات الموجودة على شاشة LCD ، تمكنت من تحديد وظائف المسامير في الوحدة التسلسلية.

تعتمد هذه الوحدة على IC PCF8574T الذي ينهي بروتوكول I2C ، ويحتوي على 3 دبابيس للتحكم في العنوان (من 20 إلى 27) ويحتوي على 8 دبابيس إدخال / إخراج رقمية P0 إلى P7. وفقًا لورقة البيانات الخاصة بـ PCF8574T ، يحتوي كل طرف إدخال / إخراج على FET لسحبه إلى الأرض من أجل الحالة المنخفضة ، ويمكن أن يغرق على الأقل 20 مللي أمبير. في الحالة العالية ، لديه سحب نشط عابر ثم تيار سحب مستمر يبلغ حوالي 0.1 مللي أمبير.

في هذه الوحدة ، يتم إحضار جميع دبابيس الإدخال / الإخراج الرقمية ، باستثناء P3 ، ببساطة إلى دبابيس الرأس (على اليمين في الصورة). في حالة P3 ، يتم توصيله بقاعدة الترانزستور (يظهر في الصورة أعلى المنطقة اليمنى أسفل التسمية "LED"). يتم توصيل باعث هذا الترانزستور بـ Vss (أرضي) والمجمع متصل برأس دبوس 16 ، حيث يمكن استخدامه للتحكم في الإضاءة الخلفية لشاشة LCD. بسبب الترانزستور ، تنعكس الحالة المنطقية بالنسبة إلى تلك المفترضة في مكتبة البرامج. أي ، يتم تشغيل الإضاءة الخلفية لشاشة LCD عندما يكون طرف P3 منخفضًا ، ويتم إيقاف تشغيله عندما يكون دبوس P3 مرتفعًا.

يقول الملصق الموجود على الترانزستور L6 والذي وفقًا لبحثي يجعله على الأرجح MMBC1623L6 الذي لديه الحد الأدنى من الكسب الحالي 200. مع 0.1 مللي أمبير من تيار القاعدة ، يجب أن يكون قادرًا على الحفاظ على حالة منخفضة في المجمع الخاص به (الوحدة النمطية رقم 16) مع تيار جامع 20mA على الأقل.

بالإضافة إلى ذلك ، تحتوي هذه الوحدة على مقياس جهد 10 كيلو متصلاً بين +5 والأرض ، حيث يتم إخراج الرصاص المتغير الخاص به إلى السن 3 (الثالث من أسفل الصورة). عند الاتصال مباشرة بشاشة LCD ، سيتحكم هذا القدر في تباين شاشة LCD. ومع ذلك ، يتم توفير هذه الوظيفة من خلال وعاء مماثل منفصل على درع LCD ، لذا فإن هذا القدر الموجود على الوحدة التسلسلية ليس له وظيفة.

لم أتمكن من العثور على أي اتصال بمسمار INT الخاص بجهاز PCF8574T.

تحديث 22 أغسطس 2019

كما ذكر أعلاه ، يحتوي PCF8574 على 3 دبابيس تحكم في العنوان. يبدو أنه تم إحضارها إلى الوسادات الموجودة على لوحة حقيبة الظهر حيث تم وضع علامات عليها A0 و A1 و A2. يمكن رؤيتهم في الصورة. لم أختبر هذا ، ولكن يبدو من شبه المؤكد أنه من خلال ربط واحد أو أكثر من هذه المسامير في الوسادات المجاورة ، يمكن التحكم في عنوان I2C عبر النطاق من 20 إلى 27. علاوة على ذلك ، هناك جهاز آخر متطابق تقريبًا ، وهو PCF8574A له وظائف مماثلة لـ PCF8574 ولكنه يغطي نطاق العنوان من 0x38 إلى 0x3F.

يمكن التحقق من العنوان الذي يستخدمه جهازك بالفعل باستخدام I2CScanner. هناك العديد من ماسحات I2C البسيطة المتاحة من مصادر مختلفة. هذا واحد في https://github.com/farmerkeith/I2CScanner يحدد أيضًا بعض الأجهزة الموجودة.

الخطوة 3: التوصيلات

روابط
روابط

بفضل ChaitanyaM17 الذي قدم مخطط Fritzing الذي يصور الاتصالات الموضحة أدناه.

قوة:

تحتوي وحدة LCD على دبوس على الجانب السفلي يسمى "5.0V". إلى اليمين ، بجوار ذلك يوجد دبابيس غير موسومة وكلاهما أرضي.

عند تثبيت الوحدة التسلسلية بواجهة I2C في الطرف الأيسر ، يوجد 16 دبوسًا في الحافة السفلية. أولهما أرضي والثاني + 5 فولت. هناك خيار آخر وهو استخدام المسامير السفلية على واجهة I2C للطاقة ، لكنني وجدت أنه من الأنسب استخدام المسامير كما هو موضح أعلاه.

واجهة I2C. في الوحدة التسلسلية ، يكون الدبوس العلوي هو SCL (ساعة) ويذهب إلى Arduino A5. الدبوس الثاني هو SDA (البيانات) ويذهب إلى Arduino A4.

واجهة طباعة LCD. توجد 6 وصلات بين الوحدة التسلسلية ودرع لوحة مفاتيح LCD ، وكلها بين أطراف التوصيل بدون ملصقات. سأحددهم على وحدة LCD بالعد من اليمين إلى اليسار ، مع أول دبوس على أنه 1. هناك كتلتان من 8 ، لذلك ينتقلون من 1 إلى 16. يمكنني التعرف عليهم في الوحدة التسلسلية I2C بالعد من اليسار إلى صحيح ، هناك أيضًا 16 من هؤلاء. بالإضافة إلى ذلك ، أعطي تسمية لكل سلك ، وهو الدبوس المكافئ على Arduino المرتبط عادةً بهذه الوظيفة ، في حالة الاتصال المباشر بدون الوحدة التسلسلية.

إذن ، اتصالات البيانات الستة هي:

اردوينو المكافئ // دبوس الوحدة التسلسلية // دبوس وحدة لوحة مفاتيح LCD

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

التحكم في الإضاءة الخلفية لشاشة LCD: يستخدم هذا اتصالاً آخر:

اردوينو المكافئ // دبوس الوحدة التسلسلية // دبوس وحدة لوحة مفاتيح LCD

D10 // 16 // 11

واجهة لوحة المفاتيح: يستخدم هذا سلكًا واحدًا من دبوس وحدة LCD على الجانب السفلي المسمى "A0" ، لتثبيت A0 على Arduino. على الأقل كان ذلك سهلاً للغاية!

الخطوة 4: جعل مفتاح RST قابلاً للاستخدام مشابهًا للمفاتيح الخمسة الأخرى

يمكن توصيل RST مباشرة بمدخل RESTART في Arduino Nano.

ومع ذلك ، إذا كنت تريد أن يكون مفتاح RST قابلاً للاستخدام في البرنامج لأشياء أخرى ، فيمكن القيام بذلك عن طريق توصيل المقاوم 15K بين دبوس RST والدبوس A0 على الجانب السفلي من لوحة مفاتيح LCD.

يعمل هذا على النحو التالي: يوجد مقاوم 2K بين + 5V والمفتاح الأيمن. ثم سلسلة من المقاومات الأكبر تدريجيًا لكل مفتاح من المفاتيح الأخرى (330R للمفتاح UP ، و 620R للمفتاح DOWN ، و 1 K للمفتاح LEFT ، و 3 K3 إلى مفتاح SELECT. تتصل جميع المفاتيح (بما في ذلك مفتاح RST) بـ أرضي. عند توصيلها بمحول A / D 10 بت (كما هو الحال في Arduino Nano A0) فإنها تقدم القيم التالية تقريبًا:

يمين = 0 ؛ يصل = 100 ؛ أسفل = 260 ؛ اليسار = 410 ؛ حدد = 640.

مع المقاوم 15 k لـ RST ، فإنه يسلم حوالي 850.

سيستخدم البرنامج قيمًا حول النقاط الوسطى بين هذه القيم لتحديد المفتاح الذي تم الضغط عليه.

الخطوة 5: البرمجيات

البرمجيات المفيدة هي بالطبع تمرين للقارئ. ومع ذلك ، لتبدأ ، يمكنك إلقاء نظرة على برنامج الاختبار الخاص بي. لقد استخدمت مكتبة NewL LiquidCrystal ، التي تحتوي على دعم لواجهة I2C. كل ذلك يعمل ، بمجرد تثبيت المكتبات بشكل صحيح.

كانت النقطة الرئيسية هي عكس قطبية أوامر Backlight OFF و ON (بسبب الترانزستور في وحدة I2C كما هو موضح في قسم وصف الأجزاء).

تحديث 22 أغسطس 2019

إذا كانت لديك مشاكل مع شاشة LCD لا تعمل ، فالرجاء التحقق من عنوان I2C لحقيبتك التسلسلية باستخدام ماسح ضوئي I2C. تم إرفاق ماسح ضوئي مناسب. ثم إذا لزم الأمر ، اضبط المعلمة الأولى في البيان

LiquidCrystal_I2C lcd (0x27 ، 2 ، 1 ، 0 ، 4 ، 5 ، 6 ، 7) ؛

الخطوة السادسة: المراجعة والمناقشة

كما ترى حصلت على الوظائف الرئيسية تعمل.

هدفي التالي هو وضع هذا في صندوق مشروع كجزء من مشروع آخر. لكن بعد الانطلاق في هذا المسار ، علمت أن هناك صعوبة أخرى لم أكن أتوقعها.

تكمن الصعوبة في أن وحدة لوحة مفاتيح LCD هذه لم يتم إعدادها ليتم تثبيتها في صندوق. أي نوع من الصناديق. تكون الأزرار الموجودة في المفاتيح الستة أقل بكثير من مستوى شاشة LCD ، بحيث إذا تم تركيب الوحدة في صندوق (على سبيل المثال في الغطاء) مع الجزء العلوي من لوحة دائرة LCD مغمورة بالجانب السفلي للغطاء ، فإن الأسطح من المفاتيح حوالي 7 مم تحت الجزء العلوي من الغطاء.

الحلول الممكنة هي:

أ) تحمله. قم بعمل ثقوب للوصول في الغطاء واستخدم أداة (مثل إبرة حياكة مقطوعة بقطر مناسب) للضغط على الأزرار.

ب) قم بإزالة شاشة LCD من لوحة الدائرة النمطية وقم بإجراء عملية جراحية على لوحة المفاتيح بحيث يمكن تثبيت المكونين على غطاء صندوق المشروع بشكل مستقل (أعتقد أنه لا تزال هناك مشكلة في أن الأزرار قصيرة جدًا)

ج) إزالة الأزرار الموجودة واستبدالها بأزرار أطول. يجب أن يكون ارتفاع الأزرار الجديدة حوالي 13 مم حتى يمكن تشغيلها من خلال غطاء صندوق المشروع). مفاتيح الأزرار البديلة متاحة بسهولة في مجموعة من الارتفاعات ، بما في ذلك 13 ملم.

د) تجاهل وحدة درع لوحة مفاتيح LCD واستخدم وحدات منفصلة لشاشات الكريستال السائل ولوحة المفاتيح (أي ابدأ من جديد). هناك مجموعة واسعة من وحدات لوحة المفاتيح المتاحة ، ومع ذلك لم أر واحدة بنفس التخطيط المكون من 6 مفاتيح كما هو الحال في هذه الوحدة (على سبيل المثال ، حدد ، يسار ، أعلى ، أسفل ، يمين ، إعادة تشغيل). قد لا تكون مشكلة كبيرة ، ولكن أحد الأسباب التي دفعتني إلى البدء بهذه الوحدة هو أنني اعتقدت أن هذا التخطيط الرئيسي هو ما أريده.

أخطط للذهاب مع الحل ج) أعلاه ، وانظر كيف أذهب.

مقتطف آخر من المعلومات التي قد تكون ذات أهمية:

مع تشغيل الإضاءة الخلفية ، يكون الاستهلاك الحالي لهذا المشروع هو: Arduino Nano 21.5 مللي أمبير ؛ الوحدة التسلسلية 3.6 مللي أمبير ؛ وحدة LCD 27.5 مللي أمبير ؛ إجمالي 52 مللي أمبير.

مع إيقاف تشغيل الإضاءة الخلفية ، يكون الاستهلاك الحالي لهذا المشروع هو: Arduino Nano 21.5 مللي أمبير ؛ الوحدة التسلسلية 4.6 مللي أمبير ؛ وحدة LCD 9.8 مللي أمبير ؛ إجمالي 36 مللي أمبير.

موصى به: