विषयसूची:

132 पिक्सेल घड़ी: 5 कदम (चित्रों के साथ)
132 पिक्सेल घड़ी: 5 कदम (चित्रों के साथ)

वीडियो: 132 पिक्सेल घड़ी: 5 कदम (चित्रों के साथ)

वीडियो: 132 पिक्सेल घड़ी: 5 कदम (चित्रों के साथ)
वीडियो: How to use Power Supply || पावर सप्लाई कौनसी लेना बेहतर है || SMPS Details || Pixel LED lights decor 2024, नवंबर
Anonim
Image
Image
132 पिक्सेल घड़ी
132 पिक्सेल घड़ी

मेरे पास, जब तक मुझे याद है, एल ई डी और समय के प्रति जुनूनी है। इस परियोजना में मैंने एक बड़ी दीवार घड़ी बनाई है जो एक स्प्रूस बोर्ड के माध्यम से घुड़सवार और चमकते हुए 132 नियोपिक्सल एलईडी का उपयोग करके वर्तमान समय को प्रदर्शित करती है। यह प्रत्येक घंटे, मिनट और सेकंड के लिए एक व्यक्तिगत पिक्सेल के साथ एक हाइब्रिड एनालॉग डिजिटल है।

यह अब तक का सबसे बड़ा प्रोजेक्ट था जिसे मैंने अब तक लिया है, मैंने इसके बारे में 6 महीने पहले सोचना शुरू किया और विचार धीरे-धीरे एक साथ आया। मैं परिणाम से वास्तव में खुश हूं और मैं इसे आपके साथ साझा करने के लिए उत्सुक हूं।

चरण 1: आपूर्ति और उपकरण इकट्ठा करना।

आपूर्ति और उपकरण इकट्ठा करना।
आपूर्ति और उपकरण इकट्ठा करना।
आपूर्ति और उपकरण इकट्ठा करना।
आपूर्ति और उपकरण इकट्ठा करना।
आपूर्ति और उपकरण इकट्ठा करना।
आपूर्ति और उपकरण इकट्ठा करना।
आपूर्ति और उपकरण इकट्ठा करना।
आपूर्ति और उपकरण इकट्ठा करना।

अवयव।

यह प्रोजेक्ट मेरे स्थानीय DIY स्टोर के एक चीप हॉबी बोर्ड पर बनाया गया है। बोर्ड 850 मिमी चौड़ा 500 मिमी ऊंचा और 18 मिमी गहरा मापता है।

इस परियोजना में उपयोग की जाने वाली एलईडी 5050 WS2812b हैं जो गोलाकार पीसीबी पर लगे होते हैं जो पीछे की तरफ सोल्डर पैड के साथ लगभग 9 मिमी व्यास के होते हैं।

मैं एक Arduino Pro Mini संगत माइक्रो नियंत्रक का उपयोग कर रहा हूं। यह 5वी 16 मेगाहर्ट्ज संस्करण है। मैंने इसे चुना क्योंकि इसमें सुपर स्लिम डिज़ाइन, छोटे फुट प्रिंट और सभी नेसरी पोर्ट और भविष्य के उन्नयन के लिए कुछ अतिरिक्त हैं। यह भी 5 वोल्ट है इसलिए मैं एल ई डी, माइक्रो नियंत्रक और आरटीसी के लिए एकल बिजली आपूर्ति का उपयोग कर सकता हूं

एक आरटीसी (रियल टाइम क्लॉक) मॉड्यूल द्वारा टाइम कीपिंग का ध्यान रखा जाता है जिसमें DS3231 चिप होता है। यह चिप बहुत सटीक है इसलिए समय बहुत ज्यादा नहीं बहना चाहिए।

यह भी उपयोग किया:

तार। मिलाप और गर्म गोंद।

उपकरण:

पावर ड्रिल और लकड़ी ड्रिल बिट्स (10 मिमी और 5 मिमी)

सोल्डरिंग आयरन

गर्म गोंद वाली बंदूक

तार के टुकड़े

डरमेल और प्लंज राउटर एक्सेसरीज

चरण 2: अंकन, ड्रिलिंग और रूटिंग

