各位,我今天在使用arduino PWM脚输出AD值时,发现理论的和实际存在近0.03V误差,不只是什么原因造成?
程序中设定D9开始输出160,对应实际采样电压5*160/255=3.137V,实际万用表测试为3.163V
当到255时,理论5v,实际测得5.04V,因为我这边想通过DA输出控制另一块开发板上的传感器温度,让另一块开发板报过温故障,实际测试电压与理论电压一直存在误差,理论AD精度是0.0196,
不知道大家之前测试误差多少?这个误差是什么引起的?如何消除?附测试程序,- int OST = 9;
- int brightness = 160; //定义整数型变量brightness与其初始值,此变量用来表示LED的亮度。
- int fadeAmount = 5; //定义整数型变量fadeAmount,此变量用来做亮度变化的增减量。
- void setup() {
- pinMode(OST, OUTPUT);// 设置9号口为输出端口:
- pinMode(13, OUTPUT);
- }
- void loop()
- {
- analogWrite(9, brightness);//把brightness的值写入9号端
- brightness = brightness + fadeAmount;//改变brightness值,使亮度在下一次循环发生改变
-
- delay(60000); //1min
-
- if (brightness == 160 || brightness == 255)
- {
- {
- fadeAmount = -fadeAmount ; //在亮度最高与最低时进行翻转
- digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
- delay(1000); // wait for a second
- digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
- delay(1000);
- }
- }
- }
复制代码 |