Тензодатчик

Материал из me-robotics wiki

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

Классификация

Балочный тензодатчик

По форме:

  • консольный (балочный) - используется в системах дозирования, платформенных весах средней грузоподъемности, бункерах, напольных системах взвешивания, включая электронные весы для взвешивания животных.
  • мембранный (типа "шайба") - массово применяется при производстве вагонных, бункерных, автомобильных весовых системах. Также мембранные датчики используются в тех весодозирующих системах, где обыкновенные датчики не могут быть внедрены в конструкцию из-за своих габаритных размеров.
  • S - образный - в процессе взвешивания дозаторов, бункеров и прочих конвейерных весовых систем нашли свое применение S-образные тензометрические датчики. Следует отметить, что такие датчики превосходно подойдут для разрывных машин и испытательных стендов.
  • колонный (типа "бочка") - применяется для производства и модернизации бункерных, автомобильных, вагонных весов с большой грузоподъёмностью, а также в контрольно-измерительном оборудовании, испытательных стендах.
S-образный тензодатчик


По величине измерения:

  • силы растяжения и сжатия
  • давления
  • ускорения
  • перемещения
  • крутящего момента

Принцип работы и конструкция

Мембранный тензодатчик
Наглядная деформация тензорезистора

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


Классификация тензорезисторов по материалу измерительного элемента:

  • фольговый - используется как наклеиваемый тензорезистор. Это очень удобная система, которая представляет собой фольговую ленту, толщиной до 12 мкм. Часть пленки имеет плотную форму, а часть – решетчатую. Данная модель отличается от остальных тем, что можно припаивать дополнительные контакты, к тому же они нормально переносят низкие температуры.
  • плёночный - является аналогом фольгового, за исключением материала, из которого изготовлен. Производители изготавливают такие модели из тензочувствительных пленок с особым напылением, которое увеличивает чувствительность системы. Их удобно использовать при необходимости измерить динамические нагрузки. Производство пленок выполняется из таких материалов, как титан, висмут, германий.
  • проволочный - способен измерить нагрузку от нескольких сотых грамма до целых тонн. Их называют одноточечные, т. к в отличие от пленочных и фольговых резисторов, они измеряют в одной точке, а не площади. Такая конструкция позволяет использовать проволочные тензорезисторы для измерения деформации сжатия и растяжения.

В качестве подложки обычно используют ткань, бумагу, полимерную плёнку, слюду и др.

Схема подключения

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

Обычно тензорезистор подключают в одно или два плеча моста Уинстона. При отсутствии физического взаимодействия UBC = 0 (R1 / R2 = Rx / R3). При деформации тензорезистора изменяется сопротивление Rx, что вызывает снижение потенциала точки соединения резисторов Rx и R3 и изменение полезного сигнала - UBC.

Для тензодатчика обязательно подключение АЦП.

Схема подключения тензодатчика на примере Arduino UNO и АЦП с микросхемой HX711
#include "HX711.h"                        // библиотека для работы с АЦП

#define DT  A0                            // Указываем номер вывода данных DT
#define SCK A1                            // Указываем номер вывода синхронизации SCK

HX711 scale;                              // создаём объект scale

float calibration_factor = -14.15;        // калибровочный коэффициент (необходимо сначала определить)
float units;                              // переменная для измерений в граммах
float ounces;                             // в унциях

void setup() {
  Serial.begin(9600);                     // работу порта на 9600 бод
  scale.begin(DT, SCK);                   // инициируем работу с датчиком
  scale.set_scale();                      // измерение без калибровочного коэффициента
  scale.tare();                           // сбрасываем значения веса на датчике в 0
  scale.set_scale(calibration_factor);    // устанавливаем калибровочный коэффициент
}

void loop() {
  Serial.print("Reading: ");              // текст в монитор порта
  for (int i = 0; i < 10; i ++) {         // считаем значения датчика 10 раз
    units = + scale.get_units(), 10;      // суммируем показания 10 замеров
  }
  units = units / 10;                     // усредняем показания, разделив сумму значений на 10
  ounces = units * 0.035274;              // переводим вес из унций в граммы
  Serial.print(ounces);                   // выводим в монитор порта вес в граммах
  Serial.println(" grams");               // выводим текст в монитор последовательного порта
}