সুচিপত্র:

LED উজ্জ্বলতা ক্যালিব্রেটিং: 5 টি ধাপ
LED উজ্জ্বলতা ক্যালিব্রেটিং: 5 টি ধাপ

ভিডিও: LED উজ্জ্বলতা ক্যালিব্রেটিং: 5 টি ধাপ

ভিডিও: LED উজ্জ্বলতা ক্যালিব্রেটিং: 5 টি ধাপ
ভিডিও: Building My New Editing/Gaming PC! 2024, নভেম্বর
Anonim
LED উজ্জ্বলতা ক্যালিব্রেটিং
LED উজ্জ্বলতা ক্যালিব্রেটিং

যখন আমি একটি পরী আলো তৈরি করছিলাম, তখন আমি বুঝতে পারলাম যে PWM মান LED এর উজ্জ্বলতার সাথে অ-রৈখিকভাবে সমানুপাতিক। সহজভাবে বলতে গেলে, PWM মান দ্বিগুণ হলে উজ্জ্বলতা দ্বিগুণ হয় না; বিশেষ করে যখন PWM সর্বাধিকের কাছাকাছি থাকে, কোন পরিবর্তন আমার চোখে শনাক্ত করা যায় না। আমি ভেবেছিলাম এটি একটি সাধারণ ক্রমাঙ্কন সমস্যা হওয়া উচিত! এবং আমি কিভাবে এই প্রকল্পটি তৈরি করেছি! ধারণাটি হল একটি LED এর উজ্জ্বলতা কিছু যন্ত্রের সাহায্যে পরিমাপ করা (লুমিনোসিটি সেন্সর বা ফটোরিসিস্টর) এবং PWM মান এবং উজ্জ্বলতার মধ্যে একটি পারস্পরিক সম্পর্ক খুঁজে বের করা। তারপর পরে যদি আমি 50%তে উজ্জ্বলতা সেট করি, Arduino সংশ্লিষ্ট PWM গণনা করবে এবং সেই অনুযায়ী LED কমিয়ে দেবে।

অতএব, উজ্জ্বলতা পরিমাপের জন্য আমার একটি উজ্জ্বলতা সেন্সর এবং একটি LED প্রয়োজন। একটি এসডি কার্ড ব্যবহার করে, আমি পরবর্তী ফিটিং পদ্ধতির জন্য ডেটা সংরক্ষণ করব। ফিটিং এক্সেল (বা অন্য কোন প্রোগ্রাম) করা হবে। আরডুইনো কোডে আউটপুট ব্যবহার করা হবে, এবং এটাই! এটি একবার করা উচিত। তারপর আপনি চিরকালের জন্য ক্রমাঙ্কন পরামিতি ব্যবহার করতে পারেন!

ধাপ 1: অংশ

1- WEMOS মিনি D1: Aliexpress 3

2- TSL 2561 (Luminosity sensor): Aliexpress 3

3- এসডি কার্ড মডিউল: Aliexpress 1

4- LED

5- প্রতিরোধক 220 ওহম

6- তারের

মোট খরচ: 8-10 €

ধাপ 2: তারের

তারের
তারের
তারের
তারের
তারের
তারের

এসডি কার্ড মডিউল এবং উজ্জ্বলতা সেন্সর তারের পরিবর্তন করা উচিত নয় (তাদের অধিকাংশ)। নেতৃত্ব একটি PWM পিনের সাথে সংযুক্ত করা উচিত।

ধাপ 3: কোড

কোড
কোড

আমি তিনটি টুকরা কোড একত্রিত করেছি:

SD কার্ড: ব্যবহৃত উদাহরণ> SD> Arduino IDE তে ReadWrite

TSL 2561: ব্যবহৃত Adafruit TSL2561 লাইব্রেরির উদাহরণ (সেনসোরাপি); আপনি এটি লাইব্রেরি ইনস্টল করলে উদাহরণে পাবেন (আমি ধরে নিচ্ছি আপনি Arduino IDE তে একটি লাইব্রেরি কীভাবে ইনস্টল করবেন তা জানেন)।

LED ফেইডিং: ব্যবহৃত উদাহরণ> এনালগ> ফেইডিং

কোড, মডিউলগুলি আরম্ভ করার পরে, নেতৃত্বকে কমিয়ে দেবে এবং উজ্জ্বলতা পড়বে এবং এটি এসডি কার্ডে সংরক্ষণ করবে। এইভাবে আমি ক্রমাঙ্কনের জন্য কিছু তথ্য সংগ্রহ করব।

আমি আমার প্রয়োজন অনুযায়ী প্রতিটি কোড পরিবর্তন করেছি। চূড়ান্ত কোড সংযুক্ত।

সংকেতটি সংযুক্ত ছবির মতো হওয়া উচিত। দুর্ভাগ্যবশত আমি একটি ছবি তুলতে ভুলে গেছি তাই আমি এটিকে এক্সেল -এ রিপ্লোট করে দেখাব যে এটি কেমন হওয়া উচিত।

দ্রষ্টব্য: আমি Arduino এর পরিবর্তে wemo mini D1 ব্যবহার করছি। কিছু কারণে যে আমি জানি না, PWM 0 এবং 1023 এর মধ্যে। Arduino এ এটি 0-255 এর মধ্যে হওয়া উচিত। আপনি যদি arduino এর জন্য কোড ব্যবহার করতে চান, তাহলে আপনার এটির যত্ন নেওয়া উচিত (লাইন 90)।

ধাপ 4: ফিটিং এবং ব্যবহার

ফিটিং, এবং ব্যবহার
ফিটিং, এবং ব্যবহার
ফিটিং, এবং ব্যবহার
ফিটিং, এবং ব্যবহার

