Резистивный датчик давления и Arduino: схема и примеры

Резистивный датчик давления и Arduino: схема и примеры

Как устроен плёночный резистивный датчик давления, как подключить его к Arduino через делитель напряжения и где он пригодится.

Принцип действия

Резистивный датчик давления ведёт себя как переменный резистор: чем сильнее нажатие на чувствительную площадку, тем меньше его сопротивление. По этой величине косвенно оценивают силу нажатия или вес предмета. Датчики такого типа просты, износостойки и выпускаются во множестве вариантов, которые различаются размерами, формой, диапазоном и характером изменения сопротивления. Принцип работы у них общий. Один из самых распространённых выпускает фирма Sparkfun.

Резистивный датчик давления Sparkfun

Датчик плоский и гибкий, поэтому его легко закрепить на стене, под механизмом в квест-комнате, внутри мягкой игрушки или коврика, под одеждой. Он состоит из двух слоёв, разделённых изолирующей прокладкой. Верхний слой представляет собой плёнку со встречно напечатанными проводниками, на неё и нажимают. Нижний слой является подложкой с печатным полупроводником. С ростом давления всё большая часть проводников соприкасается с подложкой, и сопротивление падает.

Структура датчика давления по слоям

Главный недостаток заключается в невысокой точности и нелинейной зависимости сопротивления от силы. Для точных измерений такой сенсор не годится, зато хорошо определяет сам факт нажатия и его примерную степень. Разброс показаний между двумя одинаковыми экземплярами достигает около 10%.

Технические характеристики

Диапазон фиксируемого веса100 г – 10 кг
Длина61 мм
Диаметр подложки с чувствительным элементом18 мм
Толщина0,2 мм
Сопротивление без нажатияболее 1 МОм
Диапазон сопротивленийот бесконечности до 200 Ом
Износостойкостьдо 10 миллионов нажатий
Рабочая температураот -30 до +70 °С
Скорость срабатывания1–2 мс
Расстояние между контактами2,54 мм

Проверка и схема включения

Работоспособность проверяют мультиметром в режиме измерения сопротивления: при нажатии на площадку показания должны уменьшаться. Полярность значения не имеет, так как по сути это обычный резистор.

Проверка датчика давления мультиметром

К Arduino датчик подключают по схеме делителя напряжения. Между плюсом и минусом питания последовательно включают постоянный резистор R1 и датчик, а сигнал снимают со средней точки. В приведённой схеме сенсор стоит в нижнем плече и обозначен как R2. При правильно подобранном резисторе напряжение в средней точке меняется от 0 В до напряжения питания.

Схема делителя напряжения с датчиком давления

Напряжение измеряется аналоговым входом. АЦП микроконтроллеров AVR на стандартных платах Arduino имеет разрядность 10 бит, поэтому при опорном напряжении 5 В шаг измерения составляет около 4,9 мВ. Такого разрешения для задачи достаточно.

Чтение показаний

В примере с Arduino Nano средняя точка делителя подключена к аналоговому входу 7. Скетч задаёт опорное напряжение, равное напряжению питания (analogReference(DEFAULT)), раз в секунду читает АЦП через analogRead(7), пересчитывает результат в вольты умножением на 5.0 и делением на 1023.0 и выводит оба значения в терминал на скорости 9600. При усилении нажатия числа уменьшаются, при ослаблении растут. При плавном нажатии и отпускании показания проходят весь диапазон от 0 до 5 В.

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

Применение и проект «Терменвокс»

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

Наглядный пример представляет собой упрощённый терменвокс, в котором высота тона зависит от силы нажатия на датчик. Звук воспроизводит буззер без встроенного генератора на выводе 3, а светодиод на выводе 9 меняет яркость вместе с частотой. Программа читает АЦП со входа 7 и функцией map переводит диапазон 0–1023 в частоту от 3000 до 0 и в значение ШИМ от 255 до 0. Если полученная частота больше 50 (этот порог отсекает наводки), вызывается tone(3, t) и светодиод зажигается с соответствующей яркостью. В противном случае звук отключается через noTone(3), а светодиод гаснет.

← Все статьи