NexxDigital - कंप्यूटर और ऑपरेटिंग सिस्टम

आइए रेनॉल्ट क्लियो कार की हेडलाइट के उदाहरण का उपयोग करके ऑडी की तरह एक रनिंग टर्न सिग्नल बनाने पर विचार करें। आइए एक डिवाइस में टर्न सिग्नल और डीआरएल बनाएं।

इसके लिए आपको क्या चाहिए: LED स्ट्रिप जिसमें ws2812b LED शामिल हैं Arduino नैनो नियंत्रक(किसी अन्य रूप में उपयोग किया जा सकता है) यूएसबी आउटपुट वाले मोबाइल फोन के लिए कार चार्जर। चूँकि Arduino नियंत्रक को 5V के वोल्टेज की आवश्यकता होती है, हम इस चार्जर का उपयोग 12V से 5V तक वोल्टेज कनवर्टर के रूप में करेंगे। 5V KR142EN5V (KREN5V) या किसी अन्य आयातित एनालॉग के लिए वोल्टेज स्टेबलाइजर। पुल-अप प्रतिरोध के रूप में 3 10 kOhm प्रतिरोधक।

कनेक्शन आरेख

Arduino नियंत्रक को 12V -> 5V कनवर्टर के माध्यम से कार के नेटवर्क से जोड़ा जाना चाहिए ताकि सर्किट में वोल्टेज इग्निशन चालू करने से आए। आपको सकारात्मक तार को मौजूदा टर्न सिग्नल से KREN5V वोल्टेज स्टेबलाइजर से कनेक्ट करना होगा। यह आलेख केवल एक टर्न सिग्नल के कनेक्शन और फर्मवेयर पर चर्चा करता है; दूसरा टर्न सिग्नल बनाने के लिए, आपको इसी तरह दूसरी एलईडी पट्टी को Arduino के किसी भी मुफ्त डिजिटल आउटपुट (उदाहरण के लिए 7) से कनेक्ट करना होगा, और इसके लिए कोड भी जोड़ना होगा हमारे उदाहरण के अनुसार फर्मवेयर।

नियंत्रक फ़र्मवेयर

पिक्सेल एलईडी के साथ काम करने के लिए आपको एक लाइब्रेरी की आवश्यकता होगी . आप इसे इस प्रकार स्थापित कर सकते हैं: स्केच -> लाइब्रेरी कनेक्ट करें -> लाइब्रेरी प्रबंधित करें। इसके बाद, सर्च मेनू में लाइब्रेरी का नाम Adafruit_NeoPixel.h दर्ज करें और इंस्टॉल बटन पर क्लिक करें। उसके बाद, स्केच को प्रोग्राम में डालें और कोड में एलईडी की संख्या बदलें (हम 22 डायोड का उपयोग करते हैं):

#शामिल करना // लाइब्रेरी कनेक्ट करें
Adafruit_NeoPixel स्ट्रिप = Adafruit_NeoPixel(22, 8, NEO_GRB + NEO_KHZ800);
int t,t1,t2,t3,t4,p2,p1 = 0;//समय चर
व्यर्थ व्यवस्था() (
पिनमोड(2, इनपुट);
पिनमोड(3, इनपुट);
पिनमोड(4, इनपुट);
डिजिटलराइट(2, कम);
डिजिटलराइट(3, कम);
डिजिटलराइट(4, कम);

पट्टी.शुरू();
कपड़े उतारने का प्रदर्शन();

}
शून्य लूप() (
यदि (digitalRead(2) == LOW) ( //यदि टर्न सिग्नल बंद है
for(int i = 0; i< 23; i++) {
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(255,255,255)); // आर=255, जी=255, बी=255 - एलईडी का सफेद रंग, चालू होने पर हम चालू लाइटें चालू करते हैं
}
कपड़े उतारने का प्रदर्शन();
}

