基于Arduino的电阻计
本帖最后由 wasdpkj 于 2013-1-30 23:59 编辑晚上闲着,写了一个测电阻的程序,
原理是通过基准电阻,对比测试端电压,比较后经过算法测出电阻,经测试,以20k为基准,测大于1k电阻时比较准确。
可以根据待测量的范围更换基准电阻以求准确
接线如下(电容用的104瓷片):
程序,用了均值滤波算法:
#define N 12
#define basis 20000.0
int potpin = A4;
float val, r;
void setup()
{
Serial.begin(9600);
}
void loop()
{
val = analogRead(potpin);
r = ((basis * 1023.0) / (1023.0 - val)) - basis;
delay(100);
Serial.print(" R:");
if(filter() >= 1000)
{
if(filter() >= 500.0*1000.0)
{
Serial.println("Infinity!!");
}
else
{
Serial.print(filter() / 1000.0);
Serial.println("K ohm");
}
}
else
{
Serial.print(filter());
Serial.println(" ohm");
}
}
float filter()
{
float sum = 0;
for(int count = 0; count < N; count++)
{
sum += r;
delay(5);
}
return (float)(sum / N);
} {:soso_e104:}欢迎制作更多日常工具!非常实用的一个小功能。。。 Ansifa 发表于 2013-1-30 23:26 static/image/common/back.gif
欢迎制作更多日常工具!非常实用的一个小功能。。。
;P多谢鼓励 首精了,感动一下 很想用arduino做一个rlc测量仪器。。一直懒。。。 可以调用一下基准源,这样电压精度会高很多。还有试试千分之一精度的电阻做基准啥的,再邪恶的用电子秤专用的超慢速24位ADC来提高精度 迷你强 发表于 2013-1-31 22:48 static/image/common/back.gif
可以调用一下基准源,这样电压精度会高很多。还有试试千分之一精度的电阻做基准啥的,再邪恶的用电子秤专用 ...
弱弱的问一下,后半句的24位ADC是嘛? 不错,就是滤波的写法看的人难受:lol 另外,搞一个多段的拨动开关,就能做测量多种电阻的的玩意了 不错,值得学习 我很想知道,你的这个电子版的电路图是用什么工具画的,谢谢~~
飞跃 发表于 2013-4-26 15:32 static/image/common/back.gif
我很想知道,你的这个电子版的电路图是用什么工具画的,谢谢~~
就是用这个软件...
http://www.geek-workshop.com/thread-4349-1-1.html 迷你强 发表于 2013-1-31 22:48 static/image/common/back.gif
可以调用一下基准源,这样电压精度会高很多。还有试试千分之一精度的电阻做基准啥的,再邪恶的用电子秤专用 ...
我看到了您的另外一篇帖子 关于使用内部基准源的 用analogReference(INTERNAL); 调用
但是请问 调用之后 程序里面的算法要怎么修改呢 playoutside 发表于 2013-11-10 21:36 static/image/common/back.gif
我看到了您的另外一篇帖子 关于使用内部基准源的 用analogReference(INTERNAL); 调用
但是请问 调用之后 ...
内置基准源为1.1V,调用后arduino量程为1.1V二不是默认的5V 这个filter滤波器有意义吗?累加r12次再除以12不就是r吗没有变化啊? 这个电阻测量,理论精度最高能达到多少呢?灰常关心
页:
[1]
2