亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino - 网络示波器(支持触发器)

组件和用品

Arduino UNO
× 1
适用于 Arduino 的 PHPoC 扩展板
× 1
跳线
× 1

关于这个项目

如果您是初学者,您可以详细了解 Arduino - Wifi。

演示

特点

  • 支持 6 个频道
  • 支持单触发、多触发
  • 可选触发模式:下降、上升、下降、上升
  • 可设置的触发值
  • 通过网络旋钮调整时分
  • 通过网络旋钮调整每个通道的分压
  • 通过网络旋钮调整每个通道的显示偏移
  • 点按或单击以显示/隐藏设置区域
  • 跨平台工作:Window、Linux、iOS、Android...(由于网络特性),具有网络浏览器

用户界面

工作原理

因为Web Oscilloscope 是PHPoC 上Web Serial Monitor 的修改版,所以我先解释一下Web Serial Monitor 的工作原理。

PHPoC shield 有一个内置的嵌入式 Web 应用程序,称为“Web 串行监视器”。它类似于 Arduino IDE 上的串行监视器。 Arduino IDE 上的串行监视器的区别在于:

  • Arduino IDE 上的串行监视器: 通过 USB 数据线从 arduino tx 引脚读取数据。
  • PHPoC Shield 上的 Web 串行监视器: 通过互联网从 arduino tx pin 读取数据

具体来说,PHPoC Shield 通过 SPI 与 Arduino 通信。当用户从 Web 浏览器访问 Web Serial Monitor 时。页面加载后,页面与 PHPoC Shield 建立 WebSocket 连接。此时,PHPoC Shield 堆叠在 Arduino 上,它从 Arduino TX 引脚捕获数据,然后通过 WebSocket 将这些数据发送到 Web 浏览器上的 Web Serial Monitor。 Web Serial 接收数据并显示在网络上。

这让用户不仅可以在 PC 上查看数据,还可以在移动设备或任何支持网络浏览器的设备上查看数据

现在让我们看看网络示波器是如何工作的。

除了最后一部分外,Web Oscilloscope 的工作方式与 Web Serial Monitor 相同。

Web Oscilloscope 不是在 Web 上显示原始数据,而是在图形上可视化数据。增加了其他功能,允许用户调整UI和执行触发。

关于从Arduino发送的数据

Arduino从ADC引脚读取数据(从A0到A5)并读取时间戳(以微秒为单位)

ADC 数据转换为电压并按照以下格式打印到串口和时间戳:

  • 首先是时间戳,后跟一个空格或“\t”字符。
  • 然后是电压数据。每个通道的数据以空格或“\t”字符分隔。
  • 结尾是换行符

注意: 最大通道数为6,但也可以只发送1个,2个只发送3个通道的数据。

源代码

源代码包括两部分:

  • Arduino 代码(请参阅 WebOscilloscope.ino)
  • Web 应用程序代码 (oscilloscope.php):这是用户界面代码。需要按照这个说明上传到PHPoC Shield

使用方法

从 PC 或智能手机上的 Web 浏览器访问 Web Oscilloscope,输入:http:// replace_ip_address /oscilloscope.php

如何测量信号:只需要使用两根线,一根到GND,一根到Arduino的任何模拟引脚(A0到A5)。将这两个引脚连接到我们要检查信号的点。

由于有6个通道,我们需要6条地线。为方便起见,Arduino 只有两个 GND 引脚。我做如下扩展更多的GND引脚。

适合初学者的最佳 Arduino 入门套件

如果您正在寻找 Arduino 套件,请参阅适合初学者的最佳 Arduino 套件


函数参考

  • Serial.begin()
  • Serial.println()
  • 延迟()
  • millis()
  • for 循环
  • while 循环
  • 否则
  • 循环()
  • 设置()
  • String.toInt()
  • String.substring()
  • String.indexOf()
  • String.remove()
  • String.equals()

代码

  • WebOscilloscope.ino
  • oscilloscope.php
WebOscilloscope.inoArduino
这是arduino代码。我们不需要发送所有 6 通道数据。如您所见,我评论了数据通道 3
#include #include #define AREF 5.0#define ADC_MAX 1023.0float ratio =AREF / ADC_MAX;void setup() { Serial.begin (115200); Phpoc.begin();}void loop() { //读取系统时间 unsigned long time_a =micros(); // 读取模拟值并转换为电压: float voltageChannel0 =analogRead(A0) * ratio;浮动电压Channel1 =analogRead(A1)*比率;浮动电压Channel2 =analogRead(A2)*比率;浮动电压Channel3 =analogRead(A3)*比率;浮动电压Channel4 =模拟读取(A4)*比率;浮动电压Channel5 =模拟读取(A5)*比率; // 先发送系统时间 Serial.print(time_a); Serial.print(" "); // 发送每个通道的值,以“”或“\t”分隔。 Serial.print(电压通道0); Serial.print(" "); Serial.print(电压通道1); Serial.print(" "); Serial.print(电压通道2); Serial.print(" "); //Serial.print(电压通道3); //Serial.print(" "); Serial.print(电压通道4); Serial.print(" "); //最后一个通道必须用换行符发送 Serial.println(voltageChannel5);}
oscilloscope.phpPHP
这是网络代码。
PHPoC Shield - Arduino 网络示波器



示意图


制造工艺

  1. Web 操作的 DMX 控制器
  2. 诺基亚 5110 LCD 上的 DIY 简单 20 kHz Arduino 示波器
  3. Arduino Spybot
  4. FlickMote
  5. 自制电视 B-Gone
  6. 主时钟
  7. 找到我
  8. Arduino Power
  9. Tech-TicTacToe
  10. Arduino Quadruped
  11. DIY 10Hz-50kHz 示波器在 128x64 LCD 显示器上
  12. Arduino - 通过串口向 Web 发送温度