यदि ((digitalRead(2) == हाई) और (t == 1)) ( // जांचें कि टर्न सिग्नल चालू है या नहीं
for(int i = 0; i< 23; i++) {
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(0, 0, 0)); // सभी डायोड को बुझा दें
}
कपड़े उतारने का प्रदर्शन();
for(int k = 0; k< 3; k++){ // цикл до трех - сигнал «перестроения» , при кратковременном включении мигает 3 раза,

for(int i = 0; i< 23; i++){

यदि (डिजिटलरीड(2) == हाई) (के = 0;) // यदि टर्न सिग्नल ब्लिंक करते समय हमें एक और सकारात्मक सिग्नल प्राप्त होता है, तो काउंटर को रीसेट करें ताकि टर्न सिग्नल कम से कम 3 बार और ब्लिंक हो
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(255, 69, 0)); // आर=255, जी=69, बी=0 - एलईडी रंग

विलंब((t4)/22);
कपड़े उतारने का प्रदर्शन();

}
यदि (digitalRead(2) == HIGH) (t4=t4+20;) // यदि सभी डायोड पीले रंग में जल रहे हैं, लेकिन रिले से सिग्नल अभी भी आ रहा है, तो हम जलने का समय बढ़ा देते हैं
यदि (digitalRead(2) == LOW) (t4=t4-20;) // यदि सभी डायोड पीले रंग में जल रहे हैं, लेकिन रिले से सिग्नल अभी भी आ रहा है, तो हम जलने का समय बढ़ा देते हैं

for(int i = 0; i< 23; i++){

स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(0, 0, 0)); // आर=0, जी=0, बी=0 - एलईडी रंग

विलंब((t3)/22);
कपड़े उतारने का प्रदर्शन();

}
यदि ((digitalRead(2) == कम)) (t3=t3+20;)
यदि ((digitalRead(2) == उच्च)) (t3=t3-20;)
}

यदि ((digitalRead(2) == HIGH) & (t == 0)) ( // जांचें कि टर्न सिग्नल चालू है या नहीं

t1 = मिलिस(); //याद रखें कि आपने किस समय चालू किया था
for(int i = 0; i< 22; i++) {
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(255, 69, 0)); // जब आप पहली बार टर्न सिग्नल चालू करते हैं, तो सभी डायोड पीले रंग में चालू करें
}
कपड़े उतारने का प्रदर्शन();
जबकि (डिजिटलरीड(2) == हाई) ()
t2 = मिलिस(); // याद रखें कि टर्न सिग्नल किस समय बंद हुआ था
t4=t2-t1;

for(int i = 0; i< 22; i++) {
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(0, 0, 0)); // जब टर्न रिले से सिग्नल गायब हो जाए तो डायोड को बुझा दें
}
कपड़े उतारने का प्रदर्शन();
जबकि (digitalRead(2) == कम) (
यदि ((मिलिस()-t2)>2000)(ब्रेक;)
}
यदि ((मिलिस()-t2)<2000) {
t3 = millis()-t2; // वह समय जिसके लिए टर्न सिग्नल बंद हो जाते हैं
टी = 1; // ध्वज, हम जानते हैं कि समय मान सहेजा गया है।
}
}

यदि (digitalRead(4) == हाई) ( //विशेष संकेत
for(int j = 0; j< 16; j++) {
for(int i = 0; i< 22; i++) {
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(255, 0, 0)); // आर=255, जी=0, बी=0 - एलईडी रंग
}
कपड़े उतारने का प्रदर्शन();
विलंब(20);
for(int i = 0; i< 22; i++){

}
कपड़े उतारने का प्रदर्शन();
विलंब(20);
}

for(int j = 0; j< 16; j++) {
for(int i = 0; i< 22; i++) {
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(0, 0, 255)); // आर=0, जी=0, बी=255 - एलईडी रंग
}
कपड़े उतारने का प्रदर्शन();
विलंब(20);
for(int i = 0; i< 22; i++){
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(0, 0, 0)); // आर=0, जी=0, बी=0 - एलईडी रंग
}
कपड़े उतारने का प्रदर्शन();
विलंब(20);
}
}

यदि (digitalRead(3) == हाई) ( //strobe
for(int j = 0; j< 24; j++) {
for(int i = 0; i< 22; i++) {
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(255, 255, 255)); // आर=255, जी=255, बी=255 - एलईडी रंग
}
कपड़े उतारने का प्रदर्शन();

विलंब(15);
for(int i = 0; i< 22; i++){
स्ट्रिप.सेटपिक्सेल कलर(i, स्ट्रिप.कलर(0, 0, 0)); // आर=0, जी=0, बी=0 - एलईडी रंग
}
कपड़े उतारने का प्रदर्शन();
विलंब(15);
}
विलंब(500);

दूसरे टर्न सिग्नल के कोड के लिए भी ऐसा ही करें।

हमारी हेडलाइट कैसे काम करती है इसका वीडियो

मैंने पिछले साल "गोप" कहा था - यह कूदने का समय है :)
या यों कहें, चालू टर्न सिग्नलों की वादा की गई समीक्षा करें।
मैंने एक सिलिकॉन ट्यूब में 1 मीटर काले WS2812B टेप (144 LED) का ऑर्डर दिया, ऑर्डर करते समय मैंने "ब्लैक 1m 144led IP67" चुना (शायद किसी को सब्सट्रेट का सफेद रंग पसंद आएगा, ऐसा विकल्प है)।

