Датчики давления и света

Урок про датчики давления (почти линейные) и датчики света (отклик в широком диапазоне яркостей).

Пьезорезистивный датчик давления меняет сопротивление мембраны под нагрузкой; фотодатчик превращает поток света в ток или изменение сопротивления.

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

Датчик давления

Пьезорезистивный датчик обычно линеен:

$$ p = \frac{V - V_0}{S} $$

где $V_0$ — выход при нулевом давлении, $S$ — чувствительность.

# 0 кПа -> 0.5 В, 100 кПа -> 4.5 В
V0 = 0.5
S = (4.5 - 0.5) / 100   # В/кПа

def pressure(v):
    return (v - V0) / S

for v in (0.5, 2.5, 4.5):
    print(v, "В ->", round(pressure(v), 1), "кПа")

Вывод:

0.5 В -> 0.0 кПа
2.5 В -> 50.0 кПа
4.5 В -> 100.0 кПа

Датчики света

Освещённость измеряют в люксах, и она охватывает огромный диапазон: от $0{,}1$ лк ночью до $100\,000$ лк на солнце. Поэтому отклик часто описывают в логарифмической шкале — в децибелах или просто через логарифм отношения:

$$ L_{dB} = 10\,\log_{10}\!\frac{E}{E_0} $$

Фоторезистор (LDR) меняет сопротивление степенным образом, фотодиод даёт ток, линейный по потоку; цифровые датчики освещённости отдают сразу люксы по шине I2C.

import math

E0 = 1.0   # опорная освещённость, лк
for E in (10, 1000, 100000):
    L = 10 * math.log10(E / E0)
    print(E, "лк ->", round(L, 1), "дБ")

Вывод:

10 лк -> 10.0 дБ
1000 лк -> 30.0 дБ
100000 лк -> 50.0 дБ

Как работает под капотом

Датчик давления — это мембрана с тензорезисторами в мостовой схеме: давление гнёт мембрану, сопротивления меняются, мост даёт разностное напряжение. Мост хорош тем, что частично компенсирует температурный дрейф. У света проблема в динамическом диапазоне: чтобы видеть и сумерки, и солнце, применяют логарифмический отклик или автоматическую смену усиления (как ISO в камере). Поэтому «линейная калибровка» для света часто заменяется логарифмической или табличной.

Частые ошибки

  • Игнорировать смещение $V_0$ датчика давления — нуль уедет на десятки кПа.
  • Применять линейную шкалу к свету — потеряете либо тени, либо света.
  • Путать абсолютное и относительное давление: датчик может мерить относительно атмосферы.

Итог

  • Давление обычно линейно: $p = (V - V_0)/S$.
  • Свет охватывает много порядков, поэтому удобна логарифмическая шкала.
  • Выбор датчика света диктуется нужным динамическим диапазоном.
Проверьте себя
1. Почему освещённость часто измеряют в логарифмической шкале?
AТак требует закон
BОна меняется на много порядков, и восприятие тоже логарифмическое
CЛогарифм убирает шум
DЧтобы датчик был дешевле
2. Что произойдёт, если при пересчёте давления забыть про смещение V₀?
AНичего
BПоявится систематический сдвиг нуля
CУдвоится чувствительность
DДатчик станет линейным