बर्फ में एल ई डी पर लेख से प्रेरित, मैं कुछ ऐसा ही और घर पर करने की कोशिश करना चाहता था। उस लेख पर टिप्पणियों में, मैंने विचारों और कुछ मुट्ठी भर तस्वीरों को पोस्ट किया। भले ही मॉस्को क्षेत्र में बर्फ अब कम आपूर्ति में है, लेकिन इससे उत्साह कम नहीं हुआ, बल्कि इसके विपरीत, विचार को जल्द से जल्द महसूस करें जबकि अभी भी बर्फ है।
पहला प्रयास एक सांख्यिकीय रूप से चमकदार एलईडी के साथ एक बल्ब था, लेकिन थोड़ी देर बाद डायनेमिक्स के एक छोटे खंड के साथ बोर्ड पूरा हो गया।
यह कैसे काम करता है और कुछ इसी तरह कैसे करना है - कटौती के तहत देखें।
सामग्री के पीएस "हैंडीनेस", सबसे अधिक संभावना है, हैम उत्साही लोगों पर लागू होता है।
यह सब कैसे शुरू हुआ
सबसे पहले हमें चाहिए:
- जूता कवर के नीचे से एक पारदर्शी टोपी (निकटतम क्लिनिक में ली जा सकती है)
- बैटरी धारक प्रकार CR2032 (वे अलग-अलग हैं, हमें किनारे पर एक क्लिप की आवश्यकता है)
- RGB LED (मैंने प्लानर का इस्तेमाल किया, आकार 5050, फैलाना)
- प्रतिरोधों का थोड़ा सा (भी planar, 100 ओम में - हम 3V से संचालित होंगे - बैटरी)
- कॉपर पन्नी के साथ फाइबरग्लास का एक टुकड़ा
- कॉपर सल्फेट या फेरिक क्लोराइड (या क्या आप नक़्क़ाशी करने के लिए उपयोग किए जाते हैं)

बोर्ड प्राथमिक रूप से तैयार किया गया है (मैंने प्रिंटर को खरोंच भी नहीं किया है, मैंने सीडी-रोम पर ड्राइंग के लिए एक मार्कर निकाला और जल्दी से इसे खरोंच दिया, जिसके बाद मैंने तुरंत इसे etched पाने के लिए समाधान में फेंक दिया, मुझे तस्वीर लेने का समय नहीं था)।
यहाँ बोर्ड ड्राइंग है:

नक़्क़ाशी के बाद, बोर्ड को बैटरी के लिए एक धारक के आकार में काट दिया जाना चाहिए (ऐसा करने का सबसे आसान तरीका छेदों को पूर्व-ड्रिल करना और धारक को पीछे से सम्मिलित करना है, फिर मार्कर को एक मार्कर के साथ सर्कल करें।
ध्यान दें! ध्रुवीय मामले! धारक के "कान" की स्थिति देखें!) और एलईडी, प्रतिरोधों और मिलाप। धारक।
यहाँ यह क्या आता है:

एक अवरोधक को जानबूझकर बोर्ड पर हल नहीं किया गया था, मैं बैंगनी चमक प्राप्त करना चाहता था, इसके लिए मुझे लाल और नीले चैनलों को चालू करना होगा, हरे रंग को बंद करना होगा।
इस तरह एक साधारण दीपक निकलता है। हम बोर्ड को वार्निश के साथ कवर करते हैं (वास्तव में, जरूरी नहीं, लेकिन पटरियों को कम अंधेरा होने की संभावना है), बैटरी डालें, इसे एक फ्लास्क में पैक करें और स्नोबॉल बनाएं!
और फिर ओस्ताप को चोट लगी
एक प्रोग्रामर के रूप में जो किसी भी माइक्रोकंट्रोलर तकनीक की दिशा में असमान रूप से सांस लेता है, मैंने मामले में एक छोटी सी चिप को अनुकूलित करने का फैसला किया, जो इस चीज को थोड़ा और आनंद देगा, जिससे एलईडी को अलग-अलग रंगों में सुंदर रूप से झिलमिलाता हो।
ऐसा करने के लिए, मैंने Atmel ATtiny45 कंट्रोलर को लिया, जिसे व्यापक रूप से संकीर्ण सर्कल में जाना जाता था (मैं ATtiny13 चाहता था, लेकिन अचानक वे बॉक्स में नहीं थे, अंतर केवल मेमोरी आकार में है। इस लैंप के लिए प्रोग्राम ATTiny13 में फिट बैठता है), ईगल में एक बोर्ड आकर्षित किया और लेज़र-आयरन तकनीक का उपयोग कर। टेक्स्टोलाइट को फ़ॉइल करने के लिए परिणामस्वरूप पैटर्न स्थानांतरित किया।