তথ্য সংগ্রহের পর, আমি এক্সেল ফাইল খুললাম এবং তথ্য চক্রান্ত (ছবি দেখুন)। প্রথম কলামটি PWM মান এবং দ্বিতীয়টি হল লাক্স (সেন্সরের পড়া, ইউনিটটি খুব বেশি গুরুত্বপূর্ণ নয়)। অতএব, প্লট লাক্স (y- অক্ষ) বনাম PWM (x- অক্ষ)। আপনি দেখতে পাচ্ছেন উজ্জ্বলতা PWM মানের রৈখিকভাবে সমানুপাতিক। আমি এটি একটি লাইন লাগানো।

একটি লাইন ফিট করার জন্য অনুসরণ করুন:

1- ডেটা প্লট করুন (সন্নিবেশ করান> স্ক্যাটার প্লট) আমি ধরে নিচ্ছি আপনি কিভাবে জানেন।

2- প্লট করা ডেটার উপর ডান ক্লিক করুন

3- ট্রেন্ডলাইনে ক্লিক করুন।

4- (এক্সেল 2013 এ) ডান দিকে একটি প্যানেল পপ আপ। রৈখিক নির্বাচন করুন। নীচে "চার্টে ডিসপ্লে ইকুয়েশন" নির্বাচন করুন।

রৈখিক সম্পর্ক আমার উপলব্ধি থেকে ভিন্ন। অতএব আমি মনে করি আমার উপলব্ধি এবং উজ্জ্বলতার মধ্যে লগারিদমিক সম্পর্ক থাকা উচিত (এটি সবচেয়ে সহজ উপায় আমার মনে এসেছে!)। তাই আমি ফিটের opeাল নিয়েছি। বাধা গুরুত্বপূর্ণ নয়, কারণ এটি আশেপাশের আলো দূষণের উপর নির্ভর করে! পরিবর্তে, আমি যোগ করেছি 1. কারণ Log10 (0) অসীম। তাই সমস্যা সমাধানের জন্য আমার একটি ইন্টারসেপ্ট দরকার। আমার ক্ষেত্রে সমীকরণ এই মত দেখায়:

y = Log10 (0.08 x +1), y হল উজ্জ্বলতা এবং x হল PWM মান (0-1023)

আমি সর্বোচ্চ মান সমীকরণ স্বাভাবিক। তারপর আউটপুট রেঞ্জ সর্বদা 0-100 এর মধ্যে থাকে। এইভাবে আমি সর্বাধিক পরম উজ্জ্বলতা ছাড়া, একটি নির্দিষ্ট আপেক্ষিক উজ্জ্বলতার জন্য arduino জিজ্ঞাসা করতে পারি।

y = Log10 (0.08 x +1)*100/1.914

কারণ আরডুইনোতে আমার ইনপুট আপেক্ষিক উজ্জ্বলতা, আমাকে x (PWM) এর সমীকরণটি পুনরায় সাজাতে হবে:

x = (10^(y*1.914 / 100) - 1) / 0.08

কোডে এই সমীকরণ ব্যবহার করে আমরা একটি রৈখিক উজ্জ্বলতা পরিবর্তন পেতে সক্ষম। সুতরাং আপনি 0-100 এর মধ্যে একটি উজ্জ্বলতা (y) এর জন্য arduino জিজ্ঞাসা করুন, এবং arduino সংশ্লিষ্ট PWM মান গণনা করে। এইভাবে, যদি উজ্জ্বলতা দ্বিগুণ হয়, আপনার উপলব্ধিও একই।

আপনি যদি আপনার কোডে এটি ব্যবহার করতে চান তবে এই লাইনগুলি যুক্ত করা আপনার জন্য ভাল:

উজ্জ্বলতা = 50; // শতাংশে

PWM = pow (10, উজ্জ্বলতা*1.914/100) -1) /0.0793;

analogWrite (ledpin, PWM);

দ্রষ্টব্য: 1023 এর সর্বাধিক PWM (Wemos mini D1 এর জন্য) স্বাভাবিককরণ করা হয়। Arduino PWM এর জন্য 0-255 এর মধ্যে। আপনাকে সে অনুযায়ী হিসাব করতে হবে।

NOTE2: আমাদের উপলব্ধি এবং PWM মান কিভাবে সম্পর্কিত তা দেখানোর জন্য আমি একটি লগ-লিনিয়ার প্লট যোগ করেছি। আপনি এটি ফিটিং জন্য ব্যবহার করা উচিত নয়!

ধাপ 5: উপসংহার

ক্রমাঙ্কন আমার জন্য ভাল কাজ করে। যখন PWM মান বড় হয়, আমি পার্থক্য দেখতে পারি। আগে বড় মান হিসাবে আমি dimming প্রভাব দেখতে পারে না। মূলত বেশিরভাগ পরিবর্তনগুলি PWM এর একটি ছোট পরিসরে করা হয়েছিল। এখন এটা calibratied হয়!

প্রতিটি এলইডি, বিশেষ করে বিভিন্ন রং, এটি নিজস্ব ক্রমাঙ্কন পরামিতি থাকা উচিত। যাইহোক আমি একটি নীল LED ক্যালিব্রেট করেছি এবং একটি সাদা LED এর জন্য প্যারামিটার ব্যবহার করেছি এবং ফলাফলটি গ্রহণযোগ্য ছিল। তাই হয়তো আপনি নিজেকে বিরক্ত না করে আমার ক্রমাঙ্কন পরামিতি ব্যবহার করতে পারেন !!

প্রস্তাবিত: