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

وحدة تحكم Uber I2C LCD: 6 خطوات
وحدة تحكم Uber I2C LCD: 6 خطوات

فيديو: وحدة تحكم Uber I2C LCD: 6 خطوات

فيديو: وحدة تحكم Uber I2C LCD: 6 خطوات
فيديو: Servo Motor with Potentiometer and LCD with Arduino 2024, يوليو
Anonim
وحدة تحكم Uber I2C LCD
وحدة تحكم Uber I2C LCD
وحدة تحكم Uber I2C LCD
وحدة تحكم Uber I2C LCD
وحدة تحكم Uber I2C LCD
وحدة تحكم Uber I2C LCD

الديباجة

يوضح هذا Instructable كيفية إنشاء وحدة تحكم قائمة على HD44780 LCD (صورة 1 أعلاه). تسمح الوحدة للمستخدم بالتحكم في جميع جوانب شاشة LCD برمجيًا عبر I2C ، بما في ذلك ؛ شاشة LCD وشاشة التباين وشدة الإضاءة الخلفية. على الرغم من استخدام Arduino Uno R3 لتصميم النموذج الأولي ، إلا أنه سيعمل بشكل جيد مع أي متحكم يدعم I2C.

مقدمة

كما هو مذكور أعلاه ، توثق هذه المقالة إنشاء وحدة تحكم I2C LCD ، فقد كان الغرض منها في المقام الأول بمثابة تمرين تصميم لتحديد المدة التي سيستغرقها إنشاء PCB عمليًا.

يحل التصميم محل وحدة التحكم العامة القياسية (صورة 3 أعلاه) ويعتمد على Instructables والمكتبات التي أنتجتها سابقًا.

من النموذج الأولي للمفهوم (الموافقة المسبقة عن علم 2 أعلاه) إلى ثنائي الفينيل متعدد الكلور المكتمل والمختبر بالكامل (صورة 1 أعلاه) ، استغرق الأمر ما مجموعه 5.5 أيام.

ما الأجزاء التي أحتاجها؟ انظر فاتورة المواد المرفقة أدناه

ما هو البرنامج الذي أحتاجه؟

  • اردوينو IDE 1.6.9 ،
  • Kicad v4.0.7 إذا كنت تريد تعديل PCB. وإلا ، فما عليك سوى إرسال "LCD_Controller.zip" إلى JLCPCB.

ما هي الأدوات التي أحتاجها؟

  • مجهر x3 على الأقل (لحام SMT) ،
  • مكواة لحام SMD (مع قلم تدفق سائل ولحام بقلب متدفق) ،
  • ملاقط قوية (لحام SMT) ،
  • كماشة رفيعة (نقطة وفتحة الأنف) ،
  • DMM مع فحص الاستمرارية الصوتية.

ما المهارات التي احتاجها؟

  • الكثير من الصبر
  • قدر كبير من البراعة اليدوية والتنسيق الممتاز بين اليد والعين ،
  • مهارات لحام ممتازة.

المواضيع التي تمت تغطيتها

  • مقدمة
  • نظرة عامة على الدائرة
  • تصنيع ثنائي الفينيل متعدد الكلور
  • نظرة عامة على البرنامج
  • اختبار التصميم
  • استنتاج
  • المراجع المستخدمة

الخطوة 1: نظرة عامة على الدائرة

نظرة عامة على الدائرة
نظرة عامة على الدائرة

يوجد مخطط دائري كامل لجميع الإلكترونيات في الصورة 1 أعلاه ، جنبًا إلى جنب مع ملف PDF مماثل أدناه.

تم تصميم الدائرة لتكون بديلاً دقيقًا لوحدة تحكم PCF8574A I2C LCD القياسية مع التحسينات التالية ؛

  • مستخدم I2C اختيار 3v3 أو 5v التوافق ،
  • التحكم في التباين الرقمي أو إعداد القدر التقليدي ،
  • اختيار شدة الإضاءة الخلفية المتغيرة مع التحكم في وظيفة التيسير الرباعي لتحقيق بهت سلس.

التحكم في شاشة LCD

هذا فاكس لوحدة تحكم I2C LCD القياسية التي تستخدم PCF8574A (IC2) لتحويل I2C إلى تحويل متوازي.

عنوان I2C الافتراضي لهذا هو 0x3F.

توافق 3v3 أو 5v I2C

للعملية 3v3 تناسب Q1 و Q2 ROpt1 و 2 و 5 و 6 و IC1 و C2 و C2.

