第一课--Microduino 电阻计/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年2月25日 (二) 08:25的版本 (Created page with "==目的== 本教程将教大家如何使用Microduino去做一个电阻计,基本原理是通过基准电阻,对比测试端电压,比较后经过算法测出电阻,...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

目的

本教程将教大家如何使用Microduino去做一个电阻计,基本原理是通过基准电阻,对比测试端电压,比较后经过算法测出电阻,经测试,以20k为基准,测大于1k电阻时比较准确

设备

  • Microduino-Core
  • Microduino-FT232R
  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • 20k欧电阻 一个
    • 104瓷片电容 一个
    • USB数据连接线 一根

电容

第一课-电容.jpg

简介:

瓷片是材质,104是三位数表示法,前两位表示有效数字,末一位表示其后,0的个数。104就是100000pF。就是100000微微法。等于0.1微法。一般用于高频或者低频中的旁路电容,常用在电源退耦中,也有作耦合作用。


原理图

可以根据待测量的范围更换基准电阻以求准确

接线如下(电容用的104瓷片):

第一课-Microduino电阻计原理图.jpg

程序

    #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);
    }

程序,用了均值滤波算法

调试

步骤一:把代码复制到IDE中,编译

步骤二:连接电路图,如下所示:

第一课-Microduino电阻计连接图.jpg

图中,上方的电阻为20k欧姆基准电阻,下方的电阻为要测的电阻。

步骤三:运行代码

步骤四:把图中的黄线和黑线置于待测电阻物体两端,串口会显示电阻值。

第一课-Microduino电阻计串口显示电阻值.jpg

你也可以换成任何东西如:肥皂,湿布,看看它们的电阻多大。

结果

串口会显示待测电阻的阻值

视频

http://v.youku.com/v_show/id_XNjc3MzU3ODIw.html