“第三课Microduino 数字电压表/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(Created page with "{| style="width: 800px;" |- | ==目的== 本教程涉及两个新的内容,Microduino的串口通讯与模拟口的使用,模拟口之前我们介绍过就是可以测量0...")
 
Pkj讨论 | 贡献
第1行: 第1行:
 +
{{Language|Lesson 3--Microduino Digital voltmeter}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-

2014年3月5日 (三) 05:58的版本

Language English

目的

本教程涉及两个新的内容,Microduino的串口通讯与模拟口的使用,模拟口之前我们介绍过就是可以测量0-5V的电压,然后对应返回0-1024的数值,今天我们就要利用Microduino模拟口这个功能,来制作一个0-5V的电压表

注意:本实验电路设计没有相对复杂的保护电路,所以,千万别使用超过两节以上的AA电池,并且不要用来测量锂电池或者其他电源!!

设备



原理图

第三课-Microduino数字电压表原理图.jpg

程序

    /*
     作用:介绍使用arduino模拟口测量电压,作为0-5V电压表使用实验
    */
     
    float temp;   //创建一个浮点型变量temp作为存储空间准备存放数据
    void setup()
    {
      Serial.begin(9600);     //使用9600的波特率进行串口通讯
    }
    void loop()
    {
     
      int V1 = analogRead(A0);                    
    //从A0口读取电压数据存入刚刚创建整数型变量V1,模拟口的电压测量范围为0-5V 返回的值为0-1024
      float vol = V1*(5.0 / 1023.0);               
    //我们将 V1的值换算成实际电压值存入浮点型变量 vol
      if (vol == temp)                             
    //这部分的判断是用来过滤重复的数据,只有本次的电压值和上次不一时才进行输出
      {
        temp = vol;                               //比较完成后,将这次的值存入比对比用的变量temp
      }
      else
      {
        Serial.print(vol);                       //串口输出电压值,并且不换行  
        Serial.println(" V");                    //串口输出字符V,并且换行
        temp = vol;
        delay(1000);                           //输出完成后等待1秒钟,用于控制数据的刷新速度。
      }
    }

调试

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

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

第三课-Microduino数字电压表连接图.jpg

图上使用1K电阻的目的是在测量端悬空的情况下,将GND的基准电平引导到测量口,避免接口悬空受到干扰

步骤三:运行代码

步骤四:把图中的红线和黑线置于待测电压物体正极,负极端,本例为一个纽扣电池,串口会显示电压值。

第三课-Microduino数字电压表串口显示电压.jpg

结果

用红色的线测量电池正极,黑色的线测量电池负极串口监视器里就会以1秒一次的速度刷新电压值,2次的电压值有波动是正常的,因为我们毕竟是低精度的测试。

视频

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