Loading...

Learning   Examples | Foundations | Hacking | Links

模拟输入引脚

对 Arduino 芯片(Atmega8, Atmega168, Atmega328 或 Atmega1280) 模拟输入引脚的说明。

A/D 转换器

在 Arduino 中使用的 Atmega 控制器包含了6个通道的模拟/数字(A/D)转换器。这个转换器拥有10位的分辨率,返回从0-1023之间的整数值。虽然对于大多数 Arduino 使用者来说模拟引脚的功能是用来读取模拟传感器,其实模拟引脚同样拥有通用输入/输出(GPIO)引脚的所有功能(和0 - 13号数字引脚一样)。

因些,如果使用者需要更多的通用输入输出引脚,而模拟引脚还没有用掉,那么模拟引脚可以用来作为GPIO。

引脚映射

模拟引脚的使用和数字引脚相同,使用别名A0(模拟输入0),A1 等等。比如,设置0号模拟引脚为输出并设置为高电平的代码就象这样:

pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);

上拉电阻

模拟引脚同样有上拉电阻,和数字引脚的上拉电阻一样工作。当引脚是输入端时用如下的命令开启

digitalWrite(A0, HIGH);  // 设置0号引脚的上拉电阻

要注意开启上拉电阻会影响 analogRead() 的值。

细节和注意事项

当引脚被设置为输出时,annalogRead命令不能正常工作,所以在这种情况下,应当在用analogRead之前先把它设置为输入。同样的,如果输出引脚被设置为HIGH,当它切换为输入时,同时就设置了上拉电阻。

Atmega的 datasheet 中也提到要注意避免在临近的引脚正在进行 A/D 读取(analogRead)时切换模拟引脚。这样可能会产生电子噪声,并使模拟电路出现杂波。建议的方法是在操作模拟引脚(在数字模式下)后,插入一个短暂延时,再使用analogRead()来读取其他模拟引脚。