अंकन, ड्रिलिंग और रूटिंग
अंकन, ड्रिलिंग और रूटिंग
अंकन, ड्रिलिंग और रूटिंग
अंकन, ड्रिलिंग और रूटिंग
अंकन, ड्रिलिंग और रूटिंग
अंकन, ड्रिलिंग और रूटिंग

ड्रिलिंग

  • स्ट्रेट किनारे का उपयोग करते हुए विपरीत कोनों से एक रेखा खींचकर बोर्ड के केंद्र का पता लगाएं।
  • स्ट्रिंग के एक टुकड़े और एक पेन का उपयोग करके 3 मंडलियों को चिह्नित करें। सबसे बाहरी सर्कल बोर्ड के किनारे से लगभग 20 मिमी होना चाहिए, अन्य 2 लाइनें अंतिम पंक्ति से 15 मिमी आगे बढ़ रही हैं।
  • मैंने बाहरी 2 लाइनों पर प्रत्येक मिनट और सेकंड की स्थिति और आंतरिक रेखा पर घंटों को चिह्नित करने में मेरी मदद करने के लिए एक मुद्रित घड़ी का उपयोग किया।
  • हर घंटे, मिनट और सेकंड के लिए 10 मिमी छेद लगभग 5 मिमी गहरा ड्रिल करें।
  • छेद बनाने के लिए 5 मिमी ड्रिल का उपयोग करें, हालांकि बोर्ड घंटे, मिनट और सेकंड के लिए।

मार्ग

हालांकि यह कदम जरूरी नहीं है, यह घड़ी को दीवार पर फ्लश करने की अनुमति देगा।

  • बोर्ड में राउटर और सर्कल गाइड रूट वायर चैनलों का उपयोग करना
  • आरटीसी और माइक्रो कंट्रोलर के रहने के लिए एक अवकाश को चिह्नित करें और रूट करें।
  • तारों के लिए एक चैनल को बाहरी लाइनों से खांचे तक रूट करें

चरण 3: सो मच सोल्जरिंग, कटिंग और स्ट्रिपिंग।

सो मच सोल्जरिंग, कटिंग एंड स्ट्रिपिंग।
सो मच सोल्जरिंग, कटिंग एंड स्ट्रिपिंग।
सो मच सोल्जरिंग, कटिंग एंड स्ट्रिपिंग।
सो मच सोल्जरिंग, कटिंग एंड स्ट्रिपिंग।
सो मच सोल्जरिंग, कटिंग एंड स्ट्रिपिंग।
सो मच सोल्जरिंग, कटिंग एंड स्ट्रिपिंग।

यह अगला भाग करने की तुलना में कहने में बहुत आसान है। मेरी सलाह होगी कि इसे जल्दी करें। कोशिश करें और एक प्रणाली खोजें और एक लय में आ जाएं।

प्रत्येक एलईडी को 5 वोल्ट इन, 5 वोल्ट आउट, डेटा इन, डेटा आउट, ग्राउंड इन और ग्राउंड आउट की आवश्यकता होती है। माइक्रो कंट्रोलर और आरटीसी के 400 से अधिक तारों के लिए बिजली सहित, सभी को छीन लिया गया और दोनों सिरों पर मिलाप किया गया।

इस कदम के लिए एक चिपचिपा नीला पदार्थ बहुत उपयोगी है।

  • मैंने एक दूसरे से जुड़ने के लिए आवश्यक तार की लंबाई का पता लगाने के लिए एक दूसरे के बगल में उनके छेद में 2 एलईडी लगाकर शुरुआत की।
  • एक गाइड के रूप में तार के पहले टुकड़े का उपयोग करके मैंने फिर प्रत्येक रंग के तार के 60 को काट दिया।
  • प्रत्येक तार के सिरों से 2 मिमी की पट्टी बांधें और उन्हें सोल्डर से टिन करें।
  • प्रत्येक एलईडी पैड पर मिलाप का एक छोटा सा बूँद मिलाएं।
  • मिनटों और सेकंड के लिए 60 की दो श्रृंखलाएं और घंटों के लिए 12 की एक श्रृंखला बनाने के लिए तारों को एल ई डी से मिलाएं। मैंने 5V के लिए लाल तार, डेटा के लिए पीले और जमीन के लिए नीले रंग का इस्तेमाल किया।
  • प्रत्येक डेटा आउट (DOUT) को अगले LED के डेटा इन (DIN) से जोड़ने का ध्यान रखें
  • प्रत्येक श्रृंखला खुराक में अंतिम एलईडी को डेटा आउट वायर की आवश्यकता नहीं होती है।