चेतावनी

मुझे दो आधे मीटर के टुकड़ों से मिला हुआ एक टेप मिला। इसका नकारात्मक पक्ष एक कमजोर सोल्डरिंग बिंदु (समय के साथ संपर्क टूट सकता है) और एलईडी के बीच बढ़ा हुआ अंतर है।
खरीदने से पहले विक्रेता से इस बारे में जांच कर लें।

श्रृंखला में कई टुकड़ों को जोड़ने के लिए संपर्क तारों को दोनों तरफ टेप से मिलाया गया था, क्योंकि मुझे इसकी ज़रूरत नहीं थी, इसलिए मैंने तारों को एक तरफ से खोल दिया, सब कुछ एक तटस्थ सीलेंट के साथ सील कर दिया और थोड़ा और काला विद्युत टेप लपेट दिया।



उदाहरण के लिए, दो तरफा पारदर्शी चिपकने वाली टेप का उपयोग करके कांच से जोड़ा गया।

स्थापना विवरण

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

अब चलिए इलेक्ट्रॉनिक स्टफिंग की ओर बढ़ते हैं।
मैंने इसका उपयोग किया, लेकिन इसकी खोज बहुत समय पहले नहीं हुई

लगभग उसी कीमत पर हमें अधिक उपहार मिलते हैं

Arduino IDE में प्रोग्रामिंग करते समय स्केच Wemos पर बिना किसी विशेष संशोधन के काम करेगा, और यदि आप एक छोटा वेब सर्वर लागू करते हैं, तो वाई-फाई के माध्यम से कनेक्ट होने पर, आप विलंब समय जैसे चर के मान बदल सकते हैं चमक के बीच, आपातकालीन ब्रेकिंग के दौरान मंदी की मात्रा आदि।
यहां भविष्य में, यदि कोई ESP8266 पर किसी प्रोजेक्ट को लागू करने में रुचि रखता है, तो मैं वेब इंटरफ़ेस के माध्यम से सेटिंग्स बदलने, उन्हें EEPROM में सहेजने और फिर उन्हें पढ़ने के लिए एक उदाहरण पोस्ट कर सकता हूं।
वेब सर्वर को लॉन्च किया जा सकता है, उदाहरण के लिए, इग्निशन चालू होने पर टर्न सिग्नल चालू करने और ब्रेक पेडल दबाने के माध्यम से (सेटअप प्रक्रिया में, संबंधित इनपुट की स्थिति का सर्वेक्षण करें)।

भारी ब्रेकिंग के दौरान फ्लैशिंग मोड लागू करने के लिए, मैंने इसे खरीदा
स्केच ब्रेक पेडल दबाते समय मंदी के स्तर की निगरानी करता है; यदि यह 0.5G (तीव्र मंदी, लेकिन तेज ब्रेक के बिना) से अधिक है, तो अतिरिक्त ध्यान आकर्षित करने के लिए कुछ सेकंड के लिए फ्लैशिंग मोड चालू किया जाता है।
स्टॉप, टर्न सिग्नल और रिवर्स के "प्लस" से Arduino इनपुट पर नियंत्रण सिग्नल गैल्वेनिक अलगाव के माध्यम से आपूर्ति किए जाते हैं - वर्तमान सीमित प्रतिरोधों के साथ ऑप्टोकॉप्लर्स, जो अंततः Arduino इनपुट पर निम्न स्तर बनाते हैं (लगातार 10 kOhm प्रतिरोधों के माध्यम से सकारात्मक तक खींचे जाते हैं) .
बिजली की आपूर्ति - डीसी-डीसी स्टेप-डाउन कनवर्टर के माध्यम से 5 वोल्ट।
पूरी चीज़ को एक सैंडविच में मोड़ा जाता है और एक उपयुक्त बॉक्स में पैक किया जाता है, जिस पर गुरुत्वाकर्षण सेंसर के सही अभिविन्यास के लिए स्थापना दिशा को एक तीर से चिह्नित किया जाता है।

आरेख और फोटो



पुल-अप (सकारात्मक) प्रतिरोधों का नाममात्र मूल्य मानक है - 10 kOhm, ऑप्टोकॉप्लर प्रतिरोधों की वर्तमान सीमा - 1 kOhm। मैंने पुराने बोर्डों से ऑप्टोकॉप्लर्स हटा दिए, दो PC123 थे, दो PC817 थे।


