
2025 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2025-01-23 14:36




মোটরসাইকেল আরোহী হিসাবে, আমি রাস্তায় অদৃশ্য হওয়ার মতো আচরণ করার সাথে খুব পরিচিত। একটি জিনিস যা আমি সবসময় আমার বাইকে যোগ করি তা হল একটি শীর্ষ বাক্স যা সাধারণত একটি সমন্বিত আলো থাকে। আমি সম্প্রতি একটি নতুন বাইকে আপগ্রেড করেছি এবং Givi V56 মনোকি বাক্স কিনেছি কারণ এতে আইটেমের জন্য প্রচুর জায়গা ছিল। এই বাক্সটিতে একটি কারখানার লাইট কিটের জন্য একটি স্পট রয়েছে যা প্রতিটি পাশের জন্য দুটি স্ট্রিপ এলইডি নিয়ে গঠিত। সমস্যা হল এই কিটটি প্রায় $ 70 এবং শুধুমাত্র ব্রেক করে। একটি আফটার মার্কেট কিট রয়েছে যা সম্ভবত অনুরূপ কাজ করে এবং এটি ইনস্টল করা কিছুটা সহজ হতে পারে তবে আপনার দাম $ 150 পর্যন্ত যায়। একটি সম্পদশালী ব্যক্তি এবং ঠিকানাযুক্ত LED স্ট্রিপগুলি চেষ্টা করার জন্য একটি অজুহাত খুঁজছেন, আমি একটি সমন্বিত সিস্টেম তৈরি করার সিদ্ধান্ত নিয়েছি যেখানে কেবল ব্রেক লাইট থাকবে না, তবে চলমান লাইটগুলি (যখনই চলবে) চলবে, সিগন্যাল চালু করবে, এবং বিপজ্জনক লাইট। শুধু এর জন্য, আমি এমনকি একটি স্টার্টআপ ক্রম যোগ করেছি …. কারণ আমি পারতাম। মনে রাখবেন যে এটি করতে অনেক কাজ লেগেছে যদিও আমার কাছে অনেক কিছু ছিল। কাজ সত্ত্বেও, এটি কীভাবে পরিণত হয়েছে তা নিয়ে আমি বরং খুশি। আশা করি এটি অন্য কারও কাজে লাগবে।
এই সিস্টেমটি কীভাবে কাজ করে তার মূল কাজ হল আরডুইনো ইউনিট পিনগুলিতে সংকেতগুলি সন্ধান করে: ব্রেক লাইট, বাম মোড় আলো এবং ডান দিকের আলো। মোটরসাইকেল থেকে 12 ভোল্টের সিগন্যাল পড়ার জন্য, আমি 12V সিগন্যালকে 5V সিগন্যালে রূপান্তর করার জন্য অপটিওসোলেটর ব্যবহার করেছি যা Arduino পড়তে পারে। কোড তারপর এই সংকেতগুলির একটির জন্য অপেক্ষা করে তারপর FastLED লাইব্রেরি ব্যবহার করে LED স্ট্রিপে কমান্ড আউটপুট করে। এটাই মূল বিষয়, এখন বিস্তারিত জানার জন্য।
সরবরাহ
এইগুলি আমি ব্যবহার করেছি কারণ বেশিরভাগ অংশে আমি ইতিমধ্যে সেগুলি পড়ে ছিলাম। স্পষ্টতই, তাদের প্রয়োজন অনুযায়ী বিনিময় করা যেতে পারে:
- Arduino - আমি আকারের বিবেচনার জন্য একটি ন্যানো ব্যবহার করেছি কিন্তু যতক্ষণ আপনার কাছে পাঁচটি পিন আছে ততক্ষণ আপনি যা ব্যবহার করতে পারেন তা ব্যবহার করতে পারেন।
- 5V রেগুলেটর - আমি একটি L7805CV ব্যবহার করেছি যা 1.5 amps সক্ষম ছিল। এই প্রকল্পটি LEDs এর জন্য 0.72 amps এবং ন্যানোর জন্য শক্তি ব্যবহার করবে, তাই 1.5 এই প্রকল্পের জন্য দুর্দান্ত কাজ করে।
- ক্যাপাসিটার - ভোল্টেজ রেগুলেটর সঠিকভাবে কাজ করার জন্য আপনার একটি 0.33 uF এবং একটি 0.1 uF এর প্রয়োজন হবে।
- 3x optoisolators - 12V থেকে 5V সংকেত রূপান্তর করতে। আমি PC817X টাইপ ব্যবহার করেছি যার মাত্র চারটি পিন আছে যা আমাদের প্রয়োজন।
- প্রতিরোধক - আপনার দুটি ধরণের প্রয়োজন হবে, প্রতিটি ধরণের তিনটি। অপটিওসোলেটর আইআর এলইডি -র মাধ্যমে কারেন্ট কমাতে প্রথমটি যথেষ্ট হওয়া দরকার। আপনার কমপক্ষে 600 ওহম লাগবে, তবে মোটরসাইকেলের পরিবর্তিত ভোল্টেজগুলি পরিচালনা করার জন্য 700 টি একটি ভাল ধারণা হবে। অপটিওসোলেটারের অন্য পাশে দ্রুত সংকেতের জন্য অন্যটি 10k এবং 20k এর মধ্যে কোথাও থাকা দরকার।
- প্রোটোটাইপ বোর্ড - আমার কাছে এমন কিছু ছিল যা সামান্য পরিমাণ ছাঁটাই সহ একটি ছোট প্রকল্প বাক্সের ভিতরে ফিট করার মতো ছিল।
- প্রজেক্ট বক্স - উপাদানগুলিকে ফিট করার জন্য যথেষ্ট বড়, কিন্তু ফিট করা সহজ হওয়ার জন্য যথেষ্ট ছোট।
- ওয়্যার - আমি ক্যাট 6 ইথারনেট ওয়্যার ব্যবহার করেছি কারণ আমার অনেকটা বসে ছিল। এটিতে আটটি তারের সমস্ত রঙের কোডেড রয়েছে যা সমস্ত বিভিন্ন সংযোগের সাথে সহায়তা করেছিল এবং বর্তমান ড্রগুলি পরিচালনা করার জন্য যথেষ্ট পরিমাণে গেজ ছিল।
- প্লাগ - যে কোন জায়গায় আপনি সিস্টেমটি সহজেই অপসারণযোগ্য হতে চান। আমি উপরের বাক্সটি সরিয়ে ফেলার জন্য এবং এটিতে যে কোনও বৃষ্টি বা জল সামলাতে একটি জলরোধী প্লাগ ব্যবহার করেছি। আমি LED স্ট্রিপগুলির জন্য ছোট প্লাগগুলিরও প্রয়োজন তাই আমাকে বড় গর্ত ড্রিল করতে হয়নি।
- জিপ টাই এবং জিপ টাই আঠালো মাউন্ট সবকিছু জায়গায় রাখা।
- সংযোগগুলি পরিপাটি করার জন্য মোড়ানো সঙ্কুচিত করুন।
ধাপ 1: সার্কিট নির্মাণ



