Мазмуну:

ATTiny85 Capacitor Meter: 4 кадам
ATTiny85 Capacitor Meter: 4 кадам

Video: ATTiny85 Capacitor Meter: 4 кадам

Video: ATTiny85 Capacitor Meter: 4 кадам
Video: Magnetic effects lecture22 2024, Июль
Anonim
ATTiny85 Capacitor Meter
ATTiny85 Capacitor Meter
ATTiny85 Capacitor Meter
ATTiny85 Capacitor Meter

Бул көрсөтмө төмөнкү өзгөчөлүктөрү бар 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ке барабар.

Метод татыктуу диапазондо колдонулушу мүмкүн. Диапазонду жакшыртуу үчүн, келүүчү импульстун четтерин аныктоо үчүн өлчөө мезгилин синхрондоштурам. Бул 12 Гц сыяктуу төмөнкү жыштыктагы термелүүлөр (1uF конденсатору менен) так өлчөнөт дегенди билдирет.

Чоңураак конденсаторлор үчүн схема зарядды эсептөө ыкмасын колдонуу үчүн уюштурулган. Мында текшерилүүчү конденсатор разряд болуп, анын 0дөн башталышын камсыз кылат, андан кийин камсыздоо чыңалуусунан белгилүү каршылык аркылуу заряддалат. ATTiny85теги ADC конденсатордун чыңалуусун көзөмөлдөө үчүн колдонулат жана заряддын 0% дан 50% га чейинки убактысы өлчөнөт. Бул сыйымдуулукту эсептөө үчүн колдонулушу мүмкүн. ADCге шилтеме берүүчү чыңалуу болгондуктан, бул өлчөөгө таасир этпейт. Бирок, алынган убакыттын абсолюттук өлчөөсү ATTiny85 саат жыштыгынан көз каранды жана мунун вариациялары натыйжага таасир этет. ATTiny85теги тюнинг реестрин колдонуу менен бул сааттын тактыгын жакшыртуу үчүн жол -жобо колдонулушу мүмкүн жана бул кийинчерээк сүрөттөлөт.

Конденсаторду 0Вга чыгаруу үчүн n-каналдуу MOSFET разрядынын агымын чектөө үчүн төмөн маанидеги резистор менен бирге колдонулат. Бул чоң маанидеги конденсаторлорду да бат эле чыгарууга болот дегенди билдирет.

Конденсаторду кубаттоо үчүн кубаттоочу резистордун 2 мааниси колдонулат. Базалык маани конденсаторлор үчүн болжол менен 1FFтан 50UFке чейин заряддоо убактысын берет. А p-канал MOSFET жогорку маанидеги конденсаторлорду акылга сыярлык аралыкта өлчөөгө мүмкүндүк берүү үчүн төмөнкү резисторго параллелдүү колдонулат. Тандалган баалуулуктар 2200uFке чейинки конденсаторлор үчүн болжол менен 1 секунд өлчөө убактысын берет жана чоңураак маанилер үчүн пропорционалдуу түрдө узагыраак. Баанын төмөнкү аягында өлчөө мезгили жетишерлик тактык менен 50% босого аркылуу өтүүнү аныктоого мүмкүндүк берүү үчүн акылга сыярлык узак кармалышы керек. ADCтин тандоо ылдамдыгы 25uSec жөнүндө, андыктан 22mSec минималдуу мезгили акылга сыярлык тактыкты берет.

ATTiny IO (6 пин) чектелгендиктен, бул ресурсту бөлүштүрүү кылдаттык менен жүргүзүлүшү керек. Дисплей үчүн 2 пин керек, таймерди киргизүү үчүн 1, ADC үчүн 1, разрядды көзөмөлдөө үчүн 1 жана заряддын ылдамдыгын көзөмөлдөө үчүн 1. Мен каалаган убакта кайра нөлдөөгө уруксат берүү үчүн баскычты башкарууну кааладым. Бул I2C SCL линиясын саламдашуу менен жасалат. I2C сигналдары ачык дренаж болгондуктан, бул линияны төмөн түшүрүү үчүн электр чыр -чатагы болбойт. Дисплей баскыч басылганда иштебей калат, бирок бул эч кандай натыйжа бербейт, анткени ал баскыч бошотулганда кайра уланат.

2 -кадам: Курулуш

Курулуш
Курулуш
Курулуш
Курулуш
Курулуш
Курулуш

Мен муну кичинекей 55мм х 55мм өлчөмүндөгү 3D басып чыгарылган box.designed 4 негизги компоненттерди кармоо үчүн жасадым; ATTiny85 DigiStamp тактасы, SSD1306 дисплейи, LiOn батарейкасы жана 55 таймерди жана зарядды башкаруу электроникасын кармаган кичине прототип тактасы.

Https://www.thingiverse.com/thing:4638901 дарегиндеги тиркеме

Тетиктер керек

  • ATTiny85 DigiStamp тактасы. Мен микрофонду жүктөө үчүн колдонулган microUSB туташтыргычы бар версияны колдондум.
  • SSD1306 I2C OLED дисплейи
  • 300 мАч LiOn батарейкасы
  • Прототип тактасынын кичинекей тилкеси
  • CMOS 555 таймер чипи (TLC555)
  • n-Channel MOSFET AO3400
  • p-Channel MOSFET AO3401
  • Резисторлор 4R7, 470R, 22K, 2x33K
  • Конденсаторлор 4u7, 220u
  • Precision Capacitor 820pF 1%
  • Миниатюралык слайд которгуч
  • Заряд портуна жана өлчөө портторуна 2 х 3 пин баштары
  • Баскыч
  • Корпус
  • Зымды туташтыруу

Керектүү шаймандар

  • Жакшы чекит
  • Пинцет

Алгач прототип тактасындагы 555 таймер схемасын жана заряддоо компоненттерин түзүңүз. Тышкы байланыштар үчүн учуучу учтарды кошуңуз. Слайд которгучун жана кубаттоо чекитин жана өлчөө портун корпуска орнотуңуз. Батарейканы тиркеп, негизги кубаттоо түйүнүн заряддоо түйүнүнө жылдырыңыз. Баскычты басуу үчүн жерди туташтырыңыз. ATTiny85ти ордуна чаптап, туташтырууну аягына чыгарыңыз.

Сиз ATTiny тактасына электр энергиясын үнөмдөөчү өзгөртүүлөрдү киргизе аласыз, ал токту бир аз азайтат жана батареянын иштөө мөөнөтүн узартат.

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

Бул өтө маанилүү эмес, анткени эсептегичти колдонбогондо өчүрүү үчүн кубат которгуч бар.

3 -кадам: Программалык камсыздоо

Бул Capacitor Meter үчүн программалык камсыздоону тапса болот

github.com/roberttidey/CapacitorMeter

Бул Arduino негизделген эскиз. Бул үчүн дисплей жана I2C үчүн китепканалар керек

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

Булар минималдуу эс тутумду ээлөө үчүн ATTiny үчүн оптималдаштырылган. I2C китепканасы - бул ар кандай 2 казыкты колдонууга мүмкүндүк берүүчү жогорку ылдамдыктагы бит жардыруу ыкмасы. Бул I2C методдору 555 жыштыгын өлчөө үчүн керектүү таймерди/эсептегичти колдонуу менен карама -каршы келген PB2 сериялык портун колдонууда колдонулат.

Программалык камсыздоо штаттардын цикли аркылуу өлчөөнү алуучу мамлекеттик машинанын айланасында түзүлгөн. ISR 8 биттик жабдууну кеңейтүү үчүн таймердин эсептегичинен ашып кетүүнү колдойт. Экинчи ISR үзгүлтүксүз режимде иштеген ADCди колдойт. Бул босогону аттап жаткан заряддоо схемасына эң тез жооп берет.

Ар бир өлчөө циклинин башталышында getMeasureMode функциясы ар бир өлчөө үчүн эң ылайыктуу ыкманы аныктайт.

555 ыкмасы колдонулганда, эсептөө убактысы эсептегич өзгөргөндө гана башталат. Ошо сыяктуу эле, убакыт номиналдык өлчөө интервалынан кийин жана чек аныкталганда гана токтотулат. Бул синхрондоштуруу төмөнкү жыштыктар үчүн да жыштыкты так эсептөөгө мүмкүндүк берет.

Программалык камсыздоо башталганда, биринчи 7 өлчөө "калибрлөө циклдери" болуп саналат жана 555тин кошумча жыштыгын аныктоо үчүн колдонулат. Акыркы 4 цикл орточо.

Саатты жөндөө үчүн OSCAL регистрин тууралоо үчүн колдоо бар. Мен эскиздин башында OSCCAL_VALди 0го коюуну сунуштайм. Бул фабрика калибрлөө тюнинг аткарылганга чейин колдонулат дегенди билдирет.

555 базалык конденсатордун мааниси жөнгө салынышы керек. Мен ошондой эле адашкан сыйымдуулук үчүн болжолдуу сумманы кошом.

Эгерде заряддоо ыкмалары үчүн ар кандай резисторлор колдонулса, анда программалык камсыздоонун CHARGE_RCLOW жана CHARGE_RCHIGH маанилерин да өзгөртүү керек болот.

Программалык камсыздоону орнотуу үчүн, программаны жүктөөнүн жана usb портуна туташуунун кадимки digistamp ыкмасын колдонуңуз. Кубат которгучту өчүк абалында калтырыңыз, анткени бул иш үчүн USB тарабынан кубат берилет.

4 -кадам: Иштөө жана өркүндөтүлгөн калибрлөө

Операция абдан жөнөкөй.

Аппаратты күйгүзүп, нөлдүн калибрлөөсүнүн бүтүшүн күткөндөн кийин, текшерилген конденсаторду эки өлчөө портунун бирине туташтырыңыз. 555 портту төмөн баалуулуктагы конденсаторлор <1uF үчүн жана жогорку конденсаторлор үчүн заряд портун колдонуңуз. Электролиттик конденсаторлор үчүн терс терминалды жалпы жерге туташтырыңыз. Сыноо учурунда конденсатор болжол менен 2В чейин заряддалат.

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 маанисин OSCCAL_VALга киргизиңиз.
  8. Жаңы камтылган программаны кайра түзүңүз жана жүктөңүз. Жаңы OSCCAL маанисин жана жаңы жыштык өлчөөнү көрсөтүшү керек болгон 1-5 кадамдарды кайталаңыз.
  9. Керек болсо, эң жакшы натыйжага жеткенге чейин кадамдарды кайталаңыз.

Эскертүү, бул тюнингдин өлчөө бөлүгүн USB эмес, кадимки кубатта иштеп жатканда, чыңалуу чыңалуусуна байланыштуу кандайдыр бир жыштыкты азайтуу үчүн жасоо маанилүү.

Сунушталууда: