Arduino的模拟引脚的引用,网上不错的一篇文章html
参考:http://blog.sina.com.cn/s/blog_156e62ef90102xjio.htmlgit
本文是对于Arduino芯片上模拟引脚的介绍。上面所说的Arduino芯片主要包括(Atmega8, Atmega168,Atmega328或Atmega1280)。函数
Arduino中使用的Atmega控制器都配有一个板载6通道数模转换器,这个转换器的精度为10bit,可以返回0-1023的整数。尽管模拟引脚的主要功能是读取模拟信号,可是实际上和0-13号数字引脚同样,模拟引脚也能够进行INPUT、OUTPUT操做(GPIO)。所以,若是你在作项目时须要更多的数字引脚,那么模拟引脚也可用做GPIO操做。ui
A0、A一、A二、A3……就是模拟引脚的编号。你能够用这个编号让模拟引脚输出高电平或低电平。下面的例子会将A0口设置为输出模式,而且输出高电平 spa
1 pinMode(A0, OUTPUT);.net
2 digitalWrite(A0, HIGH);htm
模拟引脚也有和数字引脚同样的内置上拉电阻。经过下列代码激活模拟引脚内部的上拉电阻。blog
digitalWrite(A0, HIGH); // 将上拉电阻激活。(这与普通的输入引脚有点区别)get
可是激活了上拉电阻后,再用analogRead()的话,读出的值会受到影响。it
若是一个引脚已经被设置成为OUTPUT模式,analogRead函数就不可以正常工做。所以,若是要将模拟引脚当作数字引脚而且设置了OUTPUT模式,请在调用analogRead前将这个模拟引脚从新定义为INPUT模式。
如上所述,若是你将模拟引脚定为输出模式而且输出了HIGH,那么它内部的上拉电阻就会被激活。若是这时候再转为INPUT,那么上拉电阻将依然工做着。(所以,你须要先设置为LOW,再转换为INPUT,才可以得到正确结果。)
从Atmega的数据手册中,咱们能够知道:若是要在模拟引脚上进行快速的电平切换,会致使电子噪声。这会给模电转换模块带来“抖动”,从而影响到其余引脚上的模拟信号值读取。所以,你须要在将模拟引脚进行电平操做切换后使用后用delay函数进行一小段时间的延迟,而后再使用analogRead()去读取其余引脚上的模拟信号。
本文摘自 http://blog.csdn.net/amagamag/article/details/51734049 译者:唐家勋