স্পষ্টতই, যদি আপনি আমার বিল্ড অনুসরণ করছেন, তাহলে আমি যে পরিমাণ পরীক্ষা করেছি তা দিয়ে আপনাকে যেতে হবে না। আমার কোডটি কাজ করেছে তা নিশ্চিত করার জন্য আমি প্রথম কাজটি করেছি এবং আমি সঠিকভাবে অপটিওসোলেটর থেকে একটি সিগন্যাল পেতে পারি এবং LED স্ট্রিপগুলি সঠিকভাবে নিয়ন্ত্রণ করতে পারি। সিগন্যাল পিনগুলিকে আইসোলেটরগুলির সাথে কীভাবে সংযুক্ত করা যায় তা বের করতে কিছুটা সময় লেগেছিল তবে ট্রায়াল এবং ত্রুটির মাধ্যমে আমি সঠিক অভিযোজন খুঁজে পেয়েছি। আমি কেবল একটি স্ট্যান্ডার্ড প্রোটোটাইপ বোর্ড ব্যবহার করেছি যেহেতু আমি কেবল একটি নির্মাণ করছিলাম এবং একটি ট্রেস প্যাটার্ন বের করতে এটির চেয়ে বেশি সময় লাগত। সার্কিট বোর্ডের উপরের অংশটি দুর্দান্ত দেখাচ্ছে, তবে নীচের অংশটি কিছুটা গোলমালের মতো দেখাচ্ছে, তবে কমপক্ষে এটি কার্যকরী।
মৌলিক নকশাটি একটি সুইচড সোর্স থেকে 12V পাওয়ার ইনপুট দিয়ে শুরু হয় (একটি তার যা মোটরসাইকেলটি চালু থাকলেই থাকে)। একটি তারের ডায়াগ্রাম সত্যিই এই তারের খুঁজে পেতে সাহায্য করতে পারে। এটি ভোল্টেজ নিয়ন্ত্রকের একপাশে খাওয়ানো হয়। একটি 0.33 ইউএফ ক্যাপাসিটর এই ইনপুটটিকে ভোল্টেজ রেগুলেটরে মাটিতে সংযুক্ত করে যা পরে মোটরসাইকেলে মাটিতে ফিরে আসে। ভোল্টেজ রেগুলেটরের আউটপুটটিতে 0.1uF ক্যাপাসিটর থাকবে যা মাটিতে বাঁধা থাকবে। এই ক্যাপাসিটারগুলি নিয়ন্ত্রক থেকে ভোল্টেজ মসৃণ করতে সহায়তা করে। যদি আপনি সার্কিট বোর্ডের ছবিতে তাদের খুঁজে না পান, তাহলে তারা ভোল্টেজ নিয়ন্ত্রকের নীচে রয়েছে। সেখান থেকে, 5V লাইনটি Arduino এর ভিনে যায়, পাওয়ার পিনে যা LED স্ট্রিপগুলিকে খাওয়াবে, এবং দুটি অপটিওসোলেটারের উৎস দিক যা প্রয়োজনীয় 5V সংকেত সরবরাহ করে Arduino পিনগুলিতে খাওয়াবে।
অপটিওসোলেটরগুলির জন্য, দুটি দিক রয়েছে: একটি আইআর এলইডি সহ এবং অন্যটি ট্রানজিস্টর সহ এবং আইআর ডিটেক্টর সহ। আমরা 12V সংকেত পরিমাপ করতে IR LED সাইড ব্যবহার করতে চাই। যেহেতু LED এর 1.2V এর ফরওয়ার্ড ভোল্টেজ রয়েছে, তাই আমাদের সিরিজে একটি বর্তমান সীমাবদ্ধ প্রতিরোধক প্রয়োজন। 12V - 1.2V = 10.8V এবং 18 mA এ LED চালানোর জন্য (আমি সবসময় জীবনকালের কারণে 20 mA এর কম চালাতে পছন্দ করি), আপনার R = 10.8V/0.018A = 600 ohm এর একটি রোধের প্রয়োজন হবে। যানবাহনে ভোল্টেজগুলি আরও বেশি, সম্ভবত 14V পর্যন্ত চালানোর প্রবণতা, তাই এর জন্য পরিকল্পনা করা ভাল, যা প্রায় 710 ওহম, যদিও 700 যুক্তিসঙ্গত থেকে বেশি হবে। LED সাইডের আউটপুট তারপর মাটিতে ফিরে আসে। অপটিওসোলেটরের আউটপুট সাইডের জন্য, ইনপুট নিয়ন্ত্রক থেকে 5V সিগন্যাল ব্যবহার করবে তারপর মাটিতে যাওয়ার আগে আউটপুট অন্য রোধকের সাথে সংযুক্ত হবে। এই প্রতিরোধকটি প্রায় 10k - 20k ohm হতে হবে, অন্তত আমার ডেটশীটটি দেখিয়েছে। এটি একটি দ্রুত সংকেত পরিমাপ দেবে কারণ আমরা একটি কোলাহলপূর্ণ পরিবেশ নিয়ে কাজ করছি না। আরডুইনো পিনের আউটপুট রেসিস্টর এবং অপটিওসোলেটরের আউটপুটের মধ্যে চলে আসবে যাতে যখন সিগন্যাল বন্ধ থাকে তখন পিন কম থাকে এবং পিনে সিগন্যাল বেশি হলে।
এলইডি স্ট্রিপ লাইটের সাথে তিনটি তার যুক্ত থাকে: পাওয়ার, গ্রাউন্ড এবং ডেটা। পাওয়ার 5V হতে হবে। এই প্রকল্পটি মোট 12 টি LEDs ব্যবহার করে (যদিও আমার স্ট্রিপগুলিতে আরো LEDS আছে কিন্তু আমি শুধুমাত্র প্রতি তৃতীয় LED ব্যবহার করছি) এবং প্রতিটি 60mA লাগে যখন সাদা আলো সম্পূর্ণ উজ্জ্বলতায় ব্যবহার করা হয়। এটি মোট 720 এমএ দেয়। আমরা ভোল্টেজ রেগুলেটরের আউটপুট পাওয়ারের মধ্যে ভাল, তাই আমরা ভাল। শুধু নিশ্চিত করুন যে তারের শক্তি হ্যান্ডেল করার জন্য যথেষ্ট বড় গেজ, আমি 24 গেজ ক্যাট 6 ইথারনেট তার ব্যবহার করেছি। ইথারনেট তার ছিল এমন কিছু যা আমি বসে ছিলাম এবং এটিতে 8 টি রঙের কোডেড তার রয়েছে তাই এটি এই প্রকল্পের জন্য ভাল কাজ করেছে। একমাত্র তারের যেগুলি পরে টপবক্সে যেতে হবে তা হল শক্তি এবং স্থল (যা উভয়ই স্ট্রিপের মধ্যে বিভক্ত হয়ে যায়) এবং দুটি ডেটা লাইন (প্রতিটি স্ট্রিপের জন্য একটি)।
বাকি ওয়্যারিংগুলি আরডুইনোতে পিনের সাথে সংযুক্ত হচ্ছে এবং এটিকে শক্তি সরবরাহ করছে। এই প্রকল্পের জন্য যে পিনগুলি ব্যবহার করা হয়েছিল তা নিম্নরূপ:
- ভিন - 5V এর সাথে সংযুক্ত
- Gnd - মাটির সাথে সংযুক্ত
- পিন 2 - বাম স্ট্রিপ ডেটা লাইনের সাথে সংযুক্ত
- Pin3 - রাইট স্ট্রিপ ডেটা লাইনের সাথে সংযুক্ত
- Pin4 - optoisolator থেকে ব্রেক সিগন্যালের সাথে সংযুক্ত
- Pin5 - optoisolator থেকে বাম মোড় সংকেত সংযুক্ত
- Pin6 - optoisolator থেকে রাইট টার্ন সিগন্যালের সাথে সংযুক্ত
ধাপ 2: ওয়্যারিং এবং ইনস্টল করা