पिछले संस्करण की तुलना में, अधिक स्थिर बिजली आपूर्ति के लिए एक संधारित्र और बोर्ड पर स्वयं माइक्रोकंट्रोलर दिखाई दिया। घटकों के संदर्भ में, आपको यहां थोड़ा रक्त करना होगा, क्योंकि बोर्ड पर जगह सीमित है। मैंने एक प्रोग्रामिंग कनेक्टर भी प्रदान नहीं किया, यह पिनों को वायरिंग द्वारा टांका गया था (विशेष रूप से इसके लिए, एलईडी चैनल प्रोग्रामिंग के लिए पिन पर थे, और मैं RESET को एक अलग मंच के रूप में लाया)। इस बोर्ड पर प्रतिरोधक और कैपेसिटर 0805 आकार के हैं।
जब बोर्ड खोदे गए थे, मैंने कार्यक्रम शुरू किया। ATtiny45 में, PWM सिग्नल का हार्डवेयर आउटपुट PB0, PB1 और कई और अधिक के पैरों पर समर्थित है। PB2 इस सूची में नहीं था। लेकिन बोर्ड पहले से ही तैयार है और etched है, इसलिए मैंने दूसरे टाइमर (टाइमर 1) को लागू करके एक सॉफ्टवेयर पीडब्लूएम बनाने का फैसला किया।
ट्यूनिंग में दीपक को अधिक लचीला बनाने के लिए, मैंने इस तरह के एक तंत्र को लागू किया। चिप में एक ROM (EEPROM) है। पहली सेल में हम एक नंबर स्टोर करेंगे जो ऑपरेशन मोड सेट करता है। प्रत्येक समावेश के बाद, हम इस मान को 1 से बढ़ाएंगे और इसे ROM में सहेजेंगे। इसलिए, कनेक्टर में बैटरी को खींचकर, आप मोड स्विच कर सकते हैं। सही एक को याद नहीं करने के लिए, मैंने प्रत्येक मोड को डुप्लिकेट किया (वास्तव में, अगला मोड बैटरी के दो ट्वीच के बाद चालू होगा)।
सभी सी कोड (AVR-GCC संकलक के लिए)#include <avr/io.h> #include <avr/eeprom.h> #include <util/delay.h> #include <avr/interrupt.h> #define r_pwm(pwm) OCR0A = pwm #define b_pwm(pwm) OCR0B = pwm #define g_pwm(pwm) OCR1A = pwm #define NUM_MODES 16 int main(void) { /* Init LED GPIO pins */ DDRB = 7; /* pins 0, 1, 2 */ /* Init PWM timers */ /* Timer0 is for R and G channels */ TCCR0A = (1<<COM0A1)|(1<<COM0B1)|(WGM01)|(WGM00); TCCR0B = (1<<CS00); /* divide by 1 */ /* Timer 1 is for B channel; enable interrupts */ TIMSK = (1<<OCIE1A)|(1<<TOIE1); TCCR1 = (1<<CS10); /* divide by 1 */ sei(); /* Get mode value from the EEPROM and update it */ uint8_t mode = eeprom_read_byte((uint8_t *) 1); mode++; if (mode >= NUM_MODES) mode = 0; eeprom_write_byte((uint8_t *) 1, mode); uint8_t i; while(1) { switch(mode >> 1) { case 0: r_pwm(255); break; case 1: g_pwm(255); break; case 2: b_pwm(255); break; case 3: r_pwm(255); g_pwm(255); break; case 4: g_pwm(255); b_pwm(255); break; case 5: r_pwm(255); b_pwm(255); break; case 6: r_pwm(255); g_pwm(255); b_pwm(255); break; case 7: for (i=0; i < 255; i++) { r_pwm(255-i); g_pwm(i); _delay_ms(20); } for (i=0; i < 255; i++) { g_pwm(255-i); b_pwm(i); _delay_ms(20); } for (i=0; i < 255; i++) { b_pwm(255-i); r_pwm(i); _delay_ms(20); } } } return 0; } ISR(TIM1_OVF_vect) { if (OCR1A != 0) PORTB |= (1<<2); } ISR(TIM1_COMPA_vect) { PORTB &= ~(1<<2); }
सर्किट बोर्ड सर्किट और तारों (ईगल सीएडी से) फ्यूज-बिट्स को
यहां गिना जा सकता
है , मुझे लगा कि 1 पीडब्ल्यूएम मेरे लिए आरामदायक पीडब्लूएम और कम बिजली की खपत के लिए पर्याप्त है। सामान्यतया, फ्यूजन बिट्स छोटे 45 के लिए मानक बन गए हैं, इसलिए आप उन्हें बदल नहीं सकते हैं।
मैं पहले से ही संभव था कि जल्द से जल्द नए शिल्प की कोशिश करूं, इसलिए, स्प्रे कैन से जल्दबाजी में वार्निश छिड़क सकता है और इसे 5 मिनट के लिए दीपक के नीचे झूठ बोलने दे सकता हूं, मैंने इसे ले लिया और एक कैमरे के साथ सड़क पर भाग गया (शाम को पहले ही काफी देर हो गई थी, परीक्षण के लिए सही परिस्थितियां)।
और यहाँ परिणाम है (वीडियो ध्यान आकर्षित करने के लिए ऊपर डाले गए एक से भिन्न नहीं है):
स्नोबॉल बिल्कुल भी ढालना नहीं चाहता था, और फिर भी मैंने अपने हाथों में एक मुट्ठी बर्फ को गर्म किया और सब कुछ काम कर गया!
महत्वहीन नहीं
विचार के लिए कॉमरेड को बहुत धन्यवाद।
किधर ।
मैंने
ड्रॉपबॉक्स में इस परियोजना पर सभी सामग्रियों को पोस्ट किया। समय आने पर, मैं एक अलग मेकफिल तैयार करूंगा, और अब अनपैक करने के बाद: एंटीरेस && मेक बिल्ड बनाऊंगा, जिसके बाद आप इमेजेस / एंटारेस.हेक्स फाइल को सुविधाजनक तरीके से चिप में अपलोड कर सकते हैं।
आपका ध्यान के लिए धन्यवाद!
UPD: स्रोत फ़ाइलों के साथ अद्यतित अभिलेखागार; अब एक मुद्रित सर्किट बोर्ड के साथ पूर्ण स्वयं-मुद्रण के लिए एक पीडीएफ फाइल है, और कार्यक्रम के साथ संग्रह में - तैयार फर्मवेयर के साथ एक हेक्स फ़ाइल।