पहली तस्वीर में आप दो अतिरिक्त टर्मिनल देख सकते हैं; मैंने उन्हें टर्न सिग्नल के लिए बनाया है। चूँकि मेरी कार में स्टीयरिंग कॉलम लीवर चालू होने पर ग्राउंड से शॉर्ट होता है, इसलिए मैंने तारों को लीवर ब्लॉक और Arduino इनपुट से जोड़ा। यदि स्टीयरिंग कॉलम लीवर प्लस स्विच करता है या आप बाएं/दाएं टर्न सिग्नल लैंप के "+" से सिग्नल लेते हैं, तो उन्हें गैल्वेनिक आइसोलेशन के माध्यम से कनेक्ट करें।



खैर, अब स्केच ही (Arduino IDE)

#शामिल करना #शामिल करना //कुछ सामान्य टिप्पणियाँ // मैंने सबसे बाहरी एलईडी में से एक को बंद कर दिया, क्योंकि... वे रैक के सजावटी पैनलों पर प्रतिबिंबित होते हैं // इस चक्र के उदाहरण में दिखाई देते हैं (int i=1; i<143; i++) //если отключать не нужно, заменяем на for (int i=0; i<144; i++) //задний ход и аварийка у меня не используются, т.к. в первом случае яркость никакая, во втором надо подключать входы к лампам поворотников //поворотники и стоп-сигнал одновременно не включаются, чтобы это реализовать, нужно переписывать соответствующий код скетча (делить ленту на три секции, подбирать тайминги миганий, менять диапазон переменных циклов). //Дерзайте - все в ваших руках // Пин для подключения управляющего сигнала светодной ленты const int PinLS = 2; //Пины для подключения датчиков //если более удобно будет подключать контакты в другом порядке - просто поменяйте значения переменных const int buttonPinL = 3; const int buttonPinR = 4; const int buttonPinS = 6; const int buttonPinD = 5; //начальные статусы входов (подтянуты к плюсу) int buttonStateS = HIGH; int buttonStateD = HIGH; int buttonStateL = HIGH; int buttonStateR = HIGH; // пауза pause_pov1 (в миллисекундах) нужна, чтобы синхронизировать циклы "пробегания" полоски и включения лампочки поворотника // такое может быть, если используется меньше половины светодиодов // в моем случае паузы нет (pause_pov1 = 0) int pause_pov1 = 1; // этой паузой регулируем длительность состояния, когда все светодиоды выключены //я определял опытным путем - включал поворотник, засекал по отдельности время ста мыргов лампочкой и ста беганий полоски, разницу делил на 100, на полученное время увеличивал или уменьшал значение переменной (в зависимости от того, отставали или убегали вперед лампочки) int pause_pov2 = 62; // переменная для получения значения ускорения int ix; Adafruit_NeoPixel strip = Adafruit_NeoPixel(144, PinLS, NEO_GRB + NEO_KHZ800); Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345); void setup() { pinMode(buttonPinS, INPUT); pinMode(buttonPinD, INPUT); pinMode(buttonPinL, INPUT); pinMode(buttonPinR, INPUT); strip.begin(); // гасим ленту for (int i=0; i<144; i++) strip.setPixelColor(i, strip.Color(0,0,0)); strip.show(); accel.begin(); // ограничиваем измеряемый диапазон четырьмя G (этого хватит с большим запасом) accel.setRange(ADXL345_RANGE_4_G); accel.setDataRate(ADXL345_DATARATE_100_HZ); } void loop() { // СТОПЫ: если включены - высший приоритет //Чтобы сделать меняющуюся по ширине полоску в зависимости от интенсивности торможения //(уточнение - никакой светомузыки, ширина полосы после нажатия на тормоз не меняется!) //от плавного торможения до тапки в пол. //Добавляем еще одну переменную, например, ix2, //присваиваем ей значение ix с коэффициентом умножения, //заодно инвертируем и округляем до целого //ix = event.acceleration.x; //ix2 = -round(ix*10); //ограничиваем для плавного торможения в пробках //(чтобы не менялась при каждом продвижении на 5 метров) //if (ix2<10) ix2 = 0; //и для резкого торможения. //Реальный диапазон изменения переменной ix - от 0 до -5 //для максимальной ширины полосы при G равном или большем 0.5 //if (ix2 >50) ix2 = 50; //फिर STOP ब्लॉक में चक्र बदलें (int i=1; i<143; i++) на for (int i=51-ix2; i<93+ix2; i++) //Получаем минимальную ширину полоски ~30 см (для стояния в пробке) и максимальную для резкого торможения //конец комментария buttonStateS = digitalRead(buttonPinS); if (buttonStateS == LOW) { sensors_event_t event; accel.getEvent(&event); ix = event.acceleration.x; // проверка резкого торможения - мигающий режим // значение 5 - это 0,5G, минус - торможение if (ix < -5) { for (int is=0; is<15; is++) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(240,0,0)); strip.show(); delay(10 + is*10); for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(0,0,0)); strip.show(); delay(10 + is*3); buttonStateS = digitalRead(buttonPinS); if (buttonStateS == HIGH) return; } } // помигали - и хватит, включаем постоянный режим, если педаль тормоза еще нажата // или если не было резкого торможения и предыдущее условие не сработало if (buttonStateS == LOW) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(200,0,0)); strip.show(); while(buttonStateS == LOW){ buttonStateS = digitalRead(buttonPinS); delay(50); } // плавно гасим for (int is=0; is<20; is++) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(190 - is*10,0,0)); strip.show(); delay(10); } // СТОПЫ конец } } else // если СТОПЫ выключены { // ЗАДНИЙ ХОД: если включен - средний приоритет buttonStateD = digitalRead(buttonPinD); if (buttonStateD == LOW) { for (int i=1; i<37; i++) strip.setPixelColor(i, strip.Color(63,63,63)); for (int i=107; i<143; i++) strip.setPixelColor(i, strip.Color(63,63,63)); strip.show(); while(buttonStateD == LOW){ buttonStateD = digitalRead(buttonPinD); delay(50); } //плавно гасим for (int is=0; is<16; is++) { for (int i=1; i<37; i++) strip.setPixelColor(i, strip.Color(60 - is*4,60 - is*4,60 - is*4)); for (int i=107; i<143; i++) strip.setPixelColor(i, strip.Color(60 - is*4,60 - is*4,60 - is*4)); strip.show(); delay(10); } } buttonStateL = digitalRead(buttonPinL); buttonStateR = digitalRead(buttonPinR); // если включена аварийка if (buttonStateL == LOW && buttonStateR == LOW) { for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(63,31,0)); strip.setPixelColor(il+72, strip.Color(63,31,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(0,0,0)); strip.setPixelColor(il+72, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } // если включен ЛЕВЫЙ ПОВОРОТНИК if (buttonStateL == LOW && buttonStateR == HIGH) { for (int il=0; il<71; il++) { strip.setPixelColor(il+72, strip.Color(220,120,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(il+72, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } // если включен ПРАВЫЙ ПОВОРОТНИК if (buttonStateL == HIGH && buttonStateR == LOW) { for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(220,120,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } //правый поворотник конец } //конец условия else Стоп // задержка для следующего опроса датчиков delay(10); }

