সুচিপত্র:

ATTiny85 ক্যাপাসিটর মিটার: 4 টি ধাপ
ATTiny85 ক্যাপাসিটর মিটার: 4 টি ধাপ

ভিডিও: ATTiny85 ক্যাপাসিটর মিটার: 4 টি ধাপ

ভিডিও: ATTiny85 ক্যাপাসিটর মিটার: 4 টি ধাপ
ভিডিও: ক্যাপাসিটর পরিমাপ এবং ডিজিটাল মিটার সম্পর্কে ধারণা||Capacitor measure & Multivitamin review 2024, ডিসেম্বর
Anonim
ATTiny85 ক্যাপাসিটর মিটার
ATTiny85 ক্যাপাসিটর মিটার
ATTiny85 ক্যাপাসিটর মিটার
ATTiny85 ক্যাপাসিটর মিটার

এই নির্দেশনাটি ATTiny85 এর উপর ভিত্তি করে একটি ক্যাপাসিটর মিটারের জন্য নিম্নলিখিত বৈশিষ্ট্যগুলির সাথে।

  • ATTiny85 (DigiStamp) এর উপর ভিত্তি করে
  • SSD1306 0.96 "OLED ডিসপ্লে
  • 555 অসিলেটর ব্যবহার করে কম মূল্যের ক্যাপাসিটার 1pF - 1uF এর ফ্রিকোয়েন্সি পরিমাপ
  • উচ্চ মানের ক্যাপাসিটরের জন্য চার্জ সময় পরিমাপ 1uF - 50000uF
  • স্টারি ক্যাপাসিট্যান্স কমানোর পদ্ধতিগুলির জন্য ব্যবহৃত 2 টি পৃথক পোর্ট
  • বড় ক্যাপাসিটরের জন্য সময় কমানোর জন্য চার্জ টাইমের জন্য ব্যবহৃত বর্তমানের দুটি মান
  • শুরুতে 555 পদ্ধতি স্ব শূন্য, পুশ বোতাম দিয়ে পুনরায় শূন্য করা যেতে পারে
  • পরিমাপের প্রতিটি চক্রের জন্য কোন পদ্ধতি ব্যবহার করা উচিত তা নির্বাচন করতে ব্যবহৃত একটি দ্রুত পরীক্ষা।
  • OSCVAL ক্লক ফ্রিকোয়েন্সি অ্যাডজাস্টমেন্টের সমর্থনের মাধ্যমে চার্জ টাইম মেথড নির্ভুলতা উন্নত করা যায়

ধাপ 1: পরিকল্পিত এবং তত্ত্ব

পরিকল্পিত এবং তত্ত্ব
পরিকল্পিত এবং তত্ত্ব

পরিকল্পিত দেখায় ATTiny একটি I2C ইন্টারফেসের মাধ্যমে SSD1306 OLED ডিসপ্লে চালাচ্ছে। এটি সরাসরি LiOn 300mAh ব্যাটারি থেকে চালিত এবং একটি চার্জিং পয়েন্ট অন্তর্ভুক্ত করা হয়েছে যা LiOn সামঞ্জস্যপূর্ণ বহিরাগত চার্জারের সাথে ব্যবহার করা যেতে পারে।

