“电阻计”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
调试
程序
 
(未显示2个用户的3个中间版本)
第1行: 第1行:
 +
{{Language | Resistance_meter}} 
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
第7行: 第8行:
  
 
==设备==
 
==设备==
*'''[[Microduino-Core]]'''
+
*'''[[Microduino-Core/zh]]'''
*'''[[Microduino-FT232R]]'''
+
*'''[[Microduino-USBTTL/zh]]'''
  
 
*其他硬件设备
 
*其他硬件设备
第16行: 第17行:
 
**面包板          一个
 
**面包板          一个
 
**跳线            一盒
 
**跳线            一盒
 
 
  
 
==原理图==
 
==原理图==
第27行: 第26行:
 
==程序==
 
==程序==
  
ResistanceMeter
+
[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Processing/ResistanceMeter ResistanceMeter]
  
processingResistanceMeter
+
[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Processing/processingResistanceMeter processingResistanceMeter]
  
 
==调试==
 
==调试==

2014年10月29日 (三) 07:16的最新版本

Language English

目的

本教程将教大家如何用processing显示电阻计值的曲线图,电阻计由Microduino实现。

设备

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

原理图

ResistanceMeterSchematics.jpg


程序

ResistanceMeter

processingResistanceMeter

调试

步骤一:按着原理图搭建硬件环境,像这样:

IResistanceMeterConnectionDiagram.jpg


步骤二:解释一下代码:

本例需要两端的代码,Processing端和Microduino端

Microduino:

//使用滤波算法计算出电阻值数据后输出到串口以便Processing显示

 //filter Algorithm
 float filter()
 {
   float sum = 0;
   for(int count = 0; count < N; count++)
   {
     sum += r;
     delay(5);
   }
   return (float)(sum / N);
 }

Processing:

//得到第一个串口的数据,并定义如果有换行就缓存

// is always my Microduino, so I open Serial.list()[0].
// Open whatever port is the one you're using.
myPort = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil('\n'); // Trigger a SerialEvent on new line

//把从Microduino接收到的数据以曲线图的形式显示在屏幕上,并标上标尺

 String val = myPort.readStringUntil('\n');
 if (val != null) {
   if ("Infinity!!".equals(val)) {
     unit="resistancetoo big";
   } 
   else {
     if ("K ohm".equals(val)) {
       unit="K ohm";
     }
     else if (" ohm".equals(val)) {
       unit=" ohm";
     }
     else {
       val = trim(val);
       println(val);
       resistance=Float.parseFloat(val);
     }
   }
 }
 vals[vals.length-1] = 200-resistance;
 //Display scale
 text ( "200-", 370, 10); 
 text ( "--", 370, 50); 
 text ( "100-", 370, 100);
 text ( "--", 370, 150); 
 text ( "0-", 370, 200); 
 //show current num
 text ( resistance+unit, 0, 10);

步骤三:下载代码并编译通过。

步骤四:把待测电阻放到上图中黄色和黑色线的中间,看看processing中的电阻曲线值

结果

曲线图会显示当前的电阻值。

IResistanceMeterResult.jpg


视频