前言
这篇文章的目的是,学习模拟信号的使用方法。
模拟信号
模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。生活中,接触到的大多数信号都是模拟信号,如声音、温度的变化等。如图所示,模拟信号是用连续变化的物理量表示的信息,信号随时间作连续变化。
模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚。它可以将外部输入的模拟信号转换为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。
Arduino 模拟输入功能有10位精度,即可以将0~5V的电压信号转换为0~1023的整数形式表示。 模拟输入功能需要使用analogRead() 函数。
int value = analogRead(pin)
参数pin是指定要读取模拟值的引脚,被指定的引脚必须是模拟输入引脚。如 analogRead(A0) 即是读取A0引脚上的模拟值。
与模拟输入功能对应的是模拟输出功能,我们使用analogWrite() 函数实现这个功能。但该函数并不是输出真正意义上的模拟值,而是以一种特殊的方式来达到输出近似模拟值的效果,这种方式叫做脉冲宽度调制(PWM,Pulse Width Modulation)。
analogWrite(pin,value)
pin: 输出PWM电波的引脚。
value: PWM脉冲宽度(0~255)。
在analogWrite() 和analogRead() 函数内部,已经完成了引脚的初始化,因此不用在Setup() 函数中进行初始化操作。