প্রথম পরিমাপ পদ্ধতি 555 মুক্ত চলমান অসিলেটরের ফ্রিকোয়েন্সি পরিমাপের উপর ভিত্তি করে। এটি প্রতিরোধক দ্বারা নির্ধারিত একটি বেস ফ্রিকোয়েন্সি এবং একটি ক্যাপাসিটর যা উচ্চ নির্ভুলতা হওয়া উচিত কারণ এটি পরিমাপের নির্ভুলতা নির্ধারণ করে। আমি 820pF 1% পলিস্টাইরিন ক্যাপাসিটর ব্যবহার করেছি কিন্তু 1nF এর কাছাকাছি অন্যান্য মান ব্যবহার করা যেতে পারে। সফটওয়্যারে যে কোন স্ট্রে ক্যাপাসিট্যান্স (~ 20pF) এর অনুমানের সাথে মানটি প্রবেশ করতে হবে। এটি প্রায় 16KHz এর একটি বেস ফ্রিকোয়েন্সি দিয়েছে। 555 এর আউটপুটটি ATTiny এর PB2 তে খাওয়ানো হয় যা একটি হার্ডওয়্যার কাউন্টার হিসাবে প্রোগ্রাম করা হয়। প্রায় 1 সেকেন্ড সময় ধরে গণনা পরিমাপ করে ফ্রিকোয়েন্সি নির্ধারণ করা যায়। বেস ফ্রিকোয়েন্সি নির্ধারণের জন্য এটি শুরুতে করা হয়। যখন পরীক্ষার অধীনে একটি ক্যাপাসিটর বেস ক্যাপাসিটরের সমান্তরালে যোগ করা হয় তখন ফ্রিকোয়েন্সি হ্রাস পায় এবং যখন এটি পরিমাপ করা হয় এবং বেস ফ্রিকোয়েন্সি এর সাথে তুলনা করা হয় তখন যোগ করা ক্যাপাসিট্যান্সের মান গণনা করা যায়।

এই পদ্ধতির চমৎকার বৈশিষ্ট্য হল যে গণিত মান শুধুমাত্র বেস ক্যাপাসিটরের নির্ভুলতার উপর নির্ভর করে। পরিমাপের সময়কাল কোন ব্যাপার না। রেজোলিউশন ফ্রিকোয়েন্সি পরিমাপের রেজোলিউশনের উপর নির্ভর করে যা বেশ বেশি তাই এমনকি খুব ছোট সংযোজিত ক্যাপ্যাসিট্যান্সও পরিমাপ করা যায়। সীমিত ফ্যাক্টর 555 অসিলেটরের 'ফ্রিকোয়েন্সি শব্দ' বলে মনে হয় যা আমার জন্য প্রায় 0.3pF এর সমতুল্য।

পদ্ধতিটি একটি শালীন পরিসরে ব্যবহার করা যেতে পারে। পরিসীমা উন্নত করার জন্য আমি আগত ডালের প্রান্ত সনাক্ত করার জন্য পরিমাপের সময়কে সিঙ্ক্রোনাইজ করি। এর মানে হল যে 12Hz (1uF ক্যাপাসিটরের সাথে) এর মতো কম ফ্রিকোয়েন্সি দোলনও সঠিকভাবে পরিমাপ করা হয়।

বড় ক্যাপাসিটরের জন্য সার্কিটকে চার্জ টাইমিং পদ্ধতি ব্যবহার করার ব্যবস্থা করা হয়। এর মধ্যে পরীক্ষার অধীনে ক্যাপাসিটরটি স্রাব নিশ্চিত করা হয় যাতে এটি 0 এ শুরু হয়, তারপর সরবরাহ ভোল্টেজ থেকে একটি পরিচিত প্রতিরোধের মাধ্যমে চার্জ করা হয়। ATTiny85 এ একটি ADC ক্যাপাসিটরের ভোল্টেজ পর্যবেক্ষণ করতে ব্যবহৃত হয় এবং 0% থেকে 50% চার্জ যাওয়ার সময় পরিমাপ করা হয়। এটি ক্যাপাসিট্যান্স গণনার জন্য ব্যবহার করা যেতে পারে। যেহেতু এডিসির রেফারেন্স হল সরবরাহ ভোল্টেজ তখন এটি পরিমাপকে প্রভাবিত করে না। যাইহোক, গৃহীত সময়ের পরম পরিমাপ ATTiny85 ঘড়ির ফ্রিকোয়েন্সি উপর নির্ভর করে এবং এর বৈচিত্র ফলাফলকে প্রভাবিত করে। ATTiny85 এ একটি টিউনিং রেজিস্টার ব্যবহার করে এই ঘড়ির নির্ভুলতা উন্নত করতে একটি পদ্ধতি ব্যবহার করা যেতে পারে এবং এটি পরে বর্ণনা করা হয়েছে।

0V তে ক্যাপাসিটরের স্রাব করার জন্য একটি n- চ্যানেল MOSFET স্রাবের বর্তমান সীমাবদ্ধ করার জন্য একটি কম মান প্রতিরোধক ব্যবহার করা হয়। এর অর্থ হল এমনকি বড় মানের ক্যাপাসিটরগুলি দ্রুত ছাড়তে পারে।

ক্যাপাসিটরের চার্জ করার জন্য চার্জিং রোধের 2 টি মান ব্যবহার করা হয়। একটি বেস ভ্যালু 1uF থেকে প্রায় 50uF পর্যন্ত ক্যাপাসিটরের জন্য যুক্তিসঙ্গত চার্জিং সময় দেয়। একটি পি-চ্যানেল এমওএসএফইটি নিম্ন রোধে সমান্তরালভাবে ব্যবহার করা হয় যাতে উচ্চমূল্যের ক্যাপাসিটারগুলি যুক্তিসঙ্গত ব্যবধানে পরিমাপ করা যায়। নির্বাচিত মানগুলি 2200uF পর্যন্ত ক্যাপাসিটরের জন্য 1 সেকেন্ডের পরিমাপের সময় দেয় এবং বড় মানের জন্য আনুপাতিকভাবে দীর্ঘ। মূল্যের নিচের প্রান্তে পরিমাপের সময়কালটি যথাযথভাবে দীর্ঘ রাখতে হবে যাতে 50% থ্রেশহোল্ডের মাধ্যমে সংক্রমণ নির্ধারণ করা যায় যা যথেষ্ট নির্ভুলতার সাথে করা যায়। ADC এর নমুনার হার প্রায় 25uSec তাই ন্যূনতম 22mSec সময়কাল যুক্তিসঙ্গত নির্ভুলতা দেয়।

যেহেতু ATTiny সীমিত IO (6 পিন) আছে তাই এই সম্পদ বরাদ্দ সাবধানে করা প্রয়োজন। ডিসপ্লের জন্য 2 টি পিন, টাইমার ইনপুটের জন্য 1, এডিসির জন্য 1, ডিসচার্জ কন্ট্রোল এবং 1 চার্জ রেট কন্ট্রোলের জন্য প্রয়োজন। আমি একটি ধাক্কা বোতাম নিয়ন্ত্রণ চেয়েছিলাম যে কোন সময়ে পুনরায় শূন্য করার অনুমতি দেয়। এটি I2C SCL লাইন হাই-জ্যাকিং দ্বারা সম্পন্ন করা হয়। যেহেতু I2C সংকেতগুলি খোলা ড্রেন, তখন বোতামটিকে এই লাইনটি কম টানতে দিয়ে কোন বৈদ্যুতিক সংঘাত নেই। ডিসপ্লের বোতামটি হতাশ হয়ে কাজ করা বন্ধ করে দেবে কিন্তু এটির কোন পরিণতি নেই কারণ বোতামটি রিলিজ হয়ে গেলে এটি পুনরায় চালু হয়।

ধাপ 2: নির্মাণ

নির্মাণ
নির্মাণ
নির্মাণ
নির্মাণ
নির্মাণ
নির্মাণ

আমি এটি একটি ছোট 55mm x 55mm 3D মুদ্রিত বাক্সে তৈরি করেছি। 4 টি প্রধান উপাদান রাখার জন্য ডিজাইন করা হয়েছে; ATTiny85 DigiStamp বোর্ড, SSD1306 ডিসপ্লে, LiOn ব্যাটারি, এবং 55 টি টাইমার এবং চার্জ কন্ট্রোল ইলেকট্রনিক্স ধারণকারী একটি ছোট্ট প্রোটোটাইপ বোর্ড।

Https://www.thingiverse.com/thing:4638901 এ ঘের

যন্ত্রাংশ প্রয়োজন

  • ATTiny85 DigiStamp বোর্ড। আমি একটি মাইক্রো ইউএসবি সংযোগকারী সহ একটি সংস্করণ ব্যবহার করেছি যা ফার্মওয়্যার আপলোড করার জন্য ব্যবহৃত হয়।
  • SSD1306 I2C OLED ডিসপ্লে
  • 300mAH LiOn ব্যাটারি
  • প্রোটোটাইপিং বোর্ডের ছোট ফালা
  • CMOS 555 টাইমার চিপ (TLC555)
  • n- চ্যানেল MOSFET AO3400
  • পি-চ্যানেল MOSFET AO3401
  • প্রতিরোধক 4R7, 470R, 22K, 2x33K
  • ক্যাপাসিটার 4u7, 220u
  • যথার্থ ক্যাপাসিটর 820pF 1%
  • ক্ষুদ্র স্লাইড সুইচ
  • চার্জ পোর্ট এবং পরিমাপ পোর্টের জন্য 2 x 3 পিন হেডার
  • বোতাম চাপা
  • ঘের
  • তারে হুক আপ

সরঞ্জাম প্রয়োজন

  • ফাইন পয়েন্ট সোল্ডারিং লোহা
  • টুইজার

প্রথমে প্রোটোটাইপ বোর্ডে 555 টাইমার সার্কিট এবং চার্জিং উপাদান তৈরি করুন। বাহ্যিক সংযোগের জন্য উড়ন্ত লিড যুক্ত করুন। স্লাইড সুইচ এবং চার্জ পয়েন্ট এবং পরিমাপ বন্দর ঘের মধ্যে সংযুক্ত করুন। ব্যাটারি লাগান এবং চার্জ পয়েন্ট, স্লাইড সুইচে মূল পাওয়ার ওয়্যারিং করুন। পুশ বোতামে মাটি সংযুক্ত করুন। ATTiny85 জায়গায় লাগান এবং হুক আপ সম্পূর্ণ করুন।

ফিটিং করার আগে আপনি ATTiny বোর্ডে কিছু বিদ্যুৎ সাশ্রয়ী পরিবর্তন করতে পারেন যা বর্তমানকে কিছুটা কমিয়ে দেবে এবং ব্যাটারির আয়ু বাড়িয়ে দেবে।

www.instructables.com/Reducing-Sleep-Curre…

এটি সমালোচনামূলক নয় কারণ ব্যবহার না হলে মিটার বন্ধ করার জন্য একটি পাওয়ার সুইচ রয়েছে।

ধাপ 3: সফটওয়্যার

এই ক্যাপাসিটর মিটারের জন্য সফটওয়্যার পাওয়া যাবে

github.com/roberttidey/CapacitorMeter

এটি একটি Arduino ভিত্তিক স্কেচ। এটি প্রদর্শন এবং I2C এর জন্য লাইব্রেরির প্রয়োজন যা পাওয়া যাবে

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

এটি ATTiny এর জন্য ন্যূনতম মেমরি গ্রহণের জন্য অপ্টিমাইজ করা হয়েছে। I2C লাইব্রেরি একটি উচ্চ গতির বিট ব্যাং পদ্ধতি যা যেকোন 2 টি পিন ব্যবহার করতে দেয়। এটি গুরুত্বপূর্ণ কারণ সিরিয়াল পোর্ট ব্যবহার করে I2C পদ্ধতিগুলি PB2 ব্যবহার করে যা 555 ফ্রিকোয়েন্সি পরিমাপের জন্য প্রয়োজনীয় টাইমার/কাউন্টার ইনপুট ব্যবহার করার সাথে সাংঘর্ষিক।

সফ্টওয়্যারটি একটি রাষ্ট্রীয় মেশিনের চারপাশে গঠন করা হয়েছে যা রাজ্যের একটি চক্রের মাধ্যমে পরিমাপ করে। একটি ISR 8 বিট হার্ডওয়্যার প্রসারিত করতে টাইমার কাউন্টার থেকে ওভারফ্লো সমর্থন করে। একটি দ্বিতীয় ISR ধারাবাহিক মোডে ADC অপারেটিং সমর্থন করে। এটি থ্রেশহোল্ড অতিক্রম করে চার্জিং সার্কিটের দ্রুততম প্রতিক্রিয়া দেয়।

প্রতিটি পরিমাপ চক্রের শুরুতে একটি getMeasureMode ফাংশন নির্ধারণ করে যে প্রতিটি পরিমাপের জন্য কোনটি সবচেয়ে উপযুক্ত পদ্ধতি।

যখন 555 পদ্ধতি ব্যবহার করা হয় তখন গণনার সময় শুরু হয় যখন কাউন্টার পরিবর্তিত হয়। একইভাবে নামমাত্র পরিমাপ ব্যবধানের পরে এবং যখন একটি প্রান্ত সনাক্ত করা হয় তখন সময় বন্ধ করা হয়। এই সিঙ্ক্রোনাইজেশনটি কম ফ্রিকোয়েন্সিগুলির জন্যও ফ্রিকোয়েন্সিটির সঠিক গণনার অনুমতি দেয়।

যখন সফটওয়্যারটি প্রথম 7 পরিমাপ শুরু করে তখন 'ক্যালিব্রেশন চক্র' ব্যবহার করা হয় যা 555 এর বেস ফ্রিকোয়েন্সি নির্ধারণ করতে ব্যবহৃত হয় যাতে কোন অতিরিক্ত ক্যাপাসিটর নেই। শেষ 4 চক্র গড়।

ঘড়ি টিউনিংয়ের জন্য ওএসসিএল রেজিস্টার সামঞ্জস্য করার জন্য সমর্থন রয়েছে। আমি OSCCAL_VAL কে প্রাথমিকভাবে স্কেচের শীর্ষে 0 সেট করার পরামর্শ দিই। এর অর্থ টিউনিং সম্পন্ন না হওয়া পর্যন্ত কারখানার ক্রমাঙ্কন ব্যবহার করা হবে।

555 বেস ক্যাপাসিটরের মান সমন্বয় করা প্রয়োজন। আমি বিপথগামী ক্যাপ্যাসিট্যান্সের জন্য একটি আনুমানিক পরিমাণ যোগ করি।

যদি চার্জ পদ্ধতির জন্য বিভিন্ন প্রতিরোধক ব্যবহার করা হয় তবে সফ্টওয়্যারের CHARGE_RCLOW এবং CHARGE_RCHIGH মানগুলিও পরিবর্তন করতে হবে।

সফটওয়্যারটি ইনস্টল করার জন্য সফ্টওয়্যার আপলোড করার এবং ইউএসবি পোর্ট সংযুক্ত করার জন্য সাধারণ ডিজিস্ট্যাম্প পদ্ধতি ব্যবহার করুন। পাওয়ার সুইচটি বন্ধ অবস্থায় রেখে দিন কারণ এই অপারেশনের জন্য ইউএসবি দ্বারা বিদ্যুৎ সরবরাহ করা হবে।

ধাপ 4: অপারেশন এবং উন্নত ক্রমাঙ্কন

অপারেশন খুব সোজা।

ইউনিট চালু করার পরে এবং ক্রমাঙ্কন শূন্য শেষ হওয়ার জন্য অপেক্ষা করার পরে পরীক্ষার অধীনে ক্যাপাসিটরের দুটি পরিমাপের পোর্টের সাথে সংযুক্ত করুন। কম মূল্যের ক্যাপাসিটার <1uF এর জন্য 555 পোর্ট এবং উচ্চ মূল্যের ক্যাপাসিটরের জন্য চার্জ পোর্ট ব্যবহার করুন। ইলেক্ট্রোলাইটিক ক্যাপাসিটরের জন্য নেগেটিভ টার্মিনালকে সাধারণ আর্থ পয়েন্টে সংযুক্ত করুন। পরীক্ষার সময় ক্যাপাসিটরের চার্জ হবে প্রায় 2V পর্যন্ত।

555 পোর্টটি প্রায় 1 সেকেন্ডের জন্য পুশ বোতামে ধরে রেখে পুনরায় শূন্য করা যেতে পারে। নিশ্চিত করুন যে এর জন্য 555 পোর্টে কিছুই সংযুক্ত নয়।

উন্নত ক্রমাঙ্কন

চার্জ পদ্ধতি সময় পরিমাপ করার জন্য ATTiny85 এর পরম ঘড়ির ফ্রিকোয়েন্সি উপর নির্ভর করে। ঘড়িটি নামমাত্র 8MHz ঘড়ি দেওয়ার জন্য সাজানো অভ্যন্তরীণ RC অসিলেটর ব্যবহার করে। যদিও ভোল্টেজ এবং তাপমাত্রার তারতম্যের জন্য অসিলেটরের স্থিতিশীলতা বেশ ভাল, কারখানার ক্যালিব্রেটেড হওয়া সত্ত্বেও এর ফ্রিকোয়েন্সি বেশ কয়েক শতাংশের বেশি হতে পারে। এই ক্রমাঙ্কন শুরুতে OSCCAL রেজিস্টার সেট করে। ফ্রিকোয়েন্সি পরীক্ষা করে এবং একটি নির্দিষ্ট ATTiny85 বোর্ডের সাথে সামঞ্জস্য রেখে OSCCAL ভ্যালুর আরও অনুকূল সেটিং করে কারখানার ক্রমাঙ্কন উন্নত করা যেতে পারে।

আমি এখনও ফার্মওয়্যারে আরও স্বয়ংক্রিয় পদ্ধতিতে ফিট করতে পারিনি তাই আমি নিম্নলিখিত ম্যানুয়াল পদ্ধতিটি ব্যবহার করি। বাহ্যিক পরিমাপ কি পাওয়া যায় তার উপর নির্ভর করে দুটি প্রকরণ সম্ভব; হয় 555 বন্দরে ত্রিভুজাকার তরঙ্গাকৃতির ফ্রিকোয়েন্সি পরিমাপ করতে সক্ষম একটি ফ্রিকোয়েন্সি মিটার, অথবা পরিচিত ফ্রিকোয়েন্সি একটি বর্গ তরঙ্গ উৎস যেমন 10KHz একটি 0V/3.3V স্তরের সাথে যা 555 পোর্টের সাথে সংযুক্ত হতে পারে এবং তরঙ্গাকৃতিটিকে ওভাররাইড করে কাউন্টারে সেই ফ্রিকোয়েন্সি জোর করে। আমি দ্বিতীয় পদ্ধতি ব্যবহার করেছি।

  1. কোন ক্যাপাসিটার সংযুক্ত না করে তার স্বাভাবিক শক্তিতে মিটার শুরু করুন।
  2. 555 পোর্টে ফ্রিকোয়েন্সি মিটার বা স্কয়ার ওয়েভ জেনারেটর সংযুক্ত করুন।
  3. বোতাম টিপে ক্রমাঙ্কন চক্র পুনরায় চালু করুন।
  4. ক্রমাঙ্কন চক্রের শেষে প্রদর্শন কাউন্টার এবং বর্তমান OSCCAL মান দ্বারা নির্ধারিত ফ্রিকোয়েন্সি প্রদর্শন করবে। লক্ষ্য করুন যে ক্রমাঙ্কন চক্রের পুনরাবৃত্তি ব্যবহার পরিমাপ করা ফ্রিকোয়েন্সি এবং স্বাভাবিক কোন প্রদর্শন দেখানোর মধ্যে টগল করবে।
  5. যদি প্রদর্শিত ফ্রিকোয়েন্সি জানা যায় তার চেয়ে কম হয় তাহলে এর মানে হল ঘড়ির ফ্রিকোয়েন্সি খুব বেশি এবং বিপরীতভাবে। আমি একটি OSCCAL ইনক্রিমেন্ট ঘড়ি প্রায় 0.05% দ্বারা সামঞ্জস্য খুঁজে
  6. ঘড়ি উন্নত করতে একটি নতুন OSCCAL মান গণনা করুন।
  7. ফার্মওয়্যারের শীর্ষে OSCCAL_VAL এ নতুন OSCCAL মান লিখুন।
  8. নতুন ফার্মওয়্যার পুনর্নির্মাণ এবং আপলোড করুন। ধাপ 1 -5 পুনরাবৃত্তি করুন যা নতুন OSCCAL মান এবং নতুন ফ্রিকোয়েন্সি পরিমাপ দেখাবে।
  9. প্রয়োজনে সর্বোত্তম ফলাফল অর্জন না হওয়া পর্যন্ত পদক্ষেপগুলি পুনরাবৃত্তি করুন।

সাপ্লাই ভোল্টেজের কারণে কোন ফ্রিকোয়েন্সি শিফট কমানোর জন্য ইউএসবি নয় স্বাভাবিক পাওয়ারে চলার সময় এই টিউনিংয়ের পরিমাপের অংশটি নোট করা গুরুত্বপূর্ণ।

প্রস্তাবিত: