Подключение LDR к выводам GPIO Raspberry Pi

12

Я хочу подключить LDR к выводам GPIO моего Raspberry Pi, я знаю, что Raspberry Pi не имеет аналого-цифрового преобразователя, поэтому я хочу подать сигнал HIGH (3,3 В) на GPIO когда на LDR имеется низкое сопротивление (что-то ниже 200 Ом) и сигнал LOW, когда сопротивление на LDR высокое (например, выше 2 кОм). Максимальный ток, который я могу безопасно извлечь из выводов GPIO Raspberry Pi, согласно документации, составляет 50 мА. Как рассчитать необходимый резистор, мне тоже понадобится добавить резистор повышающего / понижающего напряжения? У меня нет четкого представления о том, как сделать это безопасным способом, не сжигая мой процессор.

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

Обновление : все работало нормально, я построил схему, и это показано в этом посте , спасибо за помощь.

тарантул
источник
1
«Входной гистерезис GPIO (триггер Шмитта) может быть включен или выключен, скорость нарастания выходного сигнала может быть быстрой или ограниченной, а ток источника и стока настраивается от 2 мА до 16 мА». 50 мА - максимальное напряжение от вывода 3V3.
Игнасио Васкес-Абрамс

Ответы:

13

Лучший способ сделать это - использовать транзистор в качестве компаратора, чтобы сделать переход резким.
Вот пример схемы:

LDR

Он использует LDR в качестве верхней части делителя напряжения. Когда сопротивление LDR падает, напряжение на базе транзистора возрастает и включает его. Транзистором может быть любой NPN общего назначения.
Мы можем рассчитать значение резистора, исходя из того, где мы хотим, чтобы произошло включение.

Допустим, сопротивление LDR увеличивается от 200 Ом (темный) до 10 кОм (темный). Мы хотим, чтобы транзистор включался, когда LDR находится на 5 кОм. Питание (V +) составляет 3,3 В. Типичный NPN-транзистор включается при напряжении около 0,7 В, так что если мы сделаем:

5000 * (0,7 / 3,3) = 1060 Ом, необходимых для базового резистора. Мы можем выбрать резистор 1 кОм, так как он достаточно близок. Настройте свои значения в соответствии с вашей точкой включения.

Вот симуляция схемы:

LDR sim

Горизонтальная ось - это сопротивление LDR, а синяя линия - это напряжение в точке Vout (Вы подключаете это к входному контакту Rpi - необходимо установить на вход. Вы можете добавить резистор 1 кОм между Vout и контактом Rpi, чтобы защитить его. в случае случайной установки его на выход) Мы можем видеть, что транзистор включается примерно на 5 кОм, как и предсказывалось (не будет точным, так как напряжение базы-эмиттера транзистора будет меняться в зависимости от температуры и т. д., но достаточно близко для ваших целей)

Обратите внимание, что выходной сигнал транзистора низкий, когда он светлый, и высокий, когда темно, вы можете поменять местами LDR и резистор и использовать 5000 * (3,3 / 0,7) = 23,5 кОм для резистора, если вы хотите его наоборот - это фактически лучшая конфигурация, поскольку она потребляет меньше тока (из-за более высоких сопротивлений), поэтому, если это важно, используйте эту версию.

Оли Глейзер
источник
Согласовано. Я собирался предложить компаратор ОУ, но потом подумал, что это излишне. Простое решение использовать транзистор в качестве переключателя мне не пришло в голову.
Игнасио Васкес-Абрамс
2
Это именно то, что мне нужно, я сделаю это, большое спасибо за ответ, просто удивительно, что мы можем сконструировать этот сигмоид для контроля логических уровней, я бы никогда не подумал что-то подобное, спасибо, что потратили ваше время написать это.
Тарантул
@Tarantula - нет проблем, рад помочь.
Оли Глейзер