كيفية توصيل شاشة OLED I2C بالاردوينو
مقدمة: مقدمة لشاشة OLED I2C 128*64 / 128*32.
مرحبًا! كوني من هواة الإلكترونيات، فأنا متأكد من أن كل ما نقوم به - الألعاب الإلكترونية، أو المنتجات محلية الصنع، أو المشاريع الكبيرة - كلها بدافع الفضول والكسل. يسعى الفضول إلى فهم وفهم المجهول الواسع، لمعرفة كيف يعمل هناك، وماذا يفعل، وكيف يتحرك. والكسل يخترع شيئًا ليتوصل إليه، حتى لا يقوم، ولا يقترب، ولا يرفع، ولا يتسخ أو أي شيء آخر مهم.
نظرًا لأن رؤية المعلومات أفضل من معرفة ما هو على وشك الحدوث في أجهزتنا، أو ما حدث بالفعل، أو ما يحدث، فسنرغب بالتأكيد في تلقي هذه المعلومات المفيدة للغاية من وحدات التحكم الدقيقة أو أجهزة الاستشعار أو الأجهزة الأخرى لدينا. وعلى أية حال، أريد تلقي أي رسائل، مثل الأسئلة والتحذيرات والتذكيرات والرموز والنجوم والقلوب وما شابه ذلك.
بالنسبة لأولئك الذين لديهم أيضًا رغبة مماثلة، إليك دليل مختصر لتوصيل واختبار شاشات OLED الصغيرة وغير المكلفة.
سنتحدث بعد ذلك عن أحد نماذج شاشات OLED المتاحة على نطاق واسع لهواة الراديو، والتي يتم التحكم فيها بواسطة شريحة SSD1306، ويبلغ حجم الشاشة 0.96 بوصة ودقة 128*64 أو 128*32 بكسل. تعتبر شاشات العرض هذه مثالية لتصميمات راديو الهواة الصغيرة والمشاريع محلية الصنع.
سنقوم بربطه مع Arduino UNO/NANO وسنبرمجه أيضًا من خلال Arduino.
اتبع التعليمات لفهم كيفية توصيل شاشة OLED وتكوينها بشكل صحيح مع Arduino وكيفية عرض رسالة مخصصة على شاشتها.
نحن نفعل كل شيء خطوة بخطوة.
نحتاج فقط إلى أربعة أشياء:
بشكل عام، يعد شراء أجزاء لمشاريع مختلفة على Aliexpress وEbay أمرًا رائعًا جدًا، بينما تعمل في مشروع واحد، تكون قطع الغيار لمشروع آخر في الطريق بالفعل. الشيء الرئيسي هو عدم نسيان تقديم الطلب.
يتم التحكم في الشاشة بواسطة شريحة SSD1306، التي تدعم خمسة بروتوكولات اتصال، أحدها هو I2C. يتم نقل البيانات باستخدام هذا البروتوكول عبر سلكين فقط، وكلما قل عدد الأسلاك في العلبة، كان ذلك أفضل، لذلك فهو يناسبنا جيدًا.لكن! هناك وحدات مع بروتوكول SPI وحتى مع تبديل البروتوكول، لذا كن حذرًا عند شراء هذه الوحدة.
الدبابيس المستخدمة:
شاشة OLED - SCL/SCK (ساعة) وSDA (بيانات)، طاقة "زائد" (VCC) وطاقة "ناقص" (GND).
الدبابيس المستخدمة:
Arduino UNO - SCL/SCK على A5 و SSD على A4، طاقة "زائد" (+5 فولت) وطاقة "ناقص" (GND).
توصيل الشاشة بالاردوينو:
يحتوي كل جهاز على ناقل I2C على عنوان سداسي عشري، ولا يمكن تغييره، وهو متصل بسلك صلب، ويجب على كل مصنع مسؤول الإشارة إليه في مكان ما على العلبة أو في التعليمات. هناك وحدات تحتوي على مفاتيح ووصلات يمكن استخدامها لتغيير العنوان، ولكن... إذا كانت الأجهزة رخيصة إلى حد العار، فقد لا تهتم الشركة المصنعة بالتعامل مع مثل هذه التفاصيل الصغيرة، لذلك سيتعين عليك تحديد ذلك بنفسك.
في المجمل، يمكن استخدام ما يصل إلى 127 عنوانًا في الناقل - 119 للأجهزة و8 عناوين الخدمة. يتم التواصل على هذه العناوين. هناك رئيسي، ويعرف أيضًا باسم السيد، وهناك عبد، ويعرف أيضًا باسم العبد - السادة يسألون، والعبيد يجيبون، كل شيء بسيط.
نظرًا لأن شاشة OLED الخاصة بنا تستخدم بروتوكول الاتصال I2C، وقد لا يتم تحديد العنوان، فسنحاول معرفة هذا العنوان بأنفسنا.
يمكنك القيام بذلك عن طريق تحميل رسم قصير على لوحة Arduino الخاصة بك مع توصيل OLED. لكن!
لا تتعجل في تحميل المخطط على Arduino على الفور! لنقم أولاً بتنزيل "برامج التشغيل"، أي. فلنقم بتوصيل المكتبات، وللقيام بذلك سننتقل فورًا إلى "الخطوة رقم 5"، ثم نعود ونواصل.
قم بتنزيل CODE Finder_I2C_Hex_Address.ino، وقم بتحميله إلى Arduino.
افتح "Port Monitor"، واضبط السرعة على 9600 وإذا كان كل شيء متصلاً بشكل صحيح، فسيعرض البرنامج عنوان الجهاز، في حالتي OLED بعنوان 0x3F.
لكي يعمل كل شيء بشكل صحيح، وليس عليك إعادة اختراع العجلة، تحتاج إلى توصيل مكتبتين ببيئة ArduinoIDE، وهما: ADAFRUIT GFX و ADAFRUIT SSD1306، وهما ضروريان لكي يتمكن Arduino من التواصل بشكل مستقل مع شاشة OLED.
يمكنك تضمين هذه المكتبات باتباع الخطوات التالية.
مع أحدث الإصدارات من المكتبات، عملت شاشة العرض الخاصة بي بشكل ملتوي، قد يكون هذا بالطبع بسبب انحناء يدي، ولكن بعد أن قمت بتثبيت الإصدارات الأولى من هذه المكتبات، بدأ كل شيء يبدو سلسًا وجميلًا. لسبب ما، تتبادر إلى ذهني سطور بوشكين:
والخبرة يا ابن الأخطاء الصعبة،
والعبقري صديق المفارقات.
هناك طريقة أخرى لتثبيت المكتبات وهي العثور على هذه المكتبات وتنزيلها وتثبيتها بنفسك.
على سبيل المثال جيثب:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
هذه هي نفس مكتبات Adafruit، ولكن يمكن البحث عن مكتبات مماثلة بسهولة في محركات البحث، بناءً على طلب OLED I2C. يقوم العديد من المتحمسين بكتابة مكتبات "لأنفسهم" ثم نشرها على الويب. المكتبة التي ستستخدمها متروك لك.
من أجل عرض الحروف الروسية على الشاشة، هناك حاجة أيضا إلى مكتبات خاصة، ولكن هذا موضوع منفصل لمقال منفصل.
بعد تثبيت المكتبات، يمكنك العودة إلى الخطوة 4 ومعرفة العنوان السداسي العشري لشاشة العرض الخاصة بك.
للتحقق مما إذا كان كل شيء يعمل كما هو متوقع، قم بتشغيل مثال الاختبار من ArduinoIDE.
لهذا:
انتقل إلى ملف > أمثلة > SSD 1306 > حدد 128x64 i2c
إذا حصلت على "خطأ"، فحاول تحديد SSD 1306 > 128x32 i2c.
في حالة حدوث "خطأ" مرة أخرى، حاول تغيير عنوان I2C في السطر 61 من الكود التجريبي واستبداله بعنوان شاشة العرض الذي حددته في الخطوة رقم 4.
إذا حدث الخطأ مرة أخرى، يمكنك محاولة تحرير ملف Adafruit_SSD1306.h، فهو موجود في مجلد مكتبات Arduino.
افتح ملف Adafruit_SSD1306.h في محرر النصوص وابحث عن السطور:
قم بإلغاء تعليق السطر:
يجب أن تبدو هذه:
إذا حدث الخطأ مرة أخرى، فأنت بحاجة إلى التحقق من الاتصالات الصحيحة.
بمجرد اكتمال التنزيل، سترى رسمًا متحركًا للاختبار على الشاشة، مما يعني أنك قمت بإعداد شاشة OLED بنجاح.
عندما تستمتع تمامًا بهذه الرسوم المتحركة، يمكنك الانتقال إلى الخطوة التالية.
لكتابة رسالتك الخاصة، قم أولاً بإنشاء رسم جديد في بيئة برمجة ArduinoIDE.
في الرأس ندرج 4 مكتبات:
ثم نكتب بروتوكول إعادة التعيين:
في VOID SETUP، نشير إلى العنوان السداسي العشري لشاشتنا 0x3C، والذي تعلمناه في "الخطوة رقم 4".
ثم نقوم بتهيئة الشاشة ومسحها:
بعد ذلك، في VOID LOOP، نكتب الرمز الرئيسي، أي رسالتنا التي نريد عرضها على الشاشة.
للقيام بذلك، نصف حجم النص، ولون النص، وموضع المؤشر، وأخيرًا، نعرض الرسالة باستخدام أمر println:
وفي النهاية لا تنسى أن تكتب عرض.عرضبحيث يتم عرض الصورة على الشاشة، وإلا سوف تحصل على فراغ.
إذا قمت بكل شيء بشكل صحيح، فستظهر رسالة على شاشات العرض.
إليك رمز Starting_with_Arduino_OLED.ino لبرنامجنا:
مرحبًا! كوني من هواة الإلكترونيات، فأنا متأكد من أن كل ما نقوم به - الألعاب الإلكترونية، أو المنتجات محلية الصنع، أو المشاريع الكبيرة - كلها بدافع الفضول والكسل. يسعى الفضول إلى فهم وفهم المجهول الواسع، لمعرفة كيف يعمل هناك، وماذا يفعل، وكيف يتحرك. والكسل يخترع شيئًا ليتوصل إليه، حتى لا يقوم، ولا يقترب، ولا يرفع، ولا يتسخ أو أي شيء آخر مهم.
نظرًا لأن رؤية المعلومات أفضل من معرفة ما هو على وشك الحدوث في أجهزتنا، أو ما حدث بالفعل، أو ما يحدث، فسنرغب بالتأكيد في تلقي هذه المعلومات المفيدة للغاية من وحدات التحكم الدقيقة أو أجهزة الاستشعار أو الأجهزة الأخرى لدينا. وعلى أية حال، أريد تلقي أي رسائل، مثل الأسئلة والتحذيرات والتذكيرات والرموز والنجوم والقلوب وما شابه ذلك.
بالنسبة لأولئك الذين لديهم أيضًا رغبة مماثلة، إليك دليل مختصر لتوصيل واختبار شاشات OLED الصغيرة وغير المكلفة.
سنتحدث بعد ذلك عن أحد نماذج شاشات OLED المتاحة على نطاق واسع لهواة الراديو، والتي يتم التحكم فيها بواسطة شريحة SSD1306، ويبلغ حجم الشاشة 0.96 بوصة ودقة 128*64 أو 128*32 بكسل. تعتبر شاشات العرض هذه مثالية لتصميمات راديو الهواة الصغيرة والمشاريع محلية الصنع.
الخطوة 1: المفاهيم الأساسية
سنقوم بربطه مع Arduino UNO/NANO وسنبرمجه أيضًا من خلال Arduino.
- OLED هو صمام ثنائي عضوي باعث للضوء، أي جهاز شبه موصل مصنوع من مركبات عضوية يبدأ في إصدار الضوء عندما يمر تيار كهربائي من خلاله.
- ARDUINO هي عبارة عن منصة للتدريب وبناء أنظمة الأتمتة والروبوتات.
- اردوينو آي دي - بيئة التطوير. هذا برنامج برمجة اردوينو مجاني.
- I2C – دوائر متكاملة، خط اتصال بين الرقائق.
- رسم، ويعرف أيضًا باسم الكود، ويعرف أيضًا باسم البرنامج - مصطلحات اردوينو.
اتبع التعليمات لفهم كيفية توصيل شاشة OLED وتكوينها بشكل صحيح مع Arduino وكيفية عرض رسالة مخصصة على شاشتها.
نحن نفعل كل شيء خطوة بخطوة.
الخطوة 2: الملحقات
نحتاج فقط إلى أربعة أشياء:
- 1. يبلغ حجم شاشة OLED نفسها 0.96 بوصة (يمكنك شراؤها من موقع Aliexpress أو Ebay، فهي طويلة ولكنها رخيصة الثمن!).
- 2. Arduino UNO/Nano (نفس مكان الشاشة).
- 3. توصيل الأسلاك (المرجع نفسه).
- 4. كمبيوتر أو كمبيوتر محمول مثبت عليه ArduinoIDE.
بشكل عام، يعد شراء أجزاء لمشاريع مختلفة على Aliexpress وEbay أمرًا رائعًا جدًا، بينما تعمل في مشروع واحد، تكون قطع الغيار لمشروع آخر في الطريق بالفعل. الشيء الرئيسي هو عدم نسيان تقديم الطلب.
الخطوة 3: توصيل الشاشة
يتم التحكم في الشاشة بواسطة شريحة SSD1306، التي تدعم خمسة بروتوكولات اتصال، أحدها هو I2C. يتم نقل البيانات باستخدام هذا البروتوكول عبر سلكين فقط، وكلما قل عدد الأسلاك في العلبة، كان ذلك أفضل، لذلك فهو يناسبنا جيدًا.لكن! هناك وحدات مع بروتوكول SPI وحتى مع تبديل البروتوكول، لذا كن حذرًا عند شراء هذه الوحدة.
الدبابيس المستخدمة:
شاشة OLED - SCL/SCK (ساعة) وSDA (بيانات)، طاقة "زائد" (VCC) وطاقة "ناقص" (GND).
الدبابيس المستخدمة:
Arduino UNO - SCL/SCK على A5 و SSD على A4، طاقة "زائد" (+5 فولت) وطاقة "ناقص" (GND).
توصيل الشاشة بالاردوينو:
- في سي سي - 5 فولت
- غند - غند
- سدا-A4
- SCL-A5
الخطوة 4: الماسح الضوئي I2C
يحتوي كل جهاز على ناقل I2C على عنوان سداسي عشري، ولا يمكن تغييره، وهو متصل بسلك صلب، ويجب على كل مصنع مسؤول الإشارة إليه في مكان ما على العلبة أو في التعليمات. هناك وحدات تحتوي على مفاتيح ووصلات يمكن استخدامها لتغيير العنوان، ولكن... إذا كانت الأجهزة رخيصة إلى حد العار، فقد لا تهتم الشركة المصنعة بالتعامل مع مثل هذه التفاصيل الصغيرة، لذلك سيتعين عليك تحديد ذلك بنفسك.
في المجمل، يمكن استخدام ما يصل إلى 127 عنوانًا في الناقل - 119 للأجهزة و8 عناوين الخدمة. يتم التواصل على هذه العناوين. هناك رئيسي، ويعرف أيضًا باسم السيد، وهناك عبد، ويعرف أيضًا باسم العبد - السادة يسألون، والعبيد يجيبون، كل شيء بسيط.
نظرًا لأن شاشة OLED الخاصة بنا تستخدم بروتوكول الاتصال I2C، وقد لا يتم تحديد العنوان، فسنحاول معرفة هذا العنوان بأنفسنا.
يمكنك القيام بذلك عن طريق تحميل رسم قصير على لوحة Arduino الخاصة بك مع توصيل OLED. لكن!
لا تتعجل في تحميل المخطط على Arduino على الفور! لنقم أولاً بتنزيل "برامج التشغيل"، أي. فلنقم بتوصيل المكتبات، وللقيام بذلك سننتقل فورًا إلى "الخطوة رقم 5"، ثم نعود ونواصل.
الخطوة 4: تابع:
قم بتنزيل CODE Finder_I2C_Hex_Address.ino، وقم بتحميله إلى Arduino.
افتح "Port Monitor"، واضبط السرعة على 9600 وإذا كان كل شيء متصلاً بشكل صحيح، فسيعرض البرنامج عنوان الجهاز، في حالتي OLED بعنوان 0x3F.
الخطوة 5: تنزيل المكتبات وتوصيلها
لكي يعمل كل شيء بشكل صحيح، وليس عليك إعادة اختراع العجلة، تحتاج إلى توصيل مكتبتين ببيئة ArduinoIDE، وهما: ADAFRUIT GFX و ADAFRUIT SSD1306، وهما ضروريان لكي يتمكن Arduino من التواصل بشكل مستقل مع شاشة OLED.
يمكنك تضمين هذه المكتبات باتباع الخطوات التالية.
- 1. في ArduinoIDE، انتقل إلى قائمة Sketch.
- 2. حدد "تضمين المكتبات".
- 3. حدد "إدارة المكتبات".
- 4. ابحث عن ADAFRUIT GFX وقم بتثبيتها.
- 5. ابحث عن ADAFRUIT SSD1306 وقم بتثبيتها.
مع أحدث الإصدارات من المكتبات، عملت شاشة العرض الخاصة بي بشكل ملتوي، قد يكون هذا بالطبع بسبب انحناء يدي، ولكن بعد أن قمت بتثبيت الإصدارات الأولى من هذه المكتبات، بدأ كل شيء يبدو سلسًا وجميلًا. لسبب ما، تتبادر إلى ذهني سطور بوشكين:
والخبرة يا ابن الأخطاء الصعبة،
والعبقري صديق المفارقات.
هناك طريقة أخرى لتثبيت المكتبات وهي العثور على هذه المكتبات وتنزيلها وتثبيتها بنفسك.
على سبيل المثال جيثب:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
هذه هي نفس مكتبات Adafruit، ولكن يمكن البحث عن مكتبات مماثلة بسهولة في محركات البحث، بناءً على طلب OLED I2C. يقوم العديد من المتحمسين بكتابة مكتبات "لأنفسهم" ثم نشرها على الويب. المكتبة التي ستستخدمها متروك لك.
من أجل عرض الحروف الروسية على الشاشة، هناك حاجة أيضا إلى مكتبات خاصة، ولكن هذا موضوع منفصل لمقال منفصل.
بعد تثبيت المكتبات، يمكنك العودة إلى الخطوة 4 ومعرفة العنوان السداسي العشري لشاشة العرض الخاصة بك.
الخطوة 6: عرض الاختبار
للتحقق مما إذا كان كل شيء يعمل كما هو متوقع، قم بتشغيل مثال الاختبار من ArduinoIDE.
لهذا:
انتقل إلى ملف > أمثلة > SSD 1306 > حدد 128x64 i2c
إذا حصلت على "خطأ"، فحاول تحديد SSD 1306 > 128x32 i2c.
في حالة حدوث "خطأ" مرة أخرى، حاول تغيير عنوان I2C في السطر 61 من الكود التجريبي واستبداله بعنوان شاشة العرض الذي حددته في الخطوة رقم 4.
إذا حدث الخطأ مرة أخرى، يمكنك محاولة تحرير ملف Adafruit_SSD1306.h، فهو موجود في مجلد مكتبات Arduino.
افتح ملف Adafruit_SSD1306.h في محرر النصوص وابحث عن السطور:
//#تعريف SSD1306_128_64
#تعريف SSD1306_128_32
// #تعريف SSD1306_96_16
قم بإلغاء تعليق السطر:
#تعريف SSD1306_128_64.
يجب أن تبدو هذه:
#تعريف SSD1306_128_64
//#تعريف SSD1306_128_32
// #تعريف SSD1306_96_16
إذا حدث الخطأ مرة أخرى، فأنت بحاجة إلى التحقق من الاتصالات الصحيحة.
بمجرد اكتمال التنزيل، سترى رسمًا متحركًا للاختبار على الشاشة، مما يعني أنك قمت بإعداد شاشة OLED بنجاح.
عندما تستمتع تمامًا بهذه الرسوم المتحركة، يمكنك الانتقال إلى الخطوة التالية.
الخطوة 7: اكتب رسالتك الخاصة
لكتابة رسالتك الخاصة، قم أولاً بإنشاء رسم جديد في بيئة برمجة ArduinoIDE.
في الرأس ندرج 4 مكتبات:
#تشمل <SPI.h>
#تشمل <Wire.h>
#تتضمن <Adafruit_GFX.h>
#تشمل <Adafruit_SSD1306.h>
ثم نكتب بروتوكول إعادة التعيين:
#تعريف OLED_RESET 4
عرض Adafruit_SSD1306 (OLED_RESET)؛
في VOID SETUP، نشير إلى العنوان السداسي العشري لشاشتنا 0x3C، والذي تعلمناه في "الخطوة رقم 4".
ثم نقوم بتهيئة الشاشة ومسحها:
Display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Display.clearDisplay();
بعد ذلك، في VOID LOOP، نكتب الرمز الرئيسي، أي رسالتنا التي نريد عرضها على الشاشة.
للقيام بذلك، نصف حجم النص، ولون النص، وموضع المؤشر، وأخيرًا، نعرض الرسالة باستخدام أمر println:
Display.setTextSize(2);
Display.setTextColor(WHITE);
Display.setCursor(0,0);
println("أحسنت!");
Display.display();
وفي النهاية لا تنسى أن تكتب عرض.عرضبحيث يتم عرض الصورة على الشاشة، وإلا سوف تحصل على فراغ.
إذا قمت بكل شيء بشكل صحيح، فستظهر رسالة على شاشات العرض.
إليك رمز Starting_with_Arduino_OLED.ino لبرنامجنا:
الرمز البريدي
[946 ب] (تنزيلات: 4908)
فصول رئيسية مماثلة
مثيرة للاهتمام بشكل خاص
التعليقات (10)