首先,暂时不要使用100电阻。按钮的工作不是必需的,它只是一种保护,以防万一您编程失误。
- 如果按下按钮,P2将直接连接到+5 V,因此将被视为高电平,为“ 1”。
- 如果松开按钮,则+5 V不再计数,端口和地面之间只有10kΩ。
当用作输入时,微控制器的I / O引脚为高阻抗,这意味着仅流过很小的泄漏电流,通常小于1 µA,根据数据手册,这将是最大值。好,让我们说这是1 µA。然后,根据欧姆定律,这将导致1μA的电压降为10kΩ= 10毫伏跨电阻器。因此,输入将为0.01V。这是低电平或“ 0”。典型的5 V微控制器将看到任何低于1.5 V的低电平。 ×
现在是100电阻。如果您不小心使该引脚输出并将其设置为低电平,则按下按钮将导致短路:微控制器在该引脚上设置0 V,而在同一引脚上设置开关+5V。微控制器不喜欢这样,可能会损坏IC。在这种情况下,100Ω电阻应将电流限制为50 mA。(这仍然太多了,一个1kΩ的电阻会更好。)
由于不会有电流流入输入引脚(除了低泄漏),电阻两端几乎不会有任何电压降。
10kΩ是上拉或下拉的典型值。较低的值将为您提供更低的电压降,但是10 mV或1 mV的差别不大。但是还有其他事情:如果按下按钮,电阻两端的电压为5 V,那么将流过5 V / 10kΩ= 500 µA的电流。这足够低,不会引起任何问题,而且您也不会长时间按下按钮。但是您可以将开关替换为一个开关,该开关可能会关闭很长时间。然后,如果您选择了一个1kΩ的下拉电阻,则只要开关闭合即可通过电阻产生5 mA的电流,这有点浪费。10kΩ是一个好值。
请注意,您可以将其倒置以获得上拉电阻,并在按下按钮时切换到接地。
这将颠倒您的逻辑:按下按钮将为您提供“ 0”而不是“ 1”,但工作原理是相同的:按下按钮将使输入为0 V,如果松开按钮,则电阻器将连接输入到+5 V电平(压降可忽略不计)。
这是通常的方式,微控制器制造商也考虑到了这一点:大多数微控制器都具有内部上拉电阻,您可以在软件中激活或停用它。如果使用内部上拉电阻,则只需将按钮接地即可。(某些微控制器也具有可配置的下拉菜单,但这种情况不那么常见。)