إذا كانت العملية 5 فولت مطلوبة ، فلا تلائم أي مكونات 3 ضد 3 ، واستبدلها بـ 0 أوم مقاومات ROpt 3 و 4.

تباين رقمي

يتم تحقيق التحكم في التباين الرقمي من خلال استخدام مقياس الجهد الرقمي U2 MCP4561-103E / MS و C4 ، R5.

إذا كانت هناك حاجة إلى مقياس جهد ميكانيكي تقليدي ، فيمكن تركيبه على PCB ، RV1 10K ، بدلاً من U2 و C4 و R5. راجع BoM لمعرفة مقياس الجهد المتوافق.

من خلال سد وصلة العبور J6 ، يكون عنوان I2C هو 0x2E. يفترض للتشغيل العادي أن هذا هو جسر.

اختيار شدة الإضاءة الخلفية المتغيرة

يتم التحكم في شدة الإضاءة الخلفية المتغيرة عن طريق تعديل PWM للضوء الخلفي LED LCD عبر U1 pin 6 و ATTiny85. من أجل الحفاظ على التوافق الكامل مع وحدة التحكم I2C LCD القياسية R1 ، يتم استخدام T1 R7 و T2 لتعديل سكة الإمداد + ve.

عنوان I2C الافتراضي لهذا هو 0x08. يمكن اختيار هذا من قبل المستخدم ، في وقت الترجمة قبل برمجة U1.

الخطوة 2: تصنيع ثنائي الفينيل متعدد الكلور

تصنيع ثنائي الفينيل متعدد الكلور
تصنيع ثنائي الفينيل متعدد الكلور
تصنيع ثنائي الفينيل متعدد الكلور
تصنيع ثنائي الفينيل متعدد الكلور
تصنيع ثنائي الفينيل متعدد الكلور
تصنيع ثنائي الفينيل متعدد الكلور
تصنيع ثنائي الفينيل متعدد الكلور
تصنيع ثنائي الفينيل متعدد الكلور

كما ذكرنا سابقًا ، كان هذا Instructable تمرينًا ، يهدف في المقام الأول إلى تحديد المدة التي سيستغرقها إكمال التصميم (والذي كان له غرض عملي).

في هذه الحالة ، فكرت في المفهوم الأولي بعد ظهر يوم السبت وأكملت النموذج الأولي بحلول مساء السبت الصورة 1 أعلاه. كانت فكرتي كما هو مذكور ، هي إنشاء متغير خاص بي لوحدة تحكم I2C LCD ، مع نفس البصمة ، مما يوفر تحكمًا برمجيًا كاملاً في شاشة LCD عبر I2C.

تم تطوير المخطط التخطيطي وتخطيط PCB باستخدام Kicad v4.0.7 pics 2 و 3. اكتمل هذا بعد ظهر يوم الأحد وتم طلب الأجزاء من Farnell وتم تحميل PCB إلى JLCPCB بحلول مساء الأحد.

وصلت المكونات من Farnell يوم الأربعاء ، تليها PCBs من JLCPCB يوم الخميس (استخدمت خدمة توصيل DHL لتسريع الأمور) صور 4 و 5 و 6 و 7.

بحلول مساء يوم الخميس ، تم إنشاء لوحين (متغيرات 3v3 و 5v) واختبارهما بنجاح على شاشة LCD مقاس 4 × 20. صور 8 و 9 و 10.

5.5 يوم مدهش من الفكرة الأولية حتى الاكتمال.

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

الخطوة 3: نظرة عامة على البرنامج

نظرة عامة على البرنامج
نظرة عامة على البرنامج
نظرة عامة على البرنامج
نظرة عامة على البرنامج

هناك ثلاثة أجزاء رئيسية للبرنامج الضروري للتحكم في وحدة تحكم I2C LCD ؛

1. مكتبة أردوينو LiquidCrystal_I2C_PCF8574

متاح هنا

لاستخدامها في رسم Arduino للتحكم في شاشة LCD.

ملاحظة: يعمل هذا بشكل جيد مع وحدة التحكم العامة في الوحدة النمطية I2C LCD. فقط يعطي وظائف من المكتبات الأخرى.

2. MCP4561_DIGI_POT مكتبة أردوينو

لاستخدامها في الرسم الخاص بك للتحكم برمجيًا في تباين شاشة LCD

متاح هنا

3. تحكم برمجي في مستويات الإضاءة الخلفية لشاشات الكريستال السائل باستخدام وظيفة التخفيف PWM و Quartic لتحقيق خبو سلس

كما ذكرنا سابقًا ، تحتوي اللوحة على ATTiny85 واحد يستخدم للتحكم في التلاشي التدريجي للضوء الخلفي للشاشة.