एक बार सभी जंजीरों को पूरा करने के बाद उन्हें स्थापित करने से पहले उनका परीक्षण करना एक अच्छा विचार है। मैंने प्रत्येक एलईडी के काम करने की पुष्टि करने के लिए अपने Arduino UNO और Adafruit NeoPixel Strand Test का उपयोग किया।

5V, ग्राउंड और डेटा इन के लिए प्रत्येक श्रृंखला पर मिलाप लंबे तार।

इस बिंदु पर पांच 5v तार, तीन डेटा तार Arduino Pro Mini से जुड़े और 5 ग्राउंड तार होने चाहिए।

5 वी तारों के सिरों से 5 मिमी पट्टी करें और उन सभी को एक साथ मिलाएं और ग्राउंड तारों के लिए दोहराएं।

तीन श्रृंखलाओं को पूरा करने के बाद Arduino Pro Mini के RAW पिन पर 5V तार मिलाप और RTC के लिए VCC पिन पर भी। Arduino Pro Mini और RTC पर GND को ग्राउंड वायर और फिर 2 और वायर:

प्रो मिनी पर RTC से A5 तक SCL

प्रो मिनी पर आरटीसी से ए4 तक एसडीए

एल ई डी से डेटा लाइनों को कनेक्ट करना चाहिए:

  • सेकंड - डिजिटल पिन 3.
  • मिनट - डिजिटलपिन 4
  • घंटे - डिजिटलपिन 5

चरण 4: स्थापित करना

स्थापित कर रहा है
स्थापित कर रहा है
स्थापित कर रहा है
स्थापित कर रहा है
स्थापित कर रहा है
स्थापित कर रहा है

एक बार टांका लगाने के बाद, एल ई डी को उनके छिद्रों में स्थापित करना सीधे आगे होना चाहिए। एल ई डी को स्थापित करने की आवश्यकता है ताकि डेटा पीछे से देखने पर एंटी-क्लॉकवाइज के आसपास चलता है क्योंकि कोड सामने की ओर है।

मैंने उन्हें नीचे रखने के लिए थोड़ी मात्रा में गर्म गोंद का उपयोग किया क्योंकि मैं चाहता हूं कि भविष्य में विफल होने पर मैं एक एलईडी को बदल सकूं।

मैंने सभी तारों को साफ सुथरा रखने और बोर्ड को बैरल कनेक्टर को ठीक करने के लिए गर्म गोंद का भी इस्तेमाल किया।

कई आर्डिनो प्रो मिनी प्रोग्रामिंग गाइड उपलब्ध हैं। मैं इस कोड को Arduino पर लोड करने के लिए बाहरी USB से सीरियल कनवर्टर विधि का उपयोग करता हूं:

यह कोड RTC पर उस समय को भी सेट करेगा जब इसे संकलित किया गया था। इसलिए अपलोड बटन को बंद करना महत्वपूर्ण है ताकि यह अनुपालन करे और जितनी जल्दी हो सके अपलोड कर सके।

इस कोड का अधिकांश भाग एंडी डोरो द्वारा NeoPixel रिंग क्लॉक से उधार लिया गया था। कुछ एडफ्रूट नियोपिक्सल स्ट्रैंड टेस्ट से और कुछ मैंने एक साथ रखे।

आपको कुछ पुस्तकालय स्थापित करने की आवश्यकता होगी। वे Arduino सॉफ़्टवेयर पर लाइब्रेरी मैनेजर से उपलब्ध हैं।

Ws2812b LED के लिए Adafruit NeoPixel

I2C पर RTC से बात करने के लिए तार (यह मानक के रूप में बनाया गया है)

और RTClib यह जानने के लिए कि RTC से क्या पूछना है

