本实例将通过电位计的模拟输入量通过arduino的A/D转换功能转换成数字量并进行输出。
电位计:电位器是一个连续可调的电阻器,当调节电位器的转柄或滑柄时,动触点在电阻体上滑动。此时在电位器的输出端可获得与电位器外加电压和可动臂转角或行程成一定关系的输出电压。
实验现象:通过转动电位计便可控制led的亮度
int sensorValue = 0;
int outputValue = 0;
void setup()
{
pinMode(A0, INPUT); //初始化A0为输入模式
pinMode(9, OUTPUT);
Serial.begin(9600); //打开串口通讯
}
void loop()
{
sensorValue = analogRead(A0);//读取模拟值:
outputValue = map(sensorValue, 0, 1023, 0, 255);// 将其映射到模拟输出的范围:
analogWrite(9, outputValue);// 更改模拟输出值:
Serial.print("sensor = ");// 将结果打印到串行监视器:
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);
//在下一个循环之前等待 2 毫秒,以便模数转换器在最后一次读数后建立:
delay(2); // 延时2ms
}
analogRead(A0):读取的是一个0~1023的模拟量
map(num,旧区间初值,旧区间终值,新区间初值,新区间终值);意思就是把num这个数从旧区间映射到新区间,就是高中数学知识那个映射,而且是最简单的线性映射