一,首先三种模式都需要由pinMode()函数来设置。
(1)设置引脚 为输出(OUTPUT)模式,此时引脚为低阻抗状态,可以向其他电路原件提供电流(通常为40mA以内)
(2)设置引脚为输入(INPUT)模式,,此时引脚为高阻抗状态,此时该引脚可用于读取信号。
注:观察此时读入的信号与digitalRead()的异同
(3)设置引脚为输入上拉(INPUT_PULLUP)模式
首先Arduino内部自带上拉电阻。当我们需要使用该内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉(INPUT_PULLUP)模式。
注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。
输入上拉模式的作用是:抬高电位。
二,对比三段代码的区别



代码一:使用布尔型变量,将2号引脚和8号引脚的状态分别赋值给pushButton1和pushButton2,在逻辑判断时引入“&&”,只有两个布尔变量的返回值都为1时,判定结果才为是,运行效果为两个按钮都没有按下时,点亮LED;
代码二:使用“sensorVal”表示传感器数值,但在此程序中用于表示开关量,将引脚2的电平状态赋值给sensorVal变量,逻辑判断时使用“==”表示判断sensorVal接受的返回值是否为高电平,按下开关,2号引脚读取到高电平,逻辑判断为是,熄灭LED;
代码三:使用布尔型变量,将2号引脚的值赋给布尔变量,逻辑判断中引入逻辑非“!”,使得判定结果相反,按下开关,LED点亮;