Arduino开发板可以输入和输出模拟信号以及数字信号。
模拟信号可以采用任意数值来表示,而数字信号只有两个数值:HIGH和LOW。为了测量模拟信号的值,Arduino开发板内置了模数转换器(ADC)。 ADC将模拟电压转换为数字量。用于获取模拟信号值的函数是analogRead(pin)。该函数可以转换模拟输入引脚上的电压值,并返回相对于参考值的从0到1023的数字值。大多数Arduino的参考电压为5V,Arduino Mini和Nano为7V,Arduino Mega为15V。
Arduino没有内置的数模转换器(DAC),但它可以对数字信号进行脉冲宽度调制(PWM),以实现模拟输出的某些功能。用于输出PWM信号的函数是analogWrite(pin,value)。pin指的是PWM输出的引脚号。value是与信号的占空比成比例的数字。当value = 0时,信号始终关闭。当值= 255时,信号始终打开。在大多数Arduino开发板上,PWM功能可以在引脚3、5、6、9、10和11上使用。大多数引脚上PWM信号的频率约为490 Hz。在Arduino Uno开发板上,引脚5和6的频率约为980Hz。Leonardo的第3和第11引脚也以980Hz的频率运行。
要将模拟输入值(范围从0到1023)映射到PWM输出信号(范围从0到255),您可以使用map(value, fromLow, fromHigh, toLow, toHigh)函数。该函数有五个参数,其中一个是存储模拟值的变量,其他参数分别是0、1023、0和255。