关注  | 分享:

Arduino示波器

Mr.D 2018-08-03

仪器设计

一个非常基本且易于制作的Arduino PC示波器。

项目详情

项目创意灵感
一个非常基本且易于制作的Arduino PC示波器。
材料:
Arduino Leonardo或Arduino Micro
2个鳄鱼夹
一个0.1μF电容(可选)
5.1V齐纳二极管(可选)
一台电脑
对于分压器(可选,如果要测量的电压小于5V或需要可选范围):

2个双闸刀开关
两个3K电阻
两个1.5K电阻
一个1K电阻
小型洞洞板或面包板

如果您只需要将op测量为5V,则可以跳过分压器并将探头直接连接到GND和A1。 你必须稍微修改一下代码:
In the arduino code, replace:

ADMUX = B00000000; // select external reference and port 5 (A0)
with:

ADMUX = B01000000; // select internal reference (Vcc - 5V) and port 5 (A0)
In the processing code, replace:

// read switch position & set voltage range
boolean switch1=((buffer[writeIndex*2]&(byte)8)==8);
boolean switch2=((buffer[writeIndex*2]&(byte)4)==4);
if (!switch1&&!switch2) voltageRange=20;
if (!switch1&&switch2) voltageRange=10;
if (switch1&&!switch2) voltageRange=6.64;
if (switch1&&switch2) voltageRange=5;
with:

voltageRange=5;
设计特色创新
特征:
50K采样/秒(实际上它可以达到110K,但信号会变得嘈杂)
自动触发
频率计数器
合理准确的电压读数(取决于用于分压器的电阻的精度)
可选:可选电压范围:5V,6.6V,10V,20V
系统原理功能
基本原理
完成情况概述
开始搭建电路,可以看图示电路。
上面的电路包括:
在左侧:探头和A1之间的1:4分压器

这将使电压降至输入电压的1/4。模拟引脚可以处理5V,因此可以提供高达20V的电压。

请注意,面包板的图片中有2个输入通道。添加额外通道会大大降低采样速率(因为无法在ADC上启用连续模式),因此我决定将其留在最终代码中。

右侧:5V和模拟参考(AREF)引脚之间的开关分压器
您可以使用开关设置测量范围:5V,6.64V,10V,20V

这是如何工作的:

如果配置为“外部参考”,ADC会将模拟输入的电压与AREF进行比较,而不是5V。
这是一个例子:假设探头测量5V。 A1上的电压为5V / 4 = 1.25V

如果两个开关都关闭,AREF引脚上的电压为5V。
ADC读数为1.25 / 5 = 25%
如果开关1关闭且开关2打开,则AREF上的电压为2.5V
ADC读数为1.25 / 2.5 = 50%
如果开关1接通且开关2断开,则AREF上的电压为1.66V
ADC读数为1.25 / 1.66 = 75%
如果两个开关都打开,则AREF上的电压为1.25V
ADC读数为1.25 / 1.25 = 100%
每个开关的第二极连接到数字输入。我们可以读取此引脚以自动调整电压范围。

探头和地之间的电容器
可能没有必要,但由于某种原因,一些电脑没有它就会测量很多噪音。电容器将解决这个问题,但在测量高频时可能会对信号产生轻微影响。

A0和地之间的齐纳
为保护Arduino不受到过压或反向电压的影响!

小心:
如果在向AREF引脚提供电压时将模拟参考设置为内部(默认),则Arduino可能会损坏。我这样做了,并没有损坏我的,但更好的是安全并在连接AREF之前上传正确的代码。
模拟输入无法处理负电压。
Arduino引脚上的电压不要超过5V。用低于5V的电压来测试电路可能是个好主意
如果A1上的分压器接线错误,你不会损坏Arduino。

Arduino代码基于这篇优秀的文章:
http://meettechniek.info/embedded/arduino-analog.html
祝你好运!
项目采用平台:

同学讨论

京ICP备17044568号-1 © 2020 北京时代行云科技有限公司