Подобни сензори съществуват толкова, колкото RC генераторите. Но се оказва, че можете да "научите" как да измервате променящия се капацитет на датчик Arduino - софтуер, външен генератор не се изисква за това. И можете да направите самия сензор направете го сами - за такива домашно приготвени продукти разказва авторът на Instructables под псевдонима luismorales-navarro.
Съветникът разработва четири детайли за сензора и качва получените файлове на уебсайта Tinkercad: вътрешна тръба, нейната корица, външна тръба и нейната корица, Отпечатва тези части на 3D принтер.
Увива тръби с алуминиево фолио, прикрепя проводници към тях. Ето, мед до алуминий - можете, добре, да повлияете на точността, това е всичко. В силовите вериги това не е възможно, дори ако има „само десетки милиами”.
Майсторът събира сензора, затваря го с горещо разтопено лепило, уверява се, че той не изтича и течността не влиза в контакт с фолиото никъде. В крайна сметка се изисква сензорът да е капацитивен, а не резистивен.
Свързва се с Arduino, както е показано по-долу. От допълнителните компоненти е необходим само един резистор. Разбира се, инструкцията може да бъде озаглавена: "Сензация! Ниво на измерване от един резистор!", Но веднага става ясно, че това е "каша от брадва".
Главният проверява оперативността на сензора с най-простата програма, която изисква библиотеката CapacitiveSensing:
/ * * Демонстрационна скица на библиотеката CapitiveSense
* Пол Badger 2008 * Използва резистор с висока стойност, напр. 10M между изпращам пин и получавам щифт
* Чувствителност към резисторните ефекти, експериментирайте със стойности, 50K - 50M. По-големите стойности на резистора дават по-големи стойности на сензора.
* Приемният щифт е щифтът на сензора - опитайте различни количества фолио / метал на този щифт
* /
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2);
// 10M резистор между щифтове 4 и 2, щифт 2 е щифт на сензора, добавете проводник и / или фолио, ако желаете настройка на празнотата () {cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF);
// изключете автоматично калибриране по канал 1 - точно като пример Serial.begin (9600); } void loop () {long start = millis (); long total1 = cs_4_2.capacitiveSensor (30); Serial.print (millis () - старт);
// проверете изпълнението в милисекунди Serial.print ("\ t");
// символ на раздела за отстраняване на грешки в разстоянието между пробега Serial.print (total1);
// изход на сензора за печат 1 Serial.print ("\ t"); забавяне (10);
// произволно забавяне за ограничаване на данните до сериен порт}
Не се изненадвайте от липсата на линейни емисии - това направи оригиналът. Данните от измерванията се изпращат до монитора на серийния порт. В бъдеще предлаганият фрагмент може да бъде интегриран в по-сложни скици, в които се осъществява алармата за твърде високо или ниско ниво на течност, контрол на изпълнителните механизми.