
Arduino 微控制器自带内部上拉电阻。如果你需要使用该内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉(INPUT_PULLUP)模式。
示例中,我们将通过pinMode()语句将Arduino引脚2配置为输入模式。在此示例中,当开关闭合后,引脚5将获得低电平开关信号,引脚13旁的LED 将被点亮。反之,该LED为熄灭状态。

- /*
- Input Pullup Serial
-
- 本示例展示如何使用pinMode(INPUT_PULLUP)。通过本程序,Arduino将读取引脚5
- 的数字输入并将结果显示在串口监视器中。
-
- 电路:
- * 引脚5连接轻触开关,开关另一端接地
- * 引脚13上安装有开发板内置LED
-
- 与使用pinMode(INPUT)不同,我们在使用pinMode(INPUT_PULLUP)时不需要外接上拉或下拉电阻。
- 开发板内置一个20K欧姆电阻,该电阻将引脚上拉到5V。开关在打开时,引脚读取到高电平。开关闭合后,引脚读取到低电平。
-
-
-
- */
-
- void setup() {
- //开始串口通讯
- Serial.begin(9600);
- //将引脚5设置为输入上拉模式
- pinMode(5, INPUT_PULLUP);
- pinMode(13, OUTPUT);
- }
-
- void loop() {
- //将开关状态数值读取到变量中
- int sensorVal = digitalRead(5);
- //输出开关状态数值
- Serial.println(LOW);
-
- //请留意在上拉模式下,按钮的逻辑状态是反的。
- //即:开关断开时引脚读取到高电平。开关被按下后引脚读取到低电平。
- //按钮被按下后,引脚13连接的LED将被点亮。按钮没有按下时,LED熄灭。
-
- //如果按钮没有按下,熄灭LED。否则,点亮LED
-
- if (sensorVal == HIGH) { //按钮没有按下
- digitalWrite(13, LOW); //熄灭LED
- } else { //否则
- digitalWrite(13, HIGH); //点亮LED
- }
- }
按下L标识LED灯亮。 松开熄灭。