Arduino开发板上带有A的是模拟输入的引脚。Arduino可以通过读取输入引脚上的电平值来读取模拟信号。
在Arduino UNO上可以接受0~5V的模拟信号。
模拟输入引脚是带有ADC(Analog-Digital Converter模数转换器)功能的引脚,它可以将外部输入的模拟信号转变为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。
Arduino的模拟输入功能有10位精度,可以将0~5V的电压值转变成0~1023的整数形式表示。
模拟信号输入功能需要使用analogRead()函数。
int value = analogRead(pin);
pin是指模拟输入的引脚,被指定的引脚必须是模拟输入的引脚如
int value = analogRead(A0);//读取A0引脚上的模拟信号
而analogWrite()是模拟信号输出,但是这不是真正意义上的模拟信号,而是以一钟特殊的方式来达到近似模拟输入的结果。这种方式叫做脉冲宽度调试(PWM,Pulse Width Modulation)。在Arduino UNO中,提供这个的引脚为3,5,6,9,10,11.
analogWrite(pin,value);
参数pin是指要输出PWM波的引脚,参数value是指PWM波的脉冲范围,范围是0~255。
在analogRead()和analogWrite()函数内部已完成了引脚的初始化,所以不用在setup()中进行引脚初始化。
使用模拟I/O设计呼吸灯
int ledPin=9;
void setup()
{//模拟信号引脚不用初始化
}
void loop()
{
for(i=0;i<=255;i=i+5)//LED从暗到亮
{
analogWrite(ledPin,i);
delay(50);//延迟50毫秒
}
for(i=255;i>=0;i=i-5)//LED从亮到暗
{
analogWrite(ledPin,i)
delay(50);
}
}