ترد تفاصيل هذا البرنامج في "يتلاشى LED السلس PWM مع ATTiny85".

في هذه الحالة من أجل الحفاظ على أبعاد PCB النهائية مثل وحدة تحكم LCD العامة ، تم اختيار متغير SOIC الخاص بـ ATTiny85. تظهر الصورتان 1 و 2 كيف تمت برمجة واختبار ATTiny85 SOIC في إعداد النموذج الأولي.

الكود المبرمج في ATTiny85 كان "Tiny85_I2C_Slave_PWM_2.ino" متاح هنا

للحصول على تفاصيل حول كيفية إنشاء مبرمج ATTiny85 خاص بك ، راجع هذا التعليمات "برمجة ATTiny85 و ATTiny84 و ATMega328P: Arduino As ISP"

الخطوة 4: اختبار التصميم

اختبار التصميم
اختبار التصميم
اختبار التصميم
اختبار التصميم

لاختبار التصميم ، قمت بإنشاء رسم تخطيطي باسم "LCDControllerTest.ino" والذي يسمح للمستخدم بتعيين أي معلمة خاصة بشاشات الكريستال السائل مباشرة عبر اتصال طرفي تسلسلي.

يمكن العثور على الرسم التخطيطي في مستودع GitHub I2C-LCD-Controller-Module الخاص بي

توضح الصورة 1 أعلاه ضغط اللوحة المتوافق مع 5v I2C والمجهز بشاشة LCD مقاس 4 × 20 والصورة 2 هي الشاشة الافتراضية عند تشغيل كود الاختبار لأول مرة.

يستخدم القيم الافتراضية التالية للضوء الخلفي والتباين ؛

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((بدون توقيع طويل) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

لقد وجدت أن هذه تعمل بشكل جيد مع شاشة LCD مقاس 4 × 20 التي كنت قد استلقيت عليها.

الخطوة 5: الخاتمة

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

عادة ما يكلفك الخطأ بضعة أسابيع في الجدول ويفجر هامش الربح (وربما وظيفتك).

سميت مركبات ثنائي الفينيل متعدد الكلور بأنها "أعمال فنية" ، لأنها كانت بالفعل أعمالًا فنية. تم إنشاؤه مرتين بالحجم الكامل باستخدام شريط كريب أسود لزج بواسطة "متتبع" أو شخص رسم وتم تصغيره فوتوغرافيًا بواسطة المنزل الفاخر لجعل الصور تقاوم الإستنسل.

تم أيضًا إنشاء مخططات الدوائر بواسطة أدوات التتبع ورسمت يدويًا من ملاحظات التصميم الخاصة بك. تم عمل النسخ بصورة ثابتة وسميت "مطبوعات زرقاء". لأنها كانت دائما زرقاء اللون.

كانت وحدات التحكم الصغيرة في مهدها فقط ، وعادة ما يتم محاكاتها في الدائرة إذا كانت شركتك قادرة على تحمل تكلفة واحدة مع بيئة التطوير المعقدة والمكلفة المصاحبة.

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

هذا يعني أنك قضيت الكثير من الوقت في محاولة فهم كيفية عمل شيء ما وقضيت وقتًا أقل في صنعه.

تم رسم جميع المخططات الخاصة بك يدويًا ، عادةً على A4 أو A3 وكان لا بد من التفكير فيها جيدًا ، مما يمنحها تدفقًا منطقيًا لمسار الإشارة من اليسار إلى اليمين. عادةً ما تعني التصحيحات أنك بحاجة إلى البدء بورقة جديدة.

بالنسبة للجزء الأكبر ، تم تطوير دائرتك النهائية باستخدام لوحة veroboard للديمومة وتم تركيبها في حاوية ABS بسيطة لمنحها تلك "اللمسة الاحترافية".

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

شيء كان يمكن أن تحلم به منذ أقل من عقد من الزمان.

كيف تغيرت الأمور للأفضل.

الخطوة 6: المراجع المستخدمة

التقاط تخطيطي KiCAD وتصميم ثنائي الفينيل متعدد الكلور

كيكاد EDA

أداة تطوير برامج Arduino ORG

اردوينو

LiquidCrystal_I2C_PCF8574 مكتبة اردوينو

هنا

مكتبة أردوينو MCP4561_DIGI_POT

هنا

يتلاشى السلس PWM LED مع ATTiny85

هنا

برمجة ATTiny85 و ATTiny84 و ATMega328P: Arduino As ISP

موصى به: