فهرست مطالب:

متر خازن ATTiny85: 4 مرحله
متر خازن ATTiny85: 4 مرحله

تصویری: متر خازن ATTiny85: 4 مرحله

تصویری: متر خازن ATTiny85: 4 مرحله
تصویری: آموزش تست خازن l خازن الکترولیت l خازن چطور تست میشه؟! 2024, جولای
Anonim
متر خازن ATTiny85
متر خازن ATTiny85
متر خازن ATTiny85
متر خازن ATTiny85

این دستورالعمل برای یک خازن متر بر اساس ATTiny85 با ویژگی های زیر است.

  • بر اساس ATTiny85 (DigiStamp)
  • SSD1306 صفحه نمایش 0.96 اینچی OLED
  • اندازه گیری فرکانس خازن های کم ارزش 1pF - 1uF با استفاده از نوسان ساز 555
  • اندازه گیری زمان شارژ خازنهای با ارزش بالا 1uF - 50000uF
  • 2 پورت جداگانه برای روشهای کاهش ظرفیت خازنی استفاده می شود
  • دو مقدار جریان برای زمان شارژ استفاده می شود تا زمان خازن های بزرگ را به حداقل برساند
  • 555 روش خود صفر در هنگام راه اندازی ، می توان آن را با دکمه تنظیم مجدد کرد
  • یک آزمایش سریع برای انتخاب روش مورد استفاده برای هر چرخه اندازه گیری استفاده می شود.
  • دقت زمان زمان شارژ را می توان با پشتیبانی از تنظیم فرکانس ساعت OSCVAL بهبود بخشید

مرحله 1: شماتیک و نظریه

شماتیک و نظریه
شماتیک و نظریه

شماتیک نشان می دهد که ATTiny صفحه نمایش OLED SSD1306 را از طریق رابط I2C هدایت می کند. این دستگاه مستقیماً از باتری LiOn 300mAh تغذیه می کند و دارای یک نقطه شارژ است که می تواند با یک شارژر خارجی سازگار با LiOn استفاده شود.

اولین روش اندازه گیری بر اساس اندازه گیری فرکانس یک نوسان ساز آزاد 555 است. این دارای یک فرکانس پایه است که توسط مقاومتها تعیین می شود و یک خازن که باید دقت بالایی داشته باشد زیرا این امر دقت اندازه گیری ها را تعیین می کند. من از خازن پلی استایرن 1٪ 820pF استفاده کردم اما می توان از مقادیر دیگر در حدود 1nF استفاده کرد. مقدار باید همراه با برآورد ظرفیت خالی (~ 20pF) در نرم افزار وارد شود. این فرکانس پایه در حدود 16 کیلوهرتز را ارائه می دهد. خروجی 555 با PB2 ATTiny تغذیه می شود که به عنوان شمارنده سخت افزار برنامه ریزی شده است. با اندازه گیری تعداد در یک دوره حدود 1 ثانیه می توان فرکانس را تعیین کرد. این در هنگام راه اندازی برای تعیین فرکانس پایه انجام می شود. هنگامی که یک خازن تحت آزمایش به موازات خازن پایه اضافه می شود ، فرکانس کاهش می یابد و هنگامی که این اندازه گیری می شود و با فرکانس پایه مقایسه می شود ، می توان مقدار خازن افزوده را محاسبه کرد.

ویژگی خوب این روش این است که مقدار محاسبه شده فقط به دقت خازن پایه بستگی دارد. دوره اندازه گیری مهم نیست. وضوح بستگی به وضوح اندازه گیری های فرکانس دارد که بسیار زیاد است بنابراین حتی می توان خازن بسیار کوچک اضافه شده را اندازه گیری کرد. به نظر می رسد عامل محدود کننده "نویز فرکانسی" نوسان ساز 555 است که برای من معادل 0.3pF است.

از این روش می توان در محدوده مناسب استفاده کرد. برای بهبود محدوده ، من دوره اندازه گیری را با تشخیص لبه های پالس های ورودی همزمان می کنم. این بدان معناست که حتی نوسان فرکانس پایین مانند 12Hz (با خازن 1uF) با دقت اندازه گیری می شود.

برای خازن های بزرگتر مدار به گونه ای تنظیم شده است که از روش زمان بندی شارژ استفاده کند. در این حالت خازن مورد آزمایش تخلیه می شود تا اطمینان حاصل شود که از 0 شروع می شود ، سپس از طریق یک مقاومت شناخته شده از ولتاژ تغذیه شارژ می شود. از ADC در ATTiny85 برای نظارت بر ولتاژ خازن استفاده می شود و زمان 0 تا 50 درصد شارژ اندازه گیری می شود. این ممکن است برای محاسبه ظرفیت استفاده شود. از آنجا که مرجع ADC نیز ولتاژ تغذیه است ، این امر بر اندازه گیری تأثیر نمی گذارد. با این حال ، اندازه گیری مطلق زمان صرف شده بستگی به فرکانس ساعت ATTiny85 دارد و تغییرات در این امر بر نتیجه تأثیر می گذارد. ممکن است از روشی برای افزایش دقت این ساعت با استفاده از ثبت کننده تنظیم در ATTiny85 استفاده شود و این بعدا توضیح داده می شود.

برای تخلیه خازن تا 0 ولت ، از یک ماسفت n-channel همراه با یک مقاومت کم ارزش برای محدود کردن جریان تخلیه استفاده می شود. این بدان معناست که حتی خازنهای با ارزش بزرگ نیز می توانند به سرعت تخلیه شوند.

برای شارژ خازن از 2 مقدار مقاومت شارژ استفاده می شود. مقدار پایه زمان های مناسب برای شارژ خازن ها از 1uF تا حدود 50uF را ارائه می دهد. از MOSFET کانال p جهت موازی سازی در مقاومت کمتر استفاده می شود تا خازن های با ارزش بالاتر در یک فاصله معقول اندازه گیری شوند. مقادیر انتخاب شده زمان اندازه گیری را در حدود 1 ثانیه برای خازن ها تا 2200uF و به نسبت بیشتر برای مقادیر بزرگتر نشان می دهد. در انتهای پایینی مقدار ، دوره اندازه گیری باید به طور معقولی طولانی نگه داشته شود تا تعیین گذار از طریق آستانه 50٪ با دقت کافی انجام شود. میزان نمونه برداری از ADC حدود 25uSec است بنابراین حداقل دوره 22mSec دقت معقولی را ارائه می دهد.

از آنجا که ATTiny IO (6 پین) محدود دارد ، تخصیص این منبع باید با دقت انجام شود. 2 پین برای صفحه نمایش ، 1 برای ورودی تایمر ، 1 برای ADC ، 1 برای کنترل تخلیه و 1 برای کنترل میزان شارژ مورد نیاز است. من می خواستم یک دکمه را فشار دهم تا در هر نقطه امکان صفر شدن مجدد را داشته باشد. این کار با بلند کردن خط I2C SCL انجام می شود. از آنجا که سیگنالهای I2C تخلیه باز هستند ، با اجازه دادن به دکمه برای پایین کشیدن این خط ، هیچ درگیری الکتریکی وجود ندارد. صفحه نمایش با فشار دادن دکمه متوقف می شود اما این هیچ اهمیتی ندارد زیرا با آزاد شدن دکمه از سر گرفته می شود.

مرحله 2: ساخت و ساز

ساخت و ساز
ساخت و ساز
ساخت و ساز
ساخت و ساز
ساخت و ساز
ساخت و ساز