मैंने इस पर यथासंभव टिप्पणी करने का प्रयास किया, लेकिन यदि कोई प्रश्न हैं, तो मैं टिप्पणियाँ जोड़ने का प्रयास करूँगा (यही कारण है कि मैं इसे समीक्षा के पाठ में रख रहा हूँ, संलग्न फ़ाइल के रूप में नहीं)। वैसे, यह समीक्षा के अन्य बिंदुओं पर भी लागू होता है - यदि टिप्पणियों में महत्वपूर्ण प्रश्न हैं तो मैं इसे पूरक भी करूंगा।

और अंत में, कार्य का प्रदर्शन (वीडियो के लिए मैंने डेमो मोड के साथ एक स्केच का उपयोग किया)।

अद्यतन. मैंने विशेष रूप से सब कुछ एक लघु वीडियो में फिट करने के लिए डेमो मोड के साथ स्केच बनाया।
ब्रेक लाइट केवल तेज़ ब्रेकिंग के दौरान चमकती है (इस पर ऊपर चर्चा की गई थी); धीमी गति से ब्रेक लगाने के दौरान और ट्रैफिक जाम में खड़े होने पर, यह बस जलती है, पीछे के ड्राइवरों को परेशान किए बिना।
रात्रि में चमक अत्यधिक नहीं होती, क्योंकि कांच के झुकाव के कारण, रोशनी पीछे की तुलना में ऊपर की ओर अधिक निर्देशित होती है।
मानक लाइटें हमेशा की तरह काम करती हैं, यह पट्टी उनकी नकल करती है।

कई कार उत्साही, अपनी कार की उपस्थिति को बेहतर बनाने के लिए, अपने "स्वैलो" को एलईडी रोशनी से ट्यून करते हैं। ट्यूनिंग विकल्पों में से एक रनिंग टर्न सिग्नल है, जो अन्य सड़क उपयोगकर्ताओं का ध्यान आकर्षित करता है। लेख चालू रोशनी के साथ टर्न सिग्नल स्थापित करने और कॉन्फ़िगर करने के लिए निर्देश प्रदान करता है।

[छिपाना]

एकत्र करने के लिए निर्देश

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

फोटो गैलरी "गतिशील दिशा संकेतक के लिए संभावित विकल्प"

उपकरण और सामग्री

अपने हाथों से रनिंग टर्न सिग्नल बनाने के लिए, आपको निम्नलिखित टूल की आवश्यकता होगी:

  • सोल्डरिंग आयरन;
  • साइड कटर या सरौता;
  • सोल्डरिंग आयरन और सोल्डरिंग सामग्री;
  • परीक्षक.

आपको उपभोग्य सामग्रियों से फाइबरग्लास लैमिनेट तैयार करने की आवश्यकता है। मुद्रित सर्किट बोर्ड के निर्माण के लिए इसकी आवश्यकता होती है जिस पर अर्धचालक तत्व रखा जाएगा। आवश्यक एलईडी का चयन किया गया है। एलईडी की विशेषताओं और ऑन-बोर्ड नेटवर्क के वर्तमान और वोल्टेज मूल्यों के आधार पर, सुरक्षात्मक प्रतिरोधों की विशेषताओं की गणना की जाती है। गणनाओं का उपयोग करते हुए, नेटवर्क के शेष घटकों का चयन किया जाता है (वीडियो के लेखक एवगेनी ज़डवोर्नोव हैं)।

कार्य क्रम

टर्न सिग्नल बनाने से पहले, आपको एक उपयुक्त योजना चुननी होगी।

फिर, आरेख के आधार पर, एक मुद्रित सर्किट बोर्ड बनाएं और भविष्य के तत्वों को रखने के लिए उस पर निशान लगाएं।

असेंबली में क्रियाओं का एक क्रम होता है:

  1. सबसे पहले, आपको बैटरी से नकारात्मक टर्मिनल को डिस्कनेक्ट करके कार की बिजली बंद कर देनी चाहिए।
  2. इसके बाद, आपको पुराने टर्न सिग्नलों को हटाने और उन्हें सावधानीपूर्वक अलग करने की आवश्यकता है।
  3. पुराने लाइट बल्बों को हटा देना चाहिए।
  4. जोड़ों को गोंद से साफ किया जाना चाहिए, चिकना किया जाना चाहिए, धोया जाना चाहिए और सूखने दिया जाना चाहिए।
  5. प्रत्येक पुराने तत्व के स्थान पर एक नया रनिंग लाइट टर्न सिग्नल स्थापित किया गया है।
  6. इसके बाद, लाइटों की असेंबली और स्थापना उल्टे क्रम में की जाती है।
  7. स्थापना के बाद, तार जुड़े हुए हैं।

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

एलईडी कनेक्ट करते समय, आपको यह सुनिश्चित करना होगा कि एनोड पावर स्रोत के प्लस से और कैथोड माइनस से जुड़ा है। यदि कनेक्शन सही ढंग से नहीं किया गया है, तो अर्धचालक तत्व प्रकाश नहीं देंगे और जल भी सकते हैं।


चलने की दिशा संकेतकों की स्थापना और विन्यास की विशेषताएं

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

रिमोट रिफ्लेक्टर के स्थान पर एक SMD 5730 बोर्ड लगाया गया है, जिस पर पीली एलईडी लगी हुई हैं। चूँकि पुनरावर्तक का आकार घुमावदार होता है, इसलिए बोर्ड को टुकड़े-टुकड़े करके थोड़ा मोड़ना होगा। आपको पुराने बोर्ड से कनेक्टर वाले हिस्से को काटना होगा और नियंत्रक को जोड़ने के लिए इसे मिलाप करना होगा। फिर सभी घटकों को उनके स्थान पर लौटा दिया जाता है।

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


कीमत का मुद्दा

आप दिन के समय चलने वाली लाइटों से रनिंग लाइट टर्न सिग्नल बना सकते हैं। उनकी लागत 600 रूबल है। इस मामले में, आप प्रत्येक चालू टर्न सिग्नल के लिए 7 टुकड़ों की मात्रा में प्रकाश स्रोत के रूप में "पिक्सेल" आरजीबी एलईडी का उपयोग कर सकते हैं। एक तत्व की लागत 19 रूबल है। एल ई डी को नियंत्रित करने के लिए, आपको 250 रूबल की लागत वाला एक Arduino UNO खरीदना होगा। इस प्रकार, कुल लागत 1060 रूबल होगी।

Aliexpress से रनिंग लाइट का डिज़ाइनर एक मुद्रित सर्किट बोर्ड और रेडियो घटकों का एक सेट है। आपको बस बोर्ड पर घटकों को मिलाप करना है।

लेकिन आप इससे चलने वाली रोशनी के अधिक दिलचस्प प्रभाव प्राप्त कर सकते हैं। उदाहरण के लिए, कार टर्न सिग्नल या ब्रेक लाइट के लिए, या सिर्फ छुट्टियों के लिए मालाओं के लिए।


यह सर्किट 3 -15 वोल्ट की आपूर्ति वोल्टेज रेंज में काम कर सकता है। पल्स जनरेटर को NE555 चिप पर इकट्ठा किया जाता है, फिर दालों को एक डिकोडर - एक CD4017 (या K561IE8) चिप के साथ दशमलव काउंटर पर भेजा जाता है, जिसके आउटपुट में एलईडी वर्तमान-सीमित प्रतिरोधों के माध्यम से जुड़े होते हैं।

चालू लाइटों की स्विचिंग गति को एक ट्रिमिंग अवरोधक द्वारा नियंत्रित किया जाता है। ट्रिगर और आउटपुट ट्रांजिस्टर स्विच के साथ एक सर्किट जोड़ें। कुछ भी प्रोग्राम करने की जरूरत नहीं, इत्यादि। परिणामस्वरूप, आप चलती रोशनी के अधिक दिलचस्प प्रकाश प्रभाव प्राप्त कर सकते हैं। हमें K561TM2 ट्रिगर और KT815 पावर स्विच के साथ एक और मुद्रित सर्किट बोर्ड बनाने की आवश्यकता है। प्रत्येक K561IE8 आउटपुट से एक पल्स "लैच" सिद्धांत का उपयोग करके ट्रिगर इनपुट को आपूर्ति की जाती है, अर्थात, ट्रिगर आउटपुट पर सिग्नल तब तक स्थिर रहता है जब तक कि रीसेट पल्स CD4017 (K561IE8) माइक्रोक्रिकिट के पिन 11 से नहीं आता है। प्रति चक्र 9 चैनल चालू होते हैं।


सभी DIYers को नमस्कार! आज हम एड्रेसेबल RGB LED पर WS2812B प्रकार की LED स्ट्रिप का उपयोग करने के लिए कई विकल्पों में से एक पर गौर करेंगे। ऐसी स्ट्रिप्स (साथ ही अलग से लगाए गए WS2812B LED) का उपयोग कंप्यूटर मॉनिटर और टेलीविज़न की "एम्बिलाइट" पृष्ठभूमि, कार में गतिशील प्रकाश व्यवस्था, एक पेंटिंग, एक फोटो फ्रेम, एक मछलीघर, आदि को रोशन करने के लिए किया जा सकता है। नए साल की रोशनी या लाइट शो के रूप में, किसी भी परिसर के डिजाइन में इनका व्यापक रूप से उपयोग किया जाता है। WS2812B प्रकार की LED स्ट्रिप का उपयोग करने से बड़ी संख्या में दिलचस्प प्रोजेक्ट बनाना संभव हो जाता है।

WS2812B LED एक RGB LED है जिसे WS2801 चिप के साथ उसी आवास में डाला गया है।


WS2812B LED स्वयं एक SMD तत्व है जिसे सतह पर लगाने के लिए डिज़ाइन किया गया है। अंदर, एलईडी में एक ही आवास में स्थित लाल प्रकाश क्रिस्टल, हरे प्रकाश क्रिस्टल और नीले प्रकाश क्रिस्टल होते हैं। इस एलईडी से आप प्रकाश उत्सर्जन के विभिन्न प्रकार के रंग प्राप्त कर सकते हैं।

RGB LED को Arduino माइक्रोकंट्रोलर बोर्ड के माध्यम से नियंत्रित किया जाता है।
मुझे चीनियों से WS2812B LED स्ट्रिप प्राप्त हुई। यह 144 LED के साथ 1 मीटर लंबा खंड है। मैं लंबे समय से इसे विभिन्न प्रयोगों के लिए आज़माना चाहता था। Arduino लाइब्रेरीज़ - एडफ्रूट नियोपिक्सेल और फास्ट एलईडी की मदद से, आप बहुत सारे असामान्य प्रकाश प्रभाव प्राप्त कर सकते हैं। लेकिन फिर मैंने तथाकथित "ऑडी शैली" में एक कार के लिए गतिशील टर्न सिग्नल बनाने का प्रयास करने का फैसला किया। मैंने अभी तक इस योजना का अभ्यास में उपयोग करना शुरू नहीं किया है (हमारे यातायात पुलिस अधिकारी इसे कैसे स्वीकार करेंगे?), लेकिन प्रभाव था निश्चित रूप से बहुत आकर्षक.

Arduino Uno बोर्ड LED स्ट्रिप को नियंत्रित करने के लिए नियंत्रक के रूप में कार्य करता है; आप अन्य बोर्डों का भी उपयोग कर सकते हैं - Arduino Nano, Arduino Pro Mini)।
वीडियो में देखें पूरी प्रक्रिया:


उपकरणों और सामग्रियों की सूची.
-अरुडिनो यूनो बोर्ड;
- स्टेप-डाउन बोर्ड 12V\5V से 3A;
- प्रतिरोधक 100Kom-4pcs;
-रेसिस्टर्स 47Kom-4pcs;
- 500 ओम प्रतिरोधक - 1 टुकड़ा;
-बटन (सिग्नल चालू करने का अनुकरण करने के लिए) -4 पीसी;
-ब्रेड बोर्ड
-पेंचकस;
प्रयोगशाला बिजली की आपूर्ति
- सोल्डरिंग आयरन;
-कैम्ब्रिक;
-परीक्षक.
- जोड़ने वाले तार।

पहला कदम। सर्किट को असेंबल करना।


मैंने ब्रेडबोर्ड का उपयोग करके सर्किट को इकट्ठा किया। कार के इनपुट सिग्नल को 12 से 5 वोल्ट में परिवर्तित करने के लिए Arduino के डिजिटल इनपुट से जुड़े प्रतिरोधों की आवश्यकता होती है। WS2812B LED स्ट्रिप की नियंत्रण रेखा की सुरक्षा के लिए 500 ओम अवरोधक।
बोर्ड का फोटो


12V से 5V तक कनवर्टर के रूप में मैंने Aliexpress के तैयार बोर्ड का उपयोग किया। उपयुक्त पैरामीटर वाले किसी भी कनवर्टर का उपयोग किया जा सकता है। Arduino और WS2812B LED स्ट्रिप को स्थिर बिजली आपूर्ति के लिए कनवर्टर की आवश्यकता होती है।


दूसरा चरण। अरुडिनो प्रोग्रामिंग।

Arduino बोर्ड नंबर 3, 4 के डिजिटल इनपुट का उपयोग बाएँ और दाएँ रोटेशन को सक्षम करने के लिए किया जाता है। पिन नंबर 5 - ब्रेक लाइट चालू करें, पिन नंबर 6 - रिवर्स गियर चालू करें। पिन नंबर 8 WS2812B टेप के लिए नियंत्रण संकेत है।

Arduino IDE में, स्केच अपलोड करें (ऊपर लिंक)। दो स्केच विकल्प - एक कार के सामने के लिए, दूसरा पीछे के लिए। आपको जिसकी भी आवश्यकता हो उसका उपयोग करें। स्केच की शुरुआत में, आप अपनी ज़रूरत की एलईडी की संख्या निर्धारित कर सकते हैं। आप अपनी कार के अनुसार टर्न सिग्नल की गति को भी समायोजित कर सकते हैं। आप स्ट्रिप का उपयोग करके एलईडी की चमक भी बदल सकते हैं। रंग (103,31,0) पैरामीटर - पहले दो अंकों को 0 से 255 तक बदलें। यानी, आप थोड़ा प्रयोग कर सकते हैं।

जब आप वांछित बटन दबाते हैं, तो हम वांछित पैरामीटर को चालू करने के लिए एक सिग्नल भेजते हैं। जब सर्किट सही ढंग से असेंबल किया जाता है, तो यह आमतौर पर तुरंत काम करना शुरू कर देता है।

काम पर फोटो.






इस वीकेंड डिज़ाइन के साथ एक अच्छा प्रयोग हुआ। यह दिलचस्प था

विषयगत सामग्री:

यदि आपको कोई त्रुटि दिखाई देती है, तो टेक्स्ट का एक टुकड़ा चुनें और Ctrl+Enter दबाएँ
शेयर करना:
NexxDigital - कंप्यूटर और ऑपरेटिंग सिस्टम