/******** ************* एंडी डोरो द्वारा नियोपिक्सल रिंग क्लॉक ([email protected]) https://andydoro.com/ringclock/ * *********************************** *************

संशोधन इतिहास

दिनांक किसके द्वारा

20140320 एएफडी फर्स्ट ड्राफ्ट 20160105 एएफडी फेडेड आर्क्स 20160916 एएफडी ट्रिंकेट संगत 20170727 एएफडी ने 3डी एनक्लोजर के लिए STARTPIXEL जोड़ा, वेरिएबल शुरुआती बिंदु, डीएसटी लाइब्रेरी का उपयोग करते हुए स्वचालित डीएसटी समर्थन 20180424 एएफडी जोड़ा https://github.com/andydoro/DST_RTC *

/ पुस्तकालय कोड शामिल करें:

#शामिल करें #शामिल करें

#शामिल

// पिन परिभाषित करें

#SECPIN 3 परिभाषित करें #MINPIN 4 परिभाषित करें #HOUPIN 5 परिभाषित करें

#define BRIGHTNESS 20 // अधिकतम ब्राइटनेस सेट करें

# परिभाषित करें १०

#परिभाषित जी १० #परिभाषित बी १० आरटीसी_डीएस३२३१ आरटीसी; // घड़ी की वस्तु स्थापित करें

Adafruit_NeoPixel stripS = Adafruit_NeoPixel(60, SECPIN, NEO_GRB + NEO_KHZ800); // पट्टी वस्तु

Adafruit_NeoPixel stripM = Adafruit_NeoPixel(60, MINPIN, NEO_GRB + NEO_KHZ800); // स्ट्रिप ऑब्जेक्ट Adafruit_NeoPixel स्ट्रिपH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // स्ट्रिप ऑब्जेक्ट बाइट पिक्सेलकलररेड, पिक्सेलकोलरग्रीन, पिक्सेलकोलरब्लू; // रंग मान रखता है

व्यर्थ व्यवस्था () {

वायर.बेगिन (); // I2C rtc.begin () शुरू करें; // घड़ी शुरू करें

सीरियल.बेगिन (९६००);

// पिनमोड पिनमोड सेट करें (SECPIN, OUTPUT); पिनमोड (मिनपिन, आउटपुट); पिनमोड (HOUPIN, OUTPUT);

अगर (आरटीसी.लॉस्टपावर ()) {

Serial.println ("आरटीसी खोई हुई शक्ति, समय निर्धारित करने देता है!"); // निम्नलिखित पंक्ति आरटीसी को उस तारीख और समय पर सेट करती है जब यह स्केच संकलित किया गया था rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // यह लाइन आरटीसी को एक स्पष्ट तिथि और समय के साथ सेट करती है, उदाहरण के लिए // 21 जनवरी 2014 को 3 बजे सेट करने के लिए आप कॉल करेंगे: // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); }

स्ट्रिपएस.बेगिन ();

स्ट्रिपएम.बेगिन (); स्ट्रिपएच.बेगिन (); //कपड़े उतारने का प्रदर्शन(); // सभी पिक्सल को 'ऑफ' करने के लिए इनिशियलाइज़ करें

// स्टार्टअप अनुक्रम

देरी (500);

colorWipeS(stripS. Color(0, g, 0), 5); // नीला रंगWipeM(stripM. Color(r, 0, 0), 5); // नीला रंगWipeH(stripH. Color(0, 0, b), 50); // नीला

देरी (1000);

दिनांक समय समय = rtc.now (); // डीएसटी बाइट सेकेंडवाल = theTime.second (); को ध्यान में रखता है; // सेकंड बाइट मिनट प्राप्त करें = समय। मिनट (); // मिनट इंट आवरवल प्राप्त करें = समय। घंटा (); घंटावाल = घंटावाल% 12; // यह घड़ी 12 घंटे की है, अगर 13-23 है, तो 0-11`. में बदलें

के लिए (uint16_t i = 0; i <सेकंडवाल; i++) {tripS.setPixelColor(i, 0, 0, b); स्ट्रिपएस.शो (); देरी(५); }

के लिए (uint16_t i = 0; i <मिनटवाल; i++) {tripM.setPixelColor(i, 0, g, 0); स्ट्रिपएम.शो (); देरी(५); }

के लिए (uint16_t i = 0; i <hourval; i++) {tripH.setPixelColor(i, r, 0, 0); स्ट्रिपएच.शो (); देरी(५); }

}

शून्य लूप () {

// समय निकालो

दिनांक समय समय = rtc.now (); // डीएसटी को ध्यान में रखता है

बाइट सेकेंडवल = द टाइम.सेकंड (); // सेकंड प्राप्त करें

बाइट मिनटवल = समय.मिनट (); // मिनट इंट आवरवल प्राप्त करें = समय। घंटा (); // घंटे घंटे प्राप्त करें = घंटावाल% 12; // यह घड़ी 12 घंटे की है, अगर 13-23 है, तो 0-11`. में बदलें

stripS.setPixelColor (सेकेंडवल, 0, 0, 20); स्ट्रिपएस.शो (); देरी(10); अगर (सेकेंडवल == 59) { के लिए (uint8_t i = stripS.numPixels (); i> 0; i--) { stripS.setPixelColor (i, 0, g, 0); स्ट्रिपएस.शो (); देरी(16);}}

स्ट्रिपएम.सेट पिक्सेल रंग (मिनटवाल, 0, जी, 0);

स्ट्रिपएम.शो (); देरी(10); अगर (सेकेंडवल ==59 && मिनटवल == 59) { के लिए (uint8_t i = stripM.numPixels (); i> 0; i--) { stripM.setPixelColor (i, r, 0, 0); स्ट्रिपएम.शो (); देरी(16);}}

stripH.setPixelColor(hourval, r, 0, 0);

स्ट्रिपएच.शो (); देरी(10); अगर (सेकेंडवल == 59 && मिनटवल == 59 && घंटावल == 11) { के लिए (uint8_t i = stripH.numPixels(); i> 0; i--) { stripH.setPixelColor (i, 0, 0, b); स्ट्रिपएच.शो (); देरी (83);}} // सीरियल डिबगिंग के लिए सीरियल.प्रिंट (घंटावाल, डीईसी); सीरियल.प्रिंट (':'); सीरियल.प्रिंट (मिनटवाल, डीईसी); सीरियल.प्रिंट (':'); Serial.println (सेकेंडवल, डीईसी); }

// डॉट्स को एक के बाद एक रंग से भरें

शून्य colorWipeS (uint32_t c, uint8_t प्रतीक्षा) { के लिए (uint16_t i = 0; i < stripS.numPixels (); i ++) { stripS.setPixelColor (i, c); स्ट्रिपएस.शो (); देरी (प्रतीक्षा); } }

शून्य रंगवाइपएम (uint32_t c, uint8_t प्रतीक्षा करें) {

के लिए (uint16_t i = 0; i < stripM.numPixels (); i++) {tripM.setPixelColor(i, c); स्ट्रिपएम.शो (); देरी (प्रतीक्षा); } }

शून्य रंगवाइपएच (uint32_t c, uint8_t प्रतीक्षा करें) {

के लिए (uint16_t i = 0; i < stripH.numPixels (); i++) {tripH.setPixelColor(i, c); स्ट्रिपएच.शो (); देरी (प्रतीक्षा); } }

चरण 5: अंतिम स्पर्श

Image
Image
अंतिम स्पर्श
अंतिम स्पर्श

अब जो कुछ बचा है, वह है आरटीसी और माइक्रो कंट्रोलर को अवकाश में ठीक करना।

मैंने आरटीसी बैटरी को ऊपर की तरफ फिट किया है ताकि जरूरत पड़ने पर मैं आसानी से बैटरी बदल सकूं।

5v तारों को कनेक्टर के + साइड से और ग्राउंड को - साइड से कनेक्ट करें

इसे शक्ति दो!

मेरे पास एक यूएसबी बैटरी बैंक से जुड़ा है, लेकिन एक यूएसबी फोन चार्जर भी काम करेगा।

ध्यान दें:

एल ई डी की चमक कोड में सेट है। मौजूदा ड्रा को कम रखने के लिए इसे कम रखा गया है। सभी एल ई डी के साथ पूर्ण चमक पर यह लगभग 8 एएमपीएस खींच सकता है। वर्तमान सेटअप के साथ यह 1 से कम है।

घड़ियाँ प्रतियोगिता
घड़ियाँ प्रतियोगिता
घड़ियाँ प्रतियोगिता
घड़ियाँ प्रतियोगिता

घड़ियाँ प्रतियोगिता में उपविजेता

सिफारिश की: