جدول المحتويات:
- الخطوة الأولى: تجميع المستلزمات والأدوات
- الخطوة 2: الوسم والحفر والتوجيه
- الخطوة 3: الكثير من التجنيد والقطع والتجريد
- الخطوة 4: التثبيت
- الخطوة 5: اللمسات الأخيرة
فيديو: ساعة 132 بكسل: 5 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
لدي ، لطالما أتذكر ، كنت مهووسًا بمصابيح LED والوقت. في هذا المشروع ، قمت بإنشاء ساعة حائط كبيرة تعرض الوقت الحالي باستخدام 132 من مصابيح نيوبيكسل LED مثبتة ومشرقة من خلال لوحة التنوب. إنه رقمي تناظري هجين مع بكسل فردي لكل ساعة ودقيقة وثانية.
كان هذا أكبر مشروع قمت به حتى الآن ، لقد بدأت التفكير فيه منذ 6 أشهر وتوصلت الفكرة معًا ببطء. أنا سعيد حقًا بالنتيجة وأتطلع إلى مشاركتها معك.
الخطوة الأولى: تجميع المستلزمات والأدوات
عناصر
تم بناء هذا المشروع على لوحة هواية من متجر DIY المحلي الخاص بي. يبلغ عرض اللوحة 850 مم وارتفاعها 500 مم وعمقها 18 مم.
المصابيح المستخدمة في هذا المشروع هي 5050 WS2812b مثبتة على PCBs دائرية يبلغ قطرها حوالي 9 مم مع وسادات لحام في الخلف.
أنا أستخدم وحدة تحكم صغيرة متوافقة مع Arduino Pro Mini. إنها نسخة 5V 16 MHZ. لقد اخترت هذا لأنه يتميز بتصميم فائق النحافة وطباعة قدم صغيرة وجميع منافذ nessary بالإضافة إلى بعض الاحتياطيات للترقيات المستقبلية. إنه أيضًا 5 فولت حتى أتمكن من استخدام مصدر طاقة واحد لمصابيح LED ووحدة تحكم Micro و RTC
يتم الحفاظ على الوقت من خلال وحدة RTC (ساعة الوقت الحقيقي) التي تتميز بشريحة DS3231. هذه الشريحة دقيقة للغاية لذا لا ينبغي أن ينحرف الوقت كثيرًا.
تستخدم أيضا:
الأسلاك. جندى وغراء ساخن.
أدوات:
مثقاب كهربائي ومثقاب خشب (10 مم و 5 مم)
لحام حديد
مسدس الغراء الساخن
مقتطفات الأسلاك
ملحقات جهاز التوجيه Dremel والغطس
الخطوة 2: الوسم والحفر والتوجيه
حفر
- باستخدام حافة المضيق ، ابحث عن مركز اللوحة عن طريق رسم خط من الزوايا المعاكسة.
- ضع علامة على 3 دوائر باستخدام قطعة من الخيط وقلم. يجب أن تكون الدائرة الخارجية على بعد حوالي 20 مم من حافة اللوحة مع تحرك الخطين الآخرين بمقدار 15 مم من السطر الأخير.
- لقد استخدمت وجه ساعة مطبوعة لمساعدتي في تحديد مواضع كل دقيقة وثواني على الخطين والساعات الخارجيين على الخط الداخلي.
- حفر ثقوب 10 مم بعمق 5 مم تقريبًا لكل ساعة ودقيقة وثانية.
- استخدم المثقاب 5 مم لعمل ثقوب من خلال اللوحة لمدة ساعة ودقيقة وثانية.
التوجيه
على الرغم من أن هذه الخطوة ليست ضرورية ، إلا أنها ستسمح بتركيب الساعة على الحائط.
- باستخدام جهاز توجيه ودائرة توجيه قنوات الأسلاك في اللوحة
- حدد فترة راحة وقم بتوجيهها لتعيش فيها RTC و Micro Controller.
- قم بتوجيه قناة من الخطوط الخارجية إلى تجويف الأسلاك
الخطوة 3: الكثير من التجنيد والقطع والتجريد
هذا الجزء التالي أسهل بكثير للقول من القيام به. نصيحتي ستكون ملاحظة للتسرع في الأمر. حاول العثور على نظام والدخول في إيقاع.
يحتاج كل من مصابيح LED إلى 5 فولت في ، و 5 فولت للخارج ، وبيانات داخلية ، وبيانات خارج ، ودخل أرضي وخارج أرضي. بما في ذلك الطاقة لوحدة التحكم الدقيقة و RTC بها أكثر من 400 سلك ، وكلها مجردة وملحومة من كلا الطرفين.
المادة الزرقاء اللذيذة مفيدة جدًا في هذه الخطوة.
- لقد بدأت بوضع 2 من مصابيح LED في فتحاتهما بجانب بعضهما البعض لحساب طول السلك اللازم للاتصال ببعضهما البعض.
- باستخدام قطعة السلك الأولى كدليل ، قمت بعد ذلك بقطع 60 من كل سلك ملون.
- قم بفصل 2 مم من الجلب من نهايات كل سلك وقم بقصها باستخدام اللحام.
- قم بلحام كتلة صغيرة من اللحام على كل من وسادات LED.
- قم بتوصيل الأسلاك بمصابيح LED لتشكيل سلسلتين من 60 للدقائق والثواني وسلسلة واحدة من 12 للساعات. لقد استخدمت السلك الأحمر لـ 5 فولت والأصفر للبيانات والأزرق للأرض.
- احرص على توصيل كل مخرج بيانات (DOUT) بمدخل البيانات (DIN) لمصباح LED التالي
- لا يحتاج آخر مؤشر في كل سلسلة جرعة إلى سلك خارجي للبيانات.
بمجرد اكتمال جميع السلاسل ، من الجيد اختبارها قبل تثبيتها. لقد استخدمت Arduino UNO واختبار Adafruit NeoPixel Strand للتأكد من أن كل مؤشر LED يعمل.
جندى أسلاكًا أطول في كل سلسلة من السلاسل لـ 5 فولت ، والأرضي والبيانات في.
في هذه المرحلة ، يجب أن يكون هناك خمسة أسلاك 5 فولت ، وثلاثة أسلاك بيانات متصلة بـ Arduino Pro Mini و 5 أسلاك أرضية.
قم بفصل 5 مم من نهايات الأسلاك 5 فولت ولحامها جميعًا معًا وكررها للأسلاك الأرضية.
بعد الانتهاء من السلاسل الثلاث ، قم بتوصيل سلك 5 فولت إلى دبوس RAW الخاص بـ Arduino Pro Mini وأيضًا على دبوس VCC الخاص بـ RTC. سلك أرضي إلى GND على Arduino Pro Mini و RTC ثم سلكين آخرين:
SCL من RTC إلى A5 على Pro Mini
SDA من RTC إلى A4 على Pro Mini
يجب أن تتصل خطوط البيانات من مصابيح LED بـ:
- الثواني - الدبوس الرقمي 3.
- الدقائق - DigitalPin 4
- ساعات - DigitalPin 5
الخطوة 4: التثبيت
بمجرد اللحام ، يجب أن يكون تثبيت مصابيح LED في فتحاتها للأمام بشكل مستقيم. يجب تثبيت مصابيح LED بحيث تعمل البيانات في اتجاه عكس اتجاه عقارب الساعة عند النظر إليها من الخلف حيث يتم إعداد الكود في المقدمة.
لقد استخدمت كمية صغيرة من الغراء الساخن لتثبيتها لأنني أريد أن أكون قادرًا على استبدال مصباح LED واحد إذا فشل في المستقبل.
لقد استخدمت أيضًا الغراء الساخن للحفاظ على جميع الأسلاك مرتبة ومرتبة ولإصلاح موصل البرميل باللوحة.
يتوفر عدد من أدلة برمجة اردوينو برو المصغرة. أستخدم طريقة المحول الخارجي من USB إلى المسلسل لتحميل هذا الرمز على Arduino:
سيعمل هذا الرمز أيضًا على ضبط الوقت في RTC على وقت تجميعه. لذلك من المهم فقط كتم زر التحميل حتى يمتثل ويحمل في أسرع وقت ممكن.
تم استعارة الكثير من هذا الرمز من ساعة NeoPixel Ring بواسطة Andy Doro. بعضها من اختبار Adafruit NeoPixel Strand والبعض الآخر الذي جمعته معًا.
سوف تحتاج إلى تثبيت بعض المكتبات. وهي متوفرة من Libraries Manager على برنامج Arduino.
Adafruit NeoPixel لمصابيح ws2812b
سلك للتحدث إلى RTC عبر I2C (تم تضمينه كمعيار)
و RTClib لمعرفة ما تطلبه من RTC
/ *************************************************** ************************* * * ساعة NeoPixel Ring بواسطة آندي دورو ([email protected]) https://andydoro.com/ringclock/ * * ************************************************** **************************
مراجعة التاريخ
التاريخ بواسطة ماذا
20140320 AFD المسودة الأولى 20160105 AFD Faded arcs 20160916 AFD Trinket متوافق 20170727 AFD أضاف STARTPIXEL لحاوية ثلاثية الأبعاد ، نقطة بداية متغيرة ، تمت إضافة دعم DST التلقائي 20180424 AFD باستخدام مكتبة DST https://github.com/andydoro/DST_RTC *
/ تضمين كود المكتبة:
# تضمين # تضمين
#يشمل
// تعريف الدبابيس
#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5
#define BRIGHTNESS 20 // تعيين أقصى سطوع
#define r 10
# تعريف ز 10 # تعريف ب 10 RTC_DS3231 rtc ؛ // إنشاء كائن الساعة
Adafruit_NeoPixel stripS = Adafruit_NeoPixel (60، SECPIN، NEO_GRB + NEO_KHZ800) ؛ // تجريد الكائن
Adafruit_NeoPixel stripM = Adafruit_NeoPixel (60، MINPIN، NEO_GRB + NEO_KHZ800) ؛ // strip object Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24، HOUPIN، NEO_GRB + NEO_KHZ800) ؛ // قطاع بايت الكائن pixelColorRed ، pixelColorGreen ، pixelColorBlue ؛ // يحمل قيم اللون
الإعداد باطل () {
Wire.begin () ؛ // Begin I2C rtc.begin () ؛ // بدء الساعة
Serial.begin (9600) ؛
// تعيين pinmodes pinMode (SECPIN ، الإخراج) ؛ pinMode (MINPIN ، الإخراج) ؛ pinMode (HOUPIN ، الإخراج) ؛
إذا (rtc.lostPower ()) {
Serial.println ("فقدت طاقة RTC ، فلنضبط الوقت!") ؛ // السطر التالي يعين RTC على التاريخ والوقت الذي تم فيه تجميع هذا الرسم التخطيطي rtc.adjust (DateTime (F (_ DATE_)، F (_ TIME_))) ؛ // يعين هذا السطر RTC بتاريخ ووقت صريحين ، على سبيل المثال لضبط // 21 يناير 2014 في الساعة 3 صباحًا ، يمكنك الاتصال بـ: // rtc.adjust (التاريخ والوقت (2014 ، 1 ، 21 ، 3 ، 0 ، 0)) ؛ }
stripS.begin () ،
stripM.begin () ، شريط H.begin () ، //عرض الشريط()؛ // تهيئة جميع وحدات البكسل على "إيقاف"
// تسلسل بدء التشغيل
تأخير (500) ؛
ColorWipeS (stripS. Color (0 ، ز ، 0) ، 5) ؛ // Blue colorWipeM (stripM. Color (r ، 0 ، 0) ، 5) ؛ // Blue colorWipeH (شريط اللون (0 ، 0 ، ب) ، 50) ؛ // أزرق
تأخير (1000) ؛
DateTime theTime = rtc.now () ، // يأخذ في الاعتبار DST بايت secondval = theTime.second () ؛ // get seconds byte minuteval = theTime.minute () ؛ // get minutes int hourval = theTime.hour () ؛ hourval = hourval٪ 12 ؛ // هذه الساعة هي 12 ساعة ، إذا كانت 13-23 ، فحول إلى 0-11`
لـ (uint16_t i = 0 ؛ i <secondval ؛ i ++) {stripS.setPixelColor (i، 0، 0، b) ؛ stripS.show () ، تأخير (5) ؛ }
لـ (uint16_t i = 0 ؛ i <minuteval ؛ i ++) {stripM.setPixelColor (i ، 0 ، g ، 0) ؛ stripM.show () ؛ تأخير (5) ؛ }
لـ (uint16_t i = 0؛ i <hourval؛ i ++) {stripH.setPixelColor (i، r، 0، 0) ؛ شريط H.show () ، تأخير (5) ؛ }
}
حلقة فارغة () {
// احصل على وقت
DateTime theTime = rtc.now () ، // يأخذ في الاعتبار التوقيت الصيفي
بايت secondval = theTime.second () ، // الحصول على ثواني
بايت minuteval = theTime.minute () ، // get minutes int hourval = theTime.hour () ؛ // الحصول على ساعات hourval = hourval٪ 12 ؛ // هذه الساعة هي 12 ساعة ، إذا كانت 13-23 ، فحول إلى 0-11`
stripS.setPixelColor (secondval ، 0 ، 0 ، 20) ؛ stripS.show () ، تأخير (10) ؛ if (secondval == 59) {for (uint8_t i = stripS.numPixels ()؛ i> 0؛ i--) {stripS.setPixelColor (i، 0، g، 0) ؛ stripS.show () ، تأخير (16) ؛}}
stripM.setPixelColor (minuteval ، 0 ، ز ، 0) ؛
stripM.show () ؛ تأخير (10) ؛ إذا (secondval == 59 && minuteval == 59) {لـ (uint8_t i = stripM.numPixels ()؛ i> 0؛ i--) {stripM.setPixelColor (i، r، 0، 0) ؛ stripM.show () ؛ تأخير (16) ؛}}
stripH.setPixelColor (hourval، r، 0، 0) ؛
شريط H.show () ، تأخير (10) ؛ if (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels ()؛ i> 0؛ i--) {stripH.setPixelColor (i، 0، 0، b) ؛ شريط H.show () ، delay (83) ؛}} // لتصحيح الأخطاء التسلسلي Serial.print (hourval، DEC) ؛ Serial.print (':') ؛ Serial.print (minuteval ، DEC) ؛ Serial.print (':') ؛ Serial.println (secondval ، DEC) ؛ }
// املأ النقاط واحدة تلو الأخرى بلون
void colorWipeS (uint32_t c، uint8_t wait) {(uint16_t i = 0؛ i <stripS.numPixels ()؛ i ++) {stripS.setPixelColor (i، c)؛ stripS.show () ، تأخير (انتظر) ؛ }}
colorWipeM باطلة (uint32_t c، uint8_t wait) {
لـ (uint16_t i = 0 ؛ i <stripM.numPixels () ؛ i ++) {stripM.setPixelColor (i، c) ؛ stripM.show () ؛ تأخير (انتظر) ؛ }}
void colorWipeH (uint32_t c، uint8_t wait) {
لـ (uint16_t i = 0 ؛ i <stripH.numPixels () ؛ i ++) {stripH.setPixelColor (i، c) ؛ شريط H.show () ، تأخير (انتظر) ؛ }}
الخطوة 5: اللمسات الأخيرة
كل ما يجب تركه الآن هو إصلاح RTC و Micro Controller لأسفل في العطلة.
لقد قمت بتركيب جانب بطارية RTC لأعلى حتى أتمكن من تغيير البطارية بسهولة إذا لزم الأمر.
قم بتوصيل أسلاك 5 فولت بالجانب + للموصل والأرضي بالجانب
قم بتشغيله!
لقد قمت بتوصيل منجم ببنك بطارية USB ولكن شاحن هاتف USB سيعمل أيضًا.
ملحوظة:
تم ضبط سطوع المصابيح في الكود. تم ضبطه على مستوى منخفض للحفاظ على السحب الحالي منخفضًا. عند السطوع الكامل مع إضاءة جميع مصابيح LED ، يمكن أن يسحب ما يقرب من 8 أمبير. مع الإعداد الحالي ، يكون أقل من 1.
الوصيف في مسابقة الساعات
موصى به:
FLEXBALL - كرة PCB مرنة مائة بكسل مع WiFi: 6 خطوات (بالصور)
FLEXBALL - كرة مرنة PCB مائة بكسل مع WiFi: مرحبًا صناع ، إنها صانع moekoe! تعتمد لعبة Flexball على لوحة الدوائر المطبوعة المرنة والمجهزة بـ 100 WS2812 2020 LEDs قابلة للعنونة. يتم التحكم فيه بواسطة ESP8285-01f - أصغر وحدة قائمة على ESP بواسطة Espressif. بالإضافة إلى أنه يحتوي على سرعة ADXL345
مصباح بكسل ذكي: 7 خطوات (بالصور)
Pixel Smart Lamp: هذا مشروع صممته لمصباح ذكي تتحكم فيه البلوتوث مع تطبيق Android تم تطويره على Android Studio ، والهدف الرئيسي لـ Pixel هو عرض أضواء جميلة. إنه وضع ضوء الموقد ، على سبيل المثال ، دعنا نرى كيف يمكن لمدفأة بكسل واحد
مصباح الجدار المحيطي على شكل سحابة بكسل: 6 خطوات (بالصور)
Pixel Cloud Ambient Wall Light: تعديل آخر لمصباح Ikea ، أضاف مصابيح LED قابلة للعنونة ووحدة تحكم لإنشاء شيء فريد. مصممة للاستخدام في غرفة الأطفال للحصول على إضاءة محيطة ناعمة وكإضاءة ليلية. يستخدم هذا المشروع 56x APA102 بكسل قابل للعنونة ، و NLE
500 ليد بكسل RGB- لبنة: 9 خطوات (بالصور)
500 LED-Pixel RGB-Brick: منذ فترة ، قمت ببناء 10x10 LED-Coffetable مع بعض هذه المصابيح WS2812 ، ولكن حتى لو كان من الممكن لعب لعبة المدرسة القديمة Snake بهاتف ذكي متصل بها ، فأنا أريد شيئًا أكثر مميز. لذلك قررت أن أضع بعض المؤشرات الأخرى عليها ، آرا
مكعب LED بكسل بإضاءة 2.5D: 7 خطوات (بالصور)
2.5D Edge Lighting Pixel LED Cube: مصابيح LED رائعة ، فهي صغيرة جدًا ولكنها مشرقة وملونة ولكن يسهل التحكم فيها. بدأ الكثير منا في معرفة LED منذ دروسنا الأولى في الإلكترونيات. وبدأ حبي لمصابيح LED في نفس الوقت. بمجرد عرض عرض LED لأصدقائي في العمل. فتاة