数字I / O引脚接地


9

我希望I / O引脚在电路中返回电流,类似于接地功能。

其中哪一项可以满足我的要求?

pinMode(pinnumber, OUTPUT)
digitalWrite(pinnumber, LOW)

要么

pinMode(pinnumber, input)

您的第二种选择pinMode(pinnumber,input)是将引脚置于引脚的“第三状态”,也称为“高阻抗”。基本上就像引脚未连接到电路一样,就像欧姆表一样。
zmo 2014年

“ digitWrite”?您不是说“ digitalWrite ”吗?
Peter Mortensen 2014年

Answers:


9

您的第一个片段是正确的解决方案。

pinMode(pinnumber,OUTPUT)
digitalWrite(pinnumber,LOW)

但是请注意,每个引脚最多只能吸收6mA或9mA的电流(根据文档的 “输入和输出”部分,我从没有尝试过更多)。如果需要更多电流,请使用晶体管(是一个很好的例子,只需将输出引脚反相至HIGH)。

当引脚配置为输入时,它应该是高阻抗,而不是您想要的阻抗。


谢谢,电流也来自Arduino的IO引脚。因此,我认为40mA限制不会成为问题。
拉贾特2014年

@rajat在做某种LED矩阵吗?请注意,假设您在两个引脚之间插入(例如)大电流LED(至少没有适当的限流电阻),则仍然可能损坏芯片。甚至没有提到产生短路的情况。
FredP 2014年

它是一个压力传感器矩阵,具有10个16:1多路复用器。电流仅来自Arduino USB电缆,没有外部电源。因此,我认为高电流不会成为问题。您能否阐明可能引起短路的原因?
rajat 2014年

@rajat之类的东西会在引脚“ 1”和“ 2”连接时造成短路:pinMode(pinnumber1,OUTPUT); pinMode(pinnumber2,OUTPUT); digitalWrite(pinnumber1,LOW); digitalWrite(pinnumber2,HIGH); PS:请勿在家尝试,请勿伤害无辜的arduini,请勿起诉我,等等……
FredP

2
我对6 / 9mA的数字感到惊讶。事实证明,您对于Arduino Due是正确的,但对于基于AVR的Arduino(Uno等),我怀疑仍然是绝大多数,该数字更像是40mA。
microtherion 2014年
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.