একবার সার্কিটটি তৈরি হয়ে গেলে, আসলে এটিকে তার জায়গায় স্থাপন করার সময় আসে। আপনার বাইকের জন্য আপনার ওয়্যারিং স্কিম্যাটিক ব্যবহার করে, আপনাকে নিম্নলিখিতগুলি সনাক্ত করতে হবে:
- সুইচড পাওয়ার সাপ্লাই
- গ্রাউন্ড
- ব্রেক সিগন্যাল ইন
- বাম দিকে সিগন্যাল ইন
- রাইট টার্ন সিগন্যাল ইন
আমার জন্য, একটি একক প্লাগ ছিল যার মধ্যে এই সব ছিল, তাই আমি এটি ব্যবহার করেছি। পর্যাপ্ত সময়ের সাথে, আমি হয়তো একই প্লাগ শৈলী খুঁজে পেতে এবং মডিউলে একটি প্লাগ তৈরি করতে সক্ষম হতে পারতাম, কিন্তু আমি তা করিনি, তাই আমি কেবল স্থানগুলিতে নিরোধক সরিয়েছি এবং এটিতে নতুন তারের বিক্রি করেছি। আমি এই বিভক্ত সংযোগগুলিতে প্লাগ ব্যবহার করেছি যাতে ভবিষ্যতে আমার প্রয়োজন হলে আমি বাকিগুলি সরাতে পারি। সেখান থেকে আমি Arduino, যা এখন একটি সিল করা প্রজেক্ট বক্সে রেখেছি, সেই সিটের নিচে যেখানে আমি এটি সংযুক্ত করেছি। আউটপুট তারের তারপর র্যাক ফ্রেম বরাবর একটি জলরোধী প্লাগ চালায়, তারপর বাক্সে প্রবেশ করে এবং alongাকনা পিছনে বরাবর চালায় যেখানে এটি প্রতিটি পক্ষের জন্য বিভক্ত। তারগুলি theাকনার ভিতরের দিক দিয়ে চলতে থাকে যেখানে এলইডিগুলির সংযোগ রয়েছে। একটি আঠালো ব্যাকিং সঙ্গে বহিরঙ্গন গ্রেড জিপ টাই মাউন্ট সংযুক্ত জিপ বন্ধন ব্যবহার করে তারের জায়গায় সাহায্য। আপনি বাড়ির উন্নতির দোকানে কেবল ইনস্টলেশন বিভাগে এটি খুঁজে পেতে পারেন
আমি এলইডি স্ট্রিপে দুটি মিনি জেএসটি প্লাগ ব্যবহার করেছি কারণ ন্যূনতম ব্যাসের একটি গর্তের মধ্য দিয়ে যাওয়ার জন্য আমার যথেষ্ট ছোট একটি প্লাগ দরকার ছিল এবং আমি নিশ্চিত করতে চেয়েছিলাম যে বর্তমান প্রয়োজনীয়তাগুলি পরিচালনা করার জন্য পর্যাপ্ত তার রয়েছে। আবার, এটি ওভারকিল হতে পারে এবং আমার কাছে তিনটি তারের সাহায্যে কোনও ছোট প্লাগ নেই। হালকা স্ট্রিপ তারের মধ্য দিয়ে যাওয়ার বাক্সের ছিদ্রটি জল বন্ধ রাখার জন্য সিল করা হয়েছিল। এলইডি স্ট্রিপগুলি পজিশনের জন্য, কারণ স্পেসিংয়ের মধ্যে সামান্য অমিল রয়েছে (প্রতিফলক এবং এলইডিগুলির মধ্যে ছিদ্রের মধ্যে ব্যবধানের মধ্যে প্রায় 1 - 1.5 মিমি পার্থক্য ছিল) আমি তাদের অবস্থান দিয়েছিলাম যাতে তারা LED এবং এর মধ্যে পার্থক্যকে বিভক্ত করে যতটা সম্ভব গর্ত। আমি তারপর গরম আঠালো ব্যবহার করে তাদের জায়গায় ট্যাক করতে এবং সিল্যান্ট পুরোপুরি এলাকাটি সীলমোহর করার জন্য। এলইডি স্ট্রিপগুলি নিজেরাই জলরোধী, তাই ভিজলে কোনও সমস্যা নেই। যদিও এটি অনেকটা ইন্সটল করার মত মনে হয়, এটি ভবিষ্যতে সিস্টেমটি সরানো সহজ করে দেয় বা যন্ত্রাংশ প্রতিস্থাপনের প্রয়োজন হয় কারণ এটি ঘটতে পারে।
ধাপ 3: কোড
আমার সোর্স কোড এই নির্দেশের শুরুতে হওয়া উচিত। আমি সর্বদা আমার কোডটি ব্যাপকভাবে মন্তব্য করি যাতে পরে এটি বুঝতে সহজ হয়। অস্বীকৃতি: আমি একজন পেশাদার কোড লেখক নই। কোডটি এমন একটি পদ্ধতিতে লেখা হয়েছিল যা প্রথমে যাওয়া সহজ ছিল এবং কিছু উন্নতি করা হয়েছিল, তবে আমি জানি এটি আরও পরিমার্জিত হতে পারে। আমি টাইমিংয়ের জন্য বিলম্ব () ফাংশনের একটি ভারী পরিমাণ ব্যবহার করছি যা আদর্শ নয়। যাইহোক, ইউনিট যে সংকেত পাচ্ছে তা তুলনামূলকভাবে দ্রুত সংকেত নয়, তাই আমি এখনও মিলিস () এর মতো কিছু ব্যবহার করার জন্য তাদের যুক্তিযুক্ত মনে করেছি। আমি একজন খুব ব্যস্ত বাবা এবং স্বামীও তাই এমন কিছু উন্নতি করার জন্য সময় ব্যয় করছি যা শেষ পর্যন্ত ফাংশন পরিবর্তন করবে না তালিকায় বেশি নয়।
এই প্রকল্পের জন্য, শুধুমাত্র একটি লাইব্রেরি প্রয়োজন যা FastLED লাইব্রেরি। এই WS2811/WS2812B টাইপ LED স্ট্রিপ নিয়ন্ত্রণের জন্য সব কোড আছে। সেখান থেকে, আমি ব্যবহার করা হবে যে মৌলিক ফাংশন কভার করব।
স্ট্যান্ডার্ড সংজ্ঞা ছাড়া প্রথমটি হল আপনার দুটি স্ট্রিপ ঘোষণা করা। আপনি প্রতিটি স্ট্রিপের জন্য নিম্নলিখিত কোডটি ব্যবহার করবেন:
FastLED.addLeds (leds [0], NUM_LEDS);
কোডের এই লাইনটি সেট করে পিন 2 এই স্ট্রিপটিকে স্ট্রিপ 0 হিসাবে সংজ্ঞায়িত করে ধ্রুবক NUM_LEDS দ্বারা সংজ্ঞায়িত LED গুলির সংখ্যার সাথে, যা আমার ক্ষেত্রে 16 এ সেট করা আছে। স্ট্রিপটি স্ট্রিপ লেবেল করা হবে 1।
পরবর্তী লাইন যা গুরুত্বপূর্ণ হবে তা হল রঙের সংজ্ঞা।
leds [0] [1] = Color_high CRGB (r, g, b);
কোডের এই লাইনটি বিভিন্ন চেহারায় ব্যবহার করা হয় (আমার বেশিরভাগ ব্যবহার ধ্রুবক)। মূলত, এই কোডটি প্রতিটি LED চ্যানেলের (লাল, সবুজ, নীল) একটি মান পাঠায় যা প্রতিটি উজ্জ্বলতা নির্ধারণ করে। উজ্জ্বলতার মান 0 - 255 নম্বর দ্বারা সংজ্ঞায়িত করা যেতে পারে। প্রতিটি চ্যানেলের উজ্জ্বলতার মাত্রা পরিবর্তন করে, আপনি বিভিন্ন রং নির্ধারণ করতে পারেন। এই প্রকল্পের জন্য, আমি যতটা সম্ভব আলোকে উজ্জ্বল রাখতে একটি সাদা রঙ চাই। তাই আমি কেবলমাত্র পরিবর্তনগুলি হল তিনটি চ্যানেল জুড়ে উজ্জ্বলতার মাত্রা সমানভাবে সেট করা।
কোডের পরবর্তী সেটটি প্রতিটি আলোকে পৃথকভাবে আলোকিত করার জন্য ব্যবহৃত হয়। মনে রাখবেন যে প্রতিটি স্ট্রিপের জন্য, প্রতিটি LED এর একটি ঠিকানা থাকে যা 0 থেকে শুরু করে ডাটা লাইন সংযোগের সবচেয়ে কাছের একজনের জন্য সর্বনিম্ন LED পর্যন্ত আপনার মাইনাস 1 থাকে। উদাহরণস্বরূপ, এটি 16 টি LED স্ট্রিপ, তাই সর্বোচ্চ 16 - 1 = 15. এর কারণ হল প্রথম LED কে 0 লেবেল করা হয়েছে।
জন্য (int i = NUM_LEDS -1; i> -1; i = i -3) {// এটি শেষ থেকে প্রথম দিকে যাওয়া প্রতিটি তৃতীয় LED এর আলোকে পরিবর্তন করবে। leds [0] = Color_low; // নির্বাচিত রঙে স্ট্রিপ 0 LED রঙ সেট করুন। leds [1] = Color_low; // নির্বাচিত রঙে স্ট্রিপ 1 LED রঙ সেট করুন। FastLED.show (); // সেট রং দেখান। leds [0] = CRGB:: কালো; // পরবর্তী রঙের জন্য প্রস্তুতিতে সেট রঙ বন্ধ করুন। leds [1] = CRGB:: কালো; বিলম্ব (150); } FastLED.show (); // সেট রং দেখান।
এই কোডটি যেভাবে কাজ করে তা হল একটি ভেরিয়েবল (i) একটি লুপের মধ্যে LED ঠিকানা হিসেবে ব্যবহার করা হয় যা তারপর LEDs (NUM_LEDS) এর পূর্ণ সংখ্যায় উল্লেখ করা হয়। এর কারণ হল আমি চাই যে শুরুর পরিবর্তে স্ট্রিপের শেষে লাইট শুরু হোক। সেটিং হল উভয় স্ট্রিপে আউটপুট (leds [0] এবং leds [1]) তারপর পরিবর্তন দেখানোর জন্য একটি আদেশ জারি করা হয় এর পর এই আলো নিভে যায় (CRGB:: Black) এবং পরবর্তী আলো জ্বালানো হয়। ব্ল্যাক রেফারেন্স হল ফাস্টএলডি লাইব্রেরিতে একটি নির্দিষ্ট রঙ তাই আমাকে প্রতিটি চ্যানেলের জন্য 0, 0, 0 ইস্যু করতে হবে না যদিও তারা একই কাজ করবে। লুপের জন্য একটি সময়ে 3 টি LED অগ্রসর হয় (i = i-3) যেহেতু আমি কেবল অন্য প্রতিটি LED ব্যবহার করছি। এই লুপের শেষে, আলোর ক্রমটি একটি LED থেকে পরের দিকে চলে যাবে প্রতি স্ট্রিপে শুধুমাত্র একটি লাইট, নাইট রাইডার প্রভাবের মতো। আপনি যদি প্রতিটি আলো জ্বালিয়ে রাখতে চান যাতে বারটি তৈরি হয়, আপনি কেবল সেই লাইনগুলি সরিয়ে ফেলবেন যা LEDs বন্ধ করে দেয় যা প্রোগ্রামের পরবর্তী কোডের সেটে ঘটে।
এর জন্য (int i = 0; i <dim; i ++) {// দ্রুত চলমান আলোর স্তরে লাইট ফেইড। rt = rt + 1; gt = gt + 1; বিটি = বিটি + 1; জন্য (int i = 9; i <NUM_LEDS; i = i +3) {// এটি পজিশন লাইটের জন্য শেষ তিনটি লাইট জ্বালাবে। leds [0] = CRGB (rt, gt, bt); // নির্বাচিত রঙে স্ট্রিপ 0 LED রঙ সেট করুন। leds [1] = CRGB (rt, gt, bt); // নির্বাচিত রঙে স্ট্রিপ 1 LED রঙ সেট করুন। } FastLED.show (); বিলম্ব (3); }
কোডগুলির শেষ উদাহরণ যা আমি LEDs এর জন্য ব্যবহার করি তা হল একটি ফেইড লুপ। এখানে, আমি প্রতিটি চ্যানেলের জন্য উজ্জ্বলতার জন্য অস্থায়ী স্লট ব্যবহার করি (rt, gt, bt) এবং প্রতিটি প্রদর্শনের মধ্যে বিলম্বের সাথে 1 টি বৃদ্ধি করি যা আমি দেখতে চাই। এছাড়াও মনে রাখবেন যে এই কোডটি শুধুমাত্র শেষ তিনটি এলইডি পরিবর্তন করছে কারণ এটি চলমান লাইটগুলিতে বিবর্ণ হয়ে যাচ্ছে তাই আমি 0 এর পরিবর্তে 9 এ শুরু করি।
বাকি এলইডি কোড এর পুনরাবৃত্তি। অন্য সবকিছু তিনটি ভিন্ন তারের উপর একটি সংকেত খুঁজছেন চারপাশে নিবদ্ধ। কোডের লুপ () এলাকাটি ব্রেক লাইটের সন্ধান করে, যা এটি থাকার আগে একবার ফ্ল্যাশ করবে (এটি যদি ইচ্ছা হয় তবে এটি সামঞ্জস্যযোগ্য) অথবা টার্ন সিগন্যাল খুঁজছে। এই কোডের জন্য, কারণ আমি অনুমান করতে পারছিলাম না যে বাম এবং ডান দিকের লাইট ঠিক একই সময়ে বিপদের জন্য চালু হবে, আমি প্রথমে কোডটির জন্য একটির সন্ধান করি, তারপর একটি ছোট বিলম্বের পরে আমি পরীক্ষা করে দেখি যে উভয়ই ইঙ্গিত করছে কিনা বিপদের লাইট জ্বলছে। আমার একটি চতুর অংশ ছিল টার্ন সিগন্যাল কারণ কিছু সময়ের জন্য আলো নিভে যাবে তাই আমি কিভাবে সিগন্যালের মধ্যে পার্থক্য এখনও বলব কিন্তু অফ পিরিয়ডে এবং বাতিল সিগন্যালের মধ্যে? আমি যা নিয়ে এসেছি তা হল একটি বিলম্ব লুপ বাস্তবায়ন করা যা সিগন্যাল ফ্ল্যাশের মধ্যে বিলম্বের চেয়ে বেশি সময় ধরে চলতে থাকে। যদি টার্ন সিগন্যাল এখনও চালু থাকে, তাহলে সিগন্যাল লুপ চলতেই থাকবে। বিলম্ব শেষ হলে যদি সিগন্যালটি ফিরে না আসে, তাহলে এটি লুপের শুরুতে ফিরে যায় ()। বিলম্বের দৈর্ঘ্য সামঞ্জস্য করতে, ধ্রুব আলোর জন্য সংখ্যা পরিবর্তন করুন আলোতে প্রতি 1 এর জন্য মনে রাখতে বিলম্ব করুন বিলম্ব 100ms দ্বারা পরিবর্তন করুন।
while (digitalRead (leftTurn) == LOW) {for (int i = 0; i <lightDelay; i ++) {leftTurnCheck (); যদি (digitalRead (leftTurn) == HIGH) {leftTurnLight (); } বিলম্ব (100); } এর জন্য (int i = 0; i <NUM_LEDS; i = i +3) {// এটি শেষ থেকে প্রথম পর্যন্ত প্রতিটি তৃতীয় LED এর জন্য আলো পরিবর্তন করবে। leds [0] = CRGB (0, 0, 0); // নির্বাচিত রঙে স্ট্রিপ 0 LED রঙ সেট করুন। } এর জন্য (int i = 9; i <NUM_LEDS; i = i +3) {// এটি চলমান লাইট সেট করবে যা শুধুমাত্র শেষ তিনটি ব্যবহার করে। leds [0] = Color_low; // নির্বাচিত রঙে স্ট্রিপ 0 LED রঙ সেট করুন। } FastLED.show (); // আউটপুট সেটিংস ফিরে; // একবার টার্ন সিগন্যাল আর চালু না থাকলে লুপে ফিরে যান। }
আশা করি বাকি কোডগুলি স্ব -ব্যাখ্যামূলক। এটা শুধু চেকিং এবং সিগন্যালের উপর কাজ করার একটি পুনরাবৃত্তি সেট।
ধাপ 4: ফলাফল

আশ্চর্যজনক অংশটি হ'ল এই সিস্টেমটি প্রথমবার কাজ করে যখন আমি এটিকে বাইকে সংযুক্ত করেছি। এখন, ন্যায্য হওয়ার জন্য আমি এটির আগে বেঞ্চে এটি ব্যাপকভাবে পরীক্ষা করেছি, কিন্তু আমি এখনও একটি সমস্যা বা একটি সমন্বয় আশা করি। দেখা যাচ্ছে যে কোডের পাশাপাশি সংযোগগুলির জন্য আমার কোনও সমন্বয় করার দরকার নেই। আপনি ভিডিওতে দেখতে পাচ্ছেন, সিস্টেমটি স্টার্টআপ সিকোয়েন্স (যা আপনার কাছে থাকতে হবে না) চলে যায়, তারপর চলমান লাইটগুলিতে ডিফল্ট হয়ে যায়। তারপরে এটি ব্রেকগুলির সন্ধান করে, এই ক্ষেত্রে এটি সমস্ত এলইডি সম্পূর্ণ উজ্জ্বলতায় আলোকিত করবে এবং ব্রেকগুলি মুক্তি না হওয়া পর্যন্ত একবার ফ্ল্যাশ করবে। যখন একটি টার্ন সিগন্যাল ব্যবহার করা হয়, আমি পাশের জন্য একটি স্ক্রোলিং এফেক্ট তৈরি করেছি যে টার্নটি নির্দেশ করা হয়েছে এবং অন্য দিকে চলমান লাইট বা ব্রেক লাইট চালু থাকলে হবে। হ্যাজার্ড লাইটগুলো অন্যান্য লাইটের সাথে ঠিক সময়েই জ্বলজ্বল করবে।
আশা করি এই অতিরিক্ত আলো দিয়ে, আমি অন্যদের কাছে আরও দৃশ্যমান হব। কমপক্ষে, ইউটিলিটি সরবরাহ করার সময় আমার বাক্সটি অন্যদের চেয়ে কিছুটা বেশি আলাদা করে তোলার জন্য এটি একটি চমৎকার সংযোজন। আমি আশা করি এই প্রকল্পটি অন্য কারও কাজে লাগবে এমনকি যদি তারা মোটরসাইকেলের টপ বক্সের আলোতে কাজ না করে। ধন্যবাদ!
প্রস্তাবিত:
প্রোগ্রামযোগ্য এলইডি ব্যবহার করে ইন্টিগ্রেটেড ব্লিঙ্কার সহ মোটরসাইকেল লেইল ল্যাম্প: 4 টি ধাপ

প্রোগ্রামেবল এলইডি ব্যবহার করে ইন্টিগ্রেটেড ব্লিঙ্কারের সাথে মোটরসাইকেল লেইল ল্যাম্প: হ্যালো! আপনার মোটরসাইকেলের জন্য কাস্টম প্রোগ্রামযোগ্য আরজিবি টেইল ল্যাম্প (ইন্টিগ্রেটেড ব্লিঙ্কার/ইন্ডিকেটর সহ) বা সম্ভবত WS2812B (স্বতন্ত্রভাবে অ্যাড্রেসেবল লেডস) এবং আরডুইনোস ব্যবহার করে কিছু করার জন্য এটি কিছুটা সহজ DIY। । সেখানে 4 ধরনের লাইটিন
Banggood.com থেকে 3 ডি লাইট কিউব কিট 8x8x8 ব্লু এলইডি এমপি 3 মিউজিক স্পেকট্রাম কীভাবে একত্রিত করবেন: 10 টি ধাপ (ছবি সহ)

কিভাবে 3 ডি লাইট কিউব কিট 8x8x8 ব্লু এলইডি এমপি 3 মিউজিক স্পেকট্রাম Banggood.com থেকে একত্রিত করা যায়: আমরা এটি তৈরি করছি: 3 ডি লাইট কিউব কিট 8x8x8 ব্লু এলইডি এমপি 3 মিউজিক স্পেকট্রাম Transচ্ছিক স্বচ্ছ এক্রাইলিক বোর্ড হাউজিং যদি আপনি এই এলইড কিউব পছন্দ করেন, আপনি হয়তো আমার ইউটিউব চ্যানেলে হপ করুন যেখানে আমি এলইডি কিউব, রোবট, আইওটি, থ্রিডি প্রিন্টিং এবং মোর তৈরি করি
ব্যাটম্যান ব্যাট সিগন্যাল লাইট এবং চক বোর্ড: 5 টি ধাপ (ছবি সহ)

ব্যাটম্যান ব্যাট সিগন্যাল লাইট এবং চক বোর্ড: সাধারনত আপনি ব্যাটম্যান লাইটকে রঙে পরিপূর্ণ বলে মনে করবেন না কিন্তু এটি একটি চক বোর্ডেও আপনি যতটা চান তত রঙ থাকতে পারে যেমন আপনি ছবি থেকে দেখতে পারেন
আপনার মোটরসাইকেল টেইল লাইট কাস্টম করুন !: 3 টি ধাপ

কাস্টম আপনার মোটরসাইকেল টেইল লাইট !: হ্যালো সবাই! এই নির্দেশাবলীর উপর, আমি শেয়ার করবো কিভাবে বাল্ব থেকে LED পর্যন্ত সস্তায় আপনার নিজের লেজের আলো কাস্টম করতে হয় যদি আপনি এখনই পড়তে অলস হন, তাহলে আপনি ভিডিওটি দেখতে পারেন যা আমি ইতিমধ্যেই তৈরি করেছি ঠিক আছে, যথেষ্ট ভূমিকা, শুধু ধাপে প্রবেশ করুন
বাইক হ্যান্ড সিগন্যাল লাইট: 10 টি ধাপ (ছবি সহ)

বাইক হ্যান্ড সিগন্যাল লাইট: এই প্রজেক্টের লক্ষ্য হল একটি আলো তৈরি করা যা বাইকের গ্লাভসে ফিট করে এবং রাতের বেলা দৃশ্যমানতা বাড়ানোর জন্য নির্দেশিত টার্নের দিকে নির্দেশ করে। এটি লাইটওয়েট, ব্যবহার করা সহজ এবং স্বাক্ষরের জন্য বিদ্যমান গতিগুলির সাথে একীভূত হওয়া উচিত