将LDR插入Raspberry Pi的GPIO引脚


12

我想将LDR连接到Raspberry Pi的GPIO引脚,我知道Raspberry Pi没有模数转换器,所以我要做的是在GPIO上发出HIGH信号(3.3v)当LDR的电阻较低时(约200欧姆以下),当LDR的电阻较高时(例如2k以上),信号为LOW。根据文档,我可以从Raspberry Pi的GPIO引脚安全提取的最大电流为50mA,如何计算所需的电阻器,是否还需要添加上拉/下拉电阻器?对于如何在不烧毁处理器的情况下以安全的方式执行此操作,我没有明确的想法。

我想我还必须在电路上插入一个电阻,以确保当LDR处于非常低的电阻状态时,它始终具有电阻。

更新:它工作正常,我建立了电路,并在这篇文章中显示,谢谢您的帮助。


1
“ GPIO输入迟滞(施密特触发器)可以打开或关闭,输出摆率可以快速或受限制,并且源和灌电流可配置为2 mA至16 mA。” 50mA是从3V3引脚输出的最大电流。
伊格纳西奥·巴斯克斯

Answers:


13

最好的方法是使用晶体管作为比较器,以使过渡变尖锐。
这是一个示例电路:

LDR

它使用LDR作为分压器的上部。当LDR电阻下降时,晶体管基极的电压升高并导通。该晶体管可以是任何通用的NPN。
我们可以根据希望开启的位置计算电阻值。

假设LDR电阻从200Ω(暗)到10kΩ(暗)。当LDR为5kΩ时,我们希望晶体管导通。电源(V +)为3.3V。典型的NPN晶体管在0.7V左右导通,因此,如果这样做:

基本电阻器需要5,000 *(0.7 / 3.3)=1060Ω。我们可以选择一个1kΩ的电阻,因为它足够接近。调整值以适合您的开启点。

这是电路的仿真:

LDR SIM卡

水平轴是LDR电阻,蓝线是Vout点的电压(您将其连接到Rpi输入引脚-必须设置为输入。可以在Vout和Rpi引脚之间添加一个1kΩ电阻器以对其进行保护以防意外将其设置为输出)我们可以看到晶体管按预期在5kΩ左右开通(由于晶体管的基极-发射极电压会随温度等变化而变化,但并不精确,但可以满足您的目的)

请注意,晶体管输出在明亮时为低电平,在黑暗中为高电平,您可以交换LDR和电阻器,如果需要,可以使用5,000 *(3.3 / 0.7)=23.5kΩ作为电阻器,反之亦然。实际上是一种更好的配置,因为它消耗的电流更少(由于更高的电阻),因此如果重要的话,请使用此版本。


同意 我本来建议一个运算放大器的比较器,但后来认为它过大了。我没有想到使用晶体管作为开关的简单解决方案。
伊格纳西奥·巴斯克斯-阿布拉姆斯

2
这正是我所需要的,我会做的,非常感谢您的回答,我们可以构造此Sigmoid来控制逻辑电平,这真是太了不起了,我永远都不会想到这样的东西,感谢您的宝贵时间写这个。
塔兰图拉毒蛛

@Tarantula-没问题,很高兴为您提供帮助。
奥利·格拉泽
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.