جدول المحتويات:
- الخطوة 1: تجميع القطع والأعمال الخشبية
- الخطوة 2: دوائر أكريليك
- الخطوة 3: اللحام
- الخطوة 4: الكود
- الخطوة الخامسة: الزيت الدنماركي
فيديو: ساعة Ish: 5 خطوات (مع صور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
غالبًا ما أجد نفسي أشتري أشياء ليس لدي أي فكرة عما سأفعله بها. هذا المشروع هو نتيجة شراء حلقة بها 12x WS2812b LEDs قيد التشغيل. لم يكن لدي أي خطط لذلك ، لكنه بدا رائعًا عبر الإنترنت ، لذلك علقت واحدة في عربة التسوق الخاصة بي ، ولعبت بها لفترة من الوقت عندما وصلت ثم نسيت كل شيء عنها.
بعد فترة ، كنت أفكر في صنع ساعة وتذكرت أنها كانت جالسة هناك ولا أفعل أي شيء. كنت أفكر في شراء حلقة ثانية مع 60 مصباح LED لتعويض الدقائق ولكن بعد ذلك بدأت أفكر كيف نميل / أنا إلى النظر إلى الوقت وتقريبه إلى أقرب 5 دقائق.
من خلال هذا المنجم ، شرعت في استخدام حلقة 12 LED الخاصة بي لعمل ساعة ish. يعرض 1 LED في كل مرة لمدة ثانية واحدة ، للإشارة إلى الساعة (Blue LED) ثم الدقائق (Red LED) يتم تقريبها لأسفل
الخطوة 1: تجميع القطع والأعمال الخشبية
كنت محظوظًا جدًا بالوصول إلى العمل يومًا ما وتحديد منصة نقالة. تمسك هذا البليت لي لأنه لا يشبه معيارك ، تشغيل منصة الطاحونة. كان نظيفًا ومعالجًا بالحرارة وكان خشب البلوط صلبًا بشكل غير عادي.
يتكون هذا المشروع من إحدى قطع تلك البليت. (سألت الرئيس قبل أن آخذه إلى المنزل)
تستخدم أيضا:
- حلقة ws2812b LED 12 بكسل
- وحدة Real Time Clock (RTC) (Im باستخدام DS3231 مع I2C)
- متوافق مع Arduino Nano v3.0
- لوح أكريليك (5 مم)
- سلك ملون
أدوات
- حافر كهربائي
- جهاز التوجيه
- قابل للتعديل بت الخشب المسطح
- ساندر السلطة
- منشار
- لحام حديد
- مسدس الغراء الساخن
- ورق رملي
- زيت دنماركي
رملي
لقد بدأت باستخدام أداة الصنفرة القوية لتسوية وتنظيف كتلة الخشب حتى تصبح جميع الجوانب نظيفة وناعمة. لقد تركت بعض العيوب المرئية وهي ليست مستقيمة أو مربعة تمامًا كما أحب أن أتمكن من رؤية بعض التاريخ في الخشب.
تعليم وقطع الثقوب
بعد الصنفرة اخترت الجانب الذي كنت أرغب فيه وجه الساعة وقمت بتمييز المركز برسم خطوط من كل زاوية. لقد قمت بضبط قطعة الخشب القابلة للتعديل أكبر قليلاً من حلقة الصمام ، لذلك سيكون هناك رف للجلوس عليه وقطع حوالي 5 مم بعمق ثم تعديل القاطع بما يزيد قليلاً عن حجم حلقة LED ويقطع 5 مم أخرى أو نحو ذلك.
فتحات التوجيه والكابلات
باستخدام جهاز التوجيه الخاص بي مع بت 12 مم ، قمت بتوجيه فترة راحة في الجزء السفلي من الكتلة لإخفاء RTC و Arduino. يبلغ عمقها حوالي 15 ملم ولا تقل عن 5 ملم من أي حافة. لقد قمت بتمييز المركز (ish) من الأسفل وحفر لأعلى باستخدام 10mm بت بعد نصف الطريق للسماح لأسلاك LED. ثم باستخدام بت 5 مم قمت بحفره من مركز استراحة LED للوفاء بفتحة 10 مم من الأسفل.
فتحة واحدة إضافية بحجم 4 مم في الجزء الخلفي لتدخل الطاقة واستخدام بت توجيه أصغر لإنشاء قناة للأسلاك الموجودة في الجزء الخلفي من حلقة LED ويتم الانتهاء من الأعمال الخشبية.
الخطوة 2: دوائر أكريليك
لصنع أكريليك للجزء الأمامي من الساعة ، صرحت بقطع قطعة مربعة كانت أكبر بقليل من الفتحة التي كان عليها أن تملأها. ثم باستخدام أداة السنفرة الآلية لبدء إزالة الزوايا حتى أصبحت بالشكل والحجم المناسبين. انتقلت بعد ذلك إلى استخدام الصنفرة اليدوية لذا لم أفرط في إطلاق النار واضطررت إلى البدء من جديد.
لقد كانت عملية بطيئة ومملة من التجربة والخطأ حتى تناسبها تمامًا ولكني أعتقد أن النتيجة النهائية كانت تستحق العناء. انتهيت من استخدام ورق حبيبات ناعم جدًا لإضفاء مظهر بلوري على الجزء الأمامي من الأكريليك.
الخطوة 3: اللحام
أحب استخدام نظام ألوان لأسلاكي في هذه المناسبة التي أختارها:
- أحمر للطاقة (5 فولت)
- أبيض للأرض
- أصفر للبيانات
- أخضر للساعة
لقد بدأت بلحام الأسلاك الثلاثة الضرورية على حلقة LED باستخدام النظام أعلاه ودفع الأسلاك لأسفل الفتحة. نظرًا لأنه لا ينبغي أن يتعرض لأي قوة حقيقية ، فقد استخدمت القليل من الغراء الساخن لتثبيت الحلقة في مكانها. (قد أحتاج إلى تغييره في وقت ما) وتثبيت الأكريليك بقليل من الغراء الساخن حول الحافة.
ثم قمت بعد ذلك بلحام الأسلاك الأربعة على RTC باستخدام النظام أعلاه. لإبقاء الأمور أكثر إتقانًا ، قررت سحب الطاقة لـ RTC من Arduino. ثم قم بتوصيل كل شيء بـ Arduino وسلك ملحوم 1 للطاقة وآخر للأرضي بـ Arduino.
RTC
- SCL (الساعة) إلى الدبوس التناظري 5
- SDA (البيانات) إلى الدبوس التناظري 4
- VCC إلى 5V
- GND إلى أي GND على Arduino
حلقة LED
Din to Digital Pin 6
كان لدي كبل USB قديم معلق ، لذا قررت استخدامه لتشغيل الساعة. لقد قطعت النهاية التي عادة ما تتصل بشيء ودفعته عبر الفتحة الموجودة في الخلف. ثم قم بتجريد الأطراف وصقلها قبل لحام VCC في Arduino وحلقة LED إلى الجانب الإيجابي والأرض من Arduino و LED إلى الأرض. الحرارة تتقلص قليلاً في وقت لاحق وكانت تبدو جيدة ،
عاد مسدس الغراء الساخن للخارج للاحتفاظ بكل شيء. قررت ترك Arduino مع ما يكفي من اللعب حتى أتمكن من الوصول إلى منفذ USB لبرمجته في المستقبل ولكن ليس كثيرًا لدرجة أنني قد أسقط.
الخطوة 4: الكود
يجب أن تكون الآن قادرًا على تحميل هذا الرمز إلى Arduino.
إذا لم يتم تشغيل RTC ، فسيقوم هذا الرمز بتعيين الوقت بناءً على وقت تجميع الرمز ، لذا تأكد من الضغط على زر التحميل فقط وعدم التحقق.
بالتناوب ، يعمل هذا أيضًا جيدًا لتحديد الوقت.
www.instructables.com/id/Setting-the-DS130…
لقد استعرت الكثير من هذا الرمز من مكتبة Adafruit NeoPixel وبعضها من مكتبة RTC التي وجدتها والبعض الآخر صنعته بمفردي.
// تضمين رمز المكتبة: #include
#يشمل
#يشمل
// تعريف الدبابيس
#define PIN 6
#define BRIGHTNESS 20 // تعيين أقصى سطوع
#define r 5
# تعريف ز 5
# تعريف ب 5
RTC_DS3231 rtc ؛ // إنشاء كائن الساعة
شريط Adafruit_NeoPixel = Adafruit_NeoPixel (12 ، PIN ، NEO_GRB + NEO_KHZ800) ؛ // تجريد الكائن
الإعداد باطل () {
Wire.begin () ؛ // ابدأ I2C
rtc.begin () ، // بدء الساعة
Serial.begin (9600) ؛
// تعيين الرموز pinmodes
pinMode (PIN ، الإخراج) ؛
إذا (rtc.lostPower ()) {
Serial.println ("فقدت طاقة RTC ، فلنضبط الوقت!") ؛
// السطر التالي يعين RTC على تاريخ ووقت تجميع هذا الرسم التخطيطي
rtc.adjust (DateTime (F (_ DATE_)، F (_ TIME_))) ؛
// يعين هذا السطر RTC بتاريخ ووقت صريحين ، على سبيل المثال لضبطه
// 21 كانون الثاني (يناير) 2014 في الساعة 3 صباحًا ، يمكنك الاتصال:
// rtc.adjust (DateTime (2014 ، 1 ، 21 ، 3 ، 0 ، 0)) ؛
}
strip.begin () ،
عرض الشريط()؛ // تهيئة جميع وحدات البكسل على "إيقاف"
DateTime theTime = rtc.now () ، // يأخذ في الاعتبار التوقيت الصيفي
بايت secondval = theTime.second () ، // الحصول على ثواني
بايت minuteval = theTime.minute () ، // الحصول على دقائق
int hourval = theTime.hour () ؛
نقطة (شريط اللون (0 ، ز ، 0) ، 50) ؛
}
حلقة فارغة () {
// احصل على وقت
DateTime theTime = rtc.now () ، // يأخذ في الاعتبار التوقيت الصيفي
int minuteval = theTime.minute () ، // الحصول على دقائق
int hourval = theTime.hour () ؛ // احصل على ساعات
int secondval = theTime.second () ،
إذا (الدقيقة 0) {
strip.setPixelColor (0 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 9) {
strip.setPixelColor (1 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 14) {
strip.setPixelColor (2 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 19) {
strip.setPixelColor (3 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 24) {
strip.setPixelColor (4 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 29) {
strip.setPixelColor (5 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 34) {
strip.setPixelColor (6 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 39) {
strip.setPixelColor (7 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 44) {
strip.setPixelColor (8 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 49) {
strip.setPixelColor (9 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 54) {
strip.setPixelColor (10 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
وإلا إذا (الدقيقة <= 59) {
strip.setPixelColor (11 ، ص ، 0 ، 0) ؛
عرض الشريط()؛}
تأخير (1000) ؛
لـ (int i = 0 ؛ i <12 ؛ i ++) {
strip.setPixelColor (أنا ، 0 ، 0 ، 0) ؛
عرض الشريط()؛
}
إذا (hourval == 0) {
strip.setPixelColor (0 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 1) {
strip.setPixelColor (1 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 2) {
strip.setPixelColor (2 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 3) {
strip.setPixelColor (3 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 4) {
strip.setPixelColor (4 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 5) {
strip.setPixelColor (5 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 6) {
strip.setPixelColor (6 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 7) {
strip.setPixelColor (7 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 8) {
strip.setPixelColor (8 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 9) {
strip.setPixelColor (9 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 10) {
strip.setPixelColor (10 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 11) {
strip.setPixelColor (11 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 12) {
strip.setPixelColor (0 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 13) {
strip.setPixelColor (1 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 14) {
strip.setPixelColor (2 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 15) {
strip.setPixelColor (3 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 16) {
strip.setPixelColor (4 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 17) {
strip.setPixelColor (5 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 18) {
strip.setPixelColor (6 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 19) {
strip.setPixelColor (7 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 20) {
strip.setPixelColor (8 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 21) {
strip.setPixelColor (9 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 22) {
strip.setPixelColor (10 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
وإلا إذا (hourval == 23) {
strip.setPixelColor (11 ، 0 ، 0 ، ب) ؛
عرض الشريط()؛}
تأخير (1000) ؛
لـ (int i = 0 ؛ i <12 ؛ i ++) {
strip.setPixelColor (أنا ، 0 ، 0 ، 0) ؛
عرض الشريط()؛
}
// للتصحيح التسلسلي
Serial.print (hourval، DEC) ؛
Serial.print (':') ؛
Serial.print (minuteval ، DEC) ؛
Serial.print (':') ؛
Serial.println (secondval ، DEC) ؛
}
نقطة باطلة (uint32_t c، uint8_t wait) {
لـ (int j = 0 ؛ j <3 ؛ j ++) {
لـ (int i = 0 ؛ i <12 ؛ i ++) {
strip.setPixelColor (ط ، ج) ؛
عرض الشريط()؛
تأخير (انتظر) ؛
لـ (int i = 0 ؛ i <12 ؛ i ++) {
strip.setPixelColor (أنا ، 0 ، 0 ، 0) ؛
عرض الشريط()؛}
}
}
}
الخطوة الخامسة: الزيت الدنماركي
الخطوة النهائية والاختيارية هي تطبيق بعض الزيت الدنماركي على الخشب. يعجبني حقًا كيف يبرز الحبوب بالإضافة إلى أنه يوفر بعض الحماية من البقع والرطوبة. لذلك أوصي به بشدة.
يمكنك تنظيفها بالفرشاة أو استخدام قطعة قماش قديمة لمسحها.
كل ما تبقى الآن هو توصيله والاستمتاع به.
موصى به:
ساعة منبه ذكية: ساعة منبه ذكية مصنوعة من Raspberry Pi: 10 خطوات (مع صور)
المنبه الذكي: ساعة منبه ذكية مصنوعة من Raspberry Pi: هل سبق لك أن أردت ساعة ذكية؟ إذا كان الأمر كذلك ، فهذا هو الحل المناسب لك! لقد صنعت Smart Alarm Clock ، هذه ساعة يمكنك تغيير وقت التنبيه وفقًا لموقع الويب. عندما يرن المنبه ، سيصدر صوت (صفارة) وسيصدر مصباحان
C51 ساعة إلكترونية 4 بت - ساعة خشبية: 15 خطوة (مع صور)
C51 4 Bits Electronic Clock - ساعة خشبية: قضيت بعض وقت الفراغ في نهاية هذا الأسبوع ، لذا تقدمت وقمت بتجميع هذه الساعة الرقمية الإلكترونية ذات الأربع بتات 2.40 دولار أسترالي والتي اشتريتها من AliExpress منذ فترة
ساعة اردوينو بسيطة / ساعة توقيت: 6 خطوات (مع صور)
ساعة اردوينو بسيطة / ساعة توقيت: هذه & quot؛ قابلة للتوجيه & quot؛ سيُظهر لك ويعلمك كيفية إنشاء ساعة Arduino Uno بسيطة تعمل أيضًا كساعة توقيت في بضع خطوات بسيطة فقط
ميكرودوت - ساعة يد ساعة يد بنمط LED: 7 خطوات (مع صور)
Microdot - ساعة معصم ساعة بنمط LED ساعة: إنتاج آخر RGB Sunset Productions هذا المشروع عبارة عن لوحة دوائر لصنع نسخة بحجم ساعة المعصم من ساعة minidot الخاصة بي: https: //www.instructables.com/id/EEGLXQCSKIEP2876EE/ مع المزيد وظائف أكثر قابلية للتطبيق على جهاز محمول. أ
ساعة مخصصة مع عقارب صور: 5 خطوات (مع صور)
ساعة مخصصة مع عقارب صور: بعض الناس مراقبون للساعة. الآن يمكن للجميع أن يكونوا على مدار الساعة ، بينما تقوم المشاريع الأخرى بتخصيص وجه الساعة. هذا يخصص عقارب الساعة ، يبدو باهظ الثمن ، لكنه أقل من 5 دولارات ، وحوالي 30 دقيقة لكل ساعة. مثالي لـ Chr