本文主要是介绍thinkcad弯曲传感器使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
传统电路图
传统采用的是电阻分压方式,要么电压读取不稳定,要么只能获取3个值
代码:
float a=0;
void setup()
{pinMode(A0, OUTPUT);Serial.begin(9600);
}void loop()
{a=analogRead(A0);Serial.println(a);delay(1000); // Wait for 1000 millisecond(s)
}
改进
采用数据手册中的运算放大器辅助读取
741运算放大器:
电路这么连:
代码:
#include <math.h>
const double e = exp(1.0);
float a=0;//A为读取的数据
int b=0;//B为角度
void setup()
{pinMode(A0, OUTPUT);Serial.begin(9600);
}void loop()
{a=analogRead(A0);a=(0.0027*a*a-1.7287*a+267.75);//多项式曲线b=int(a);if(b==2)b=0;//这里稍微校准一点,保证头和尾是准的if(b==175)b=180;Serial.println(b);//打印出来delay(1000);
}
具体效果大家可以自己试一下 还是比较准的 注:实际连接电路还是需要自己重新拟合一个曲线的
函数:角度=f(读取的数据) y=角度 x=读取的数据
y = 0.0027x2 - 1.7287x + 267.75;y = -122.5ln(x) + 682.77
这篇关于thinkcad弯曲传感器使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!