Arduino-数字读写

作者:vkvi 来源:ITPOW(原创) 日期:2022-2-27

针对的是标着数字的接口,有些板子是 D1、D2……

pinMode()

数字读写前,需要使用 pinMode 设置接口的模式。

pinMode(1, OUTPUT); // 设置 1 号口为输出模式。
pinMode(1, INPUT); // 设置 1 号口为输入模式。
pinMode(1, INPUT_PULLUP); // 设置 1 号口为输入上拉。

INPUT_PULLUP 是什么意思呢?当脚脚悬空时,使用 INPUT 模式,然后读取值时,是不稳定的,所以要外设电路设置来解决,或者不用外设电路,就用 INPUT_PULLUP,利用其内部的上拉电阻,实现悬空时,读取出来是高电平。

digitalRead()

INPUT、INPUT_PULLUP 模式下:

int v = digitalRead(1);
if (v == HIGH) {
    // 输入的是高电平。
}

某些模拟脚,也可以拿来读,比如 digitalRead(A0),但是要择板子,还有通常数字脚挺多的,多半用不着拿模拟脚来当数字脚。

注意

  • 读取数据前,通常需要预热,很多传感器前面一段时间(比如 20 秒)数据是不稳定的。

digitalWrite()

OUTPUT 模式下:

digitalWrite(1, HIGH); // 向 1 号口输出高电平。
digitalWrite(1, LOW); // 向 1 号口输出低电平。

输出低电平时,可以对外输出电流,比如驱动发光二极管,不过如果被驱动的元件需要较高的电流,则需要辅助元件。

当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。

相关文章