Arduino的模拟信号输入——电压测试
int value=0; //定义值为0,也可以在程序一开始定义
value=analogRead(out); //使模拟信号输入的值为value
float val=value*(5.0/1023.0); //由于模拟信号输入的值为0到1023的值,即为0到5v的值,这里可以转换一下
Serial.println(val); //输出该点的电平是多少
map() 将数字从一个范围重新映射到另一个范围。
函数原型:map(value, fromLow, fromHigh, toLow, toHigh)
value:要映射的数
fromLow:当前值范围的下限
fromHigh:当前值范围的下限
toLow:目标值范围的下限
toHigh:目标值范围的上限
返回值:映射后的值
eg: (读取IO0的模拟电压(01023),并将其设置到IO9(0255)(其实也就是PWM))
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
Arduino 的 Serial.write 和 Serial.print 的区别在哪里
Serial.print 发送的是字符,如果你发送97,发过去的其实是9的ascii码(00111001)和7的ascii码(00110111)。
Serial.write 发送的字节,是一个0-255的数字,如果你发97, 发过去的其实是97的二进制(01100001),对应ascii表中的“a".