HandMade32.ru - сделай своими руками

Емкостной датчик уровня жидкости


Подобные датчики существуют столько же, сколько RC-генераторы. Но оказывается, “научить” измерять меняющуюся ёмкость датчика можно и Arduino – программно, внешний генератор для этого не потребуется. А сам датчик вы можете изготовить своими руками – о такой самоделке рассказывает автор Instructables под ником luismorales-navarro.
Мастер разрабатывает четыре детали датчика и выкладывает получившиеся файлы на сайт Tinkercad: внутреннюю трубку, её крышку, внешнюю трубку и её крышку. Печатает эти детали на 3D-принтере.

Емкостной датчик уровня жидкостиЕмкостной датчик уровня жидкостиЕмкостной датчик уровня жидкостиЕмкостной датчик уровня жидкостиЕмкостной датчик уровня жидкостиЕмкостной датчик уровня жидкости
Обматывает трубки алюминиевой фольгой, присоединяет к ним проводники. Здесь медь к алюминию – можно, ну, повлияет на точность, только и всего. В силовых цепях – нельзя, даже если там “всего-то десятки миллиампер”.

Емкостной датчик уровня жидкостиЕмкостной датчик уровня жидкости
Мастер собирает датчик, герметизирует его термоклеем, убеждается, что он не протекает, а жидкость нигде не контактирует с фольгой. Ведь требуется, чтобы датчик был емкостным, а не резистивным.

Емкостной датчик уровня жидкостиЕмкостной датчик уровня жидкостиЕмкостной датчик уровня жидкости
Подключает к Arduino как показано далее. Из дополнительных компонентов требуется всего один резистор. Конечно, инструкцию можно было бы озаглавить так: “Сенсация! Уровнемер из одного резистора!”, но сразу понятно, что это – “каша из топора”.

Емкостной датчик уровня жидкостиЕмкостной датчик уровня жидкостиЕмкостной датчик уровня жидкости
Работоспособность датчика мастер проверяет простейшей программой, требующей библиотеки CapacitiveSensing:

/* * CapitiveSense Library Demo Sketch
* Paul Badger 2008 * Uses a high value resistor e.g. 10M between send pin and receive pin
* Resistor effects sensitivity, experiment with values, 50K – 50M. Larger resistor values yield larger sensor values.
* Receive pin is the sensor pin – try different amounts of foil/metal on this pin
*/
CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2);
// 10M resistor between pins 4 & 2, pin 2 is sensor pin, add a wire and or foil if desired void setup() { cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);
// turn off autocalibrate on channel 1 – just as an example Serial.begin(9600); } void loop() { long start = millis(); long total1 = cs_4_2.capacitiveSensor(30); Serial.print(millis() – start);
// check on performance in milliseconds Serial.print("t");
// tab character for debug windown spacing Serial.print(total1);
// print sensor output 1 Serial.print("t"); delay(10);
// arbitrary delay to limit data to serial port }

Не удивляйтесь отсутствию переводов строк – так сделано в оригинале. Данные о результатах измерения поступают в монитор последовательного порта. В дальнейшем предлагаемый фрагмент можно интегрировать в более сложные скетчи, в которых реализованы сигнализация о слишком большом или малом уровне жидкости, управление исполнительными механизмами.

administrator

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.