Raspberry Pi - Как измерить 2 значения резистора с помощью GPIO

Можно ли измерить 3 конкретных значения резистора с помощью GPIO/без использования полной настройки АЦП?

У меня есть датчик тревоги, который я хочу подключить к своему GPIO. Этот датчик имеет 3 конкретных значения резисторов, в зависимости от его состояния:

  • 1) Обычный - 4к7
  • 2) Будильник - 9к3
  • 3) Тампер - бесконечный.

Из-за длинных линий я бы предпочел питание 12 В с одной стороны.

Я хотел бы иметь возможность обнаруживать эти состояния с помощью двух обычных входных контактов GPIO.

Это вообще возможно? Какая схема нужна для этого?

Или единственным решением является использование (внешних) АЦП?

Я думаю о дайвере напряжения с резисторами и диодом 1N4148, чтобы обрезать его до 3v3. Но пока мои результаты безрезультатны.

Спасибо.


person Hasse    schedule 29.03.2020    source источник
comment
Обычно ADC решает эту проблему. GPIO вообще не имеет возможности проводить такие измерения. Вопрос к электротехническому отделу SE.   -  person 0andriy    schedule 30.03.2020


Ответы (1)


Проблема здесь в том, что у вас есть три уровня для измерения. Если бы у нас было два, мы могли бы использовать простую настройку резисторного делителя, чтобы, скажем, 4k7 и 9k3 выходы датчика были равны логическому 0 (‹=0,8 В) или логической 1 (>=1,3 В) на одном выводе GPIO. Мы могли бы сделать это на двух выводах GPIO, если бы у нас было два «независимых образца» выходного сигнала датчика, а не один.

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

ADC — это самый простой способ, если вы хотите оставаться в области программного обеспечения. Другие устройства SBC, например. ESP8266 со встроенными функциями АЦП и встроенным Wi-Fi https://esp8266-projects.org/2015/03/internal-adc-esp8266/ или вы можете подключить дополнительный ADC к Rpi, например, https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters

Удачи

person mhaselup    schedule 30.03.2020