من این را به یک جعبه کوچک 55 میلی متری در 55 میلی متر چاپ سه بعدی تبدیل کردم. طراحی شده برای نگهداری 4 جزء اصلی ؛ برد ATTiny85 DigiStamp ، صفحه نمایش SSD1306 ، باتری LiOn و کمی تخته اولیه که دارای تایمر 55 و وسایل الکترونیکی کنترل شارژ است.

پیوست در

قطعات مورد نیاز

  • برد ATTiny85 DigiStamp. من از نسخه ای با اتصال microUSB استفاده کردم که برای بارگذاری سیستم عامل استفاده می شود.
  • صفحه نمایش OLED SSD1306 I2C
  • باتری LiOn با ظرفیت 300 میلی آمپر ساعت
  • نوار کوچک تخته نمونه سازی
  • تراشه تایمر CMOS 555 (TLC555)
  • n-Channel MOSFET AO3400
  • p-Channel 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

این یک طرح مبتنی بر آردوینو است. به کتابخانه هایی برای صفحه نمایش و I2C نیاز دارد که در آن یافت می شود

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

اینها برای ATTiny بهینه شده اند تا حداقل حافظه را اشغال کنند. کتابخانه I2C یک روش بایت بنگ با سرعت بالا است که امکان استفاده از هر 2 پین را می دهد. این مهم است زیرا روشهای I2C با استفاده از پورت سریال از PB2 استفاده می کنند که با استفاده از ورودی تایمر/شمارنده مورد نیاز برای اندازه گیری فرکانس 555 در تضاد است.

این نرم افزار حول یک ماشین حالت ساخته شده است که اندازه گیری را در چرخه ای از حالتها انجام می دهد. ISR از سرریز از شمارنده تایمر برای گسترش سخت افزار 8 بیتی پشتیبانی می کند. ISR دوم از ADC که در حالت پیوسته کار می کند ، پشتیبانی می کند. این سریعترین پاسخ را برای عبور مدار شارژ از آستانه می دهد.

در شروع هر چرخه اندازه گیری ، یک تابع getMeasureMode تعیین می کند که مناسب ترین روش برای هر اندازه گیری کدام است.

وقتی از روش 555 استفاده می شود ، زمان شمارش فقط زمانی شروع می شود که شمارنده تغییر کرده باشد. به همین ترتیب زمان بندی فقط پس از فاصله اندازه گیری اسمی و هنگامی که یک لبه تشخیص داده می شود متوقف می شود. این همگام سازی امکان محاسبه دقیق فرکانس را حتی برای فرکانس های پایین فراهم می کند.

هنگام شروع نرم افزار ، 7 اندازه گیری اول "چرخه های کالیبراسیون" هستند که برای تعیین فرکانس پایه 555 بدون خازن اضافه استفاده می شود. 4 چرخه آخر به طور متوسط است.

پشتیبانی از تنظیم ثبات OSCAL برای تنظیم ساعت وجود دارد. پیشنهاد می کنم ابتدا OSCCAL_VAL را در بالای طرح روی 0 تنظیم کنید. این بدان معناست که از کالیبراسیون کارخانه تا زمان تنظیم استفاده می شود.

مقدار خازن پایه 555 باید تنظیم شود مورد نیاز است. مقدار تخمینی را نیز برای ظرفیت سرگردان اضافه می کنم.

اگر از مقاومت های متفاوتی برای روش های شارژ استفاده می شود ، مقادیر CHARGE_RCLOW و CHARGE_RCHIGH در نرم افزار نیز باید تغییر کند.

برای نصب نرم افزار از روش معمول digistamp برای بارگذاری نرم افزار و اتصال پورت usb در صورت درخواست استفاده کنید. کلید پاور را در حالت خاموش بگذارید زیرا برای این کار برق توسط USB تامین می شود.

مرحله 4: عملیات و کالیبراسیون پیشرفته

عملکرد بسیار ساده است.

پس از روشن کردن دستگاه و منتظر ماندن صفر کالیبراسیون ، خازن مورد آزمایش را به یکی از دو پورت اندازه گیری وصل کنید. از پورتهای 555 برای خازنهای کم ارزش <1uF و از پورت شارژ برای خازنهای با ارزش بالاتر استفاده کنید. برای خازن های الکترولیتی ترمینال منفی را به نقطه مشترک زمین متصل کنید. در حین آزمایش ، خازن حداکثر تا 2 ولت شارژ می شود.

با نگه داشتن دکمه فشاری به مدت 1 ثانیه و رهاسازی ، می توانید پورت 555 را دوباره تنظیم کنید. برای این کار مطمئن شوید که چیزی به پورت 555 وصل نشده باشد.

کالیبراسیون پیشرفته

روش شارژ برای اندازه گیری زمان به فرکانس ساعت مطلق ATTiny85 متکی است. این ساعت از نوسان ساز داخلی RC استفاده می کند که یک ساعت اسمی 8 مگاهرتز را ارائه می دهد. اگرچه پایداری نوسان ساز برای تغییرات ولتاژ و دما بسیار مناسب است ، فرکانس آن حتی اگر کالیبره کارخانه باشد ، می تواند تا چند درصد خارج شود. این کالیبراسیون هنگام راه اندازی ، ثبت OSCCAL را تنظیم می کند. کالیبراسیون کارخانه ممکن است با بررسی فرکانس و تنظیم بهینه تر مقدار OSCCAL متناسب با یک برد خاص ATTiny85 ، بهبود یابد.

من هنوز نتوانسته ام روش خودکارتری را در سیستم عامل جا دهم ، بنابراین از روش دستی زیر استفاده می کنم. بسته به اندازه گیری های خارجی موجود ، دو نوع تغییر وجود دارد. یا یک فرکانس سنج قادر به اندازه گیری فرکانس شکل موج مثلثی در پورت 555 ، یا یک منبع موج مربعی با فرکانس شناخته شده به عنوان مثال 10 کیلوهرتز با سطوح 0V/3.3V که می تواند به پورت 555 متصل شود و شکل موج را لغو کند تا آن فرکانس را به شمارنده وارد کند. من از روش دوم استفاده کردم.

  1. متر را با برق معمولی بدون خازن متصل کنید.
  2. فرکانس متر یا مولد موج مربعی را به پورت 555 وصل کنید.
  3. با فشار دادن دکمه ، چرخه کالیبراسیون را مجدداً راه اندازی کنید.
  4. در پایان چرخه کالیبراسیون ، صفحه نمایش فرکانس تعیین شده توسط شمارنده و مقدار فعلی OSCCAL را نشان می دهد. توجه داشته باشید که استفاده مکرر از چرخه کالیبراسیون بین نشان دادن فرکانس اندازه گیری شده و عادی بدون نمایش تغییر حالت می دهد.
  5. اگر فرکانس نمایش داده شده کمتر از چیزی است که مشخص است ، به این معنی است که فرکانس ساعت بسیار زیاد است و برعکس. من دریافتم یک افزایش OSCCAL ساعت را در حدود 0.05 s تنظیم می کند
  6. مقدار جدید OSCCAL را برای بهبود ساعت محاسبه کنید.
  7. مقدار OSCCAL جدید را در بالای سیستم عامل در OSCCAL_VAL وارد کنید.
  8. سیستم عامل جدید را بازسازی و بارگذاری کنید. مراحل 1 تا 5 را تکرار کنید که باید مقدار OSCCAL جدید و اندازه گیری فرکانس جدید را نشان دهد.
  9. در صورت لزوم ، مراحل را دوباره تکرار کنید تا بهترین نتیجه حاصل شود.

توجه داشته باشید که هنگام اندازه گیری برق معمولی و نه USB ، قسمت اندازه گیری این تنظیم را انجام دهید تا هرگونه تغییر فرکانس به دلیل ولتاژ منبع به حداقل برسد.

توصیه شده: