历史上的今天
返回首页

历史上的今天

今天是:2025年01月09日(星期四)

正在发生

2020年01月09日 | 如何通过Arduino制作数字示波器

2020-01-09 来源:elecfans

在线制作数字示波器的经常见到的人,DSO必须具有数模转换单元,根据d/a转换电路可分为两种模式:1.特殊ADC芯片+单片机,2.在转换器内部使用单片机ADC计数。对于第一个模型,我尝试了两个,该电路稍微复杂一点,组件更难以完成,对于初学者来说很难。第二种结构相对简单,易于制造,但是具有很大的缺点,即带宽较窄, 示波器的带宽仅为7.7KHz。国内用户和STC单芯片AVR生产,但实际带宽小于10KHz。您也可以选择使用Fusion PCB制作PCB板,而无需自己焊接。

如何通过Arduino制作数字示波器

步骤1:代码

最近用Arduino示波器看到了一个网友,它可能比上面的第二种方法更容易使用,但结果并不理想,带宽很窄。因此,我想尝试一下,没有解决此问题的好方法。通过实验制作,不断修改代码,提高了d/a转换采样率,取得了很好的效果。


最终产品的主要参数:频率响应:10Hz-50KHz电源: 5V LCD LCD屏幕:128x64(ST7920)测量显示区域:96x64信息显示:32x64,显示测试信号的频率,Vpp等;同步:上升沿触发扫描速度:0.02ms/div〜10ms/div,载有9个1-2-5保持功能:冻结显示的波形和参数二,基本测试使用Arduino项目的最大优势是其丰富的资源,并且不需要太多的SCM知识。我使用的是u8glib LCD储存库,从而使编程更容易,否则LCD驱动器将花费您很多时间。 U8glib下载:u8glib_arduino_v1.13.zip(989.55 KB,下载:2577)这是我使用Arduino UNO构建的第一个测试电路,使用ST7920控制的12864 LCD LCD。只要将以下代码中的输入法下载后编译,就可以实现数字示波器的基本功能,会不会更简单? #包括//声明U8GLIB_ST7920_128X64_4X u8g(13,12,11);语句LCD SPI Com:SCK = 13,MOSI = 12,CS = 11 int x,y;绘制点坐标int Buffer [128];缓存存储阵列void setup(){}样本void sample(){for(x = 0; x 《128; x ++)Buffer [x] = AnalogRead(A0); (x = 0; x 《128; x ++)Buffer [x] = 63-(Buffer [x] 》》 4)的信号采样;计算y值}显示void draw(){for(x = 0; x 《127; x ++)u8g.drawLine(x,Buffer [x],x,Buffer [x + 1]);画两条线u8g.drawLine(64,0,64,63);绘制轴u8g.drawLine(0,32,128,32);对于(x = 0; x 《128; x + = 8)//绘制轴刻度u8g.drawLine(x,31,x,33); for(x = 0; x 《64; x + = 8)u8g.drawLine(63,x,65,x); u8g.drawFrame(0,0,128,64);绘制边框} void loop(){sample();示例u8g.firstPage();清除屏幕做draw();显示while(u8g.nextPage());

}


步骤2:电路

使用测试电路,直接使用AnalogRead()函数测量Arduino,以完成ad/a转换,转换速度约为111μs速度很慢,因此其带宽大部分为1KHz,下一个优先事项是在增加其他功能的同时提高数模转换的速度。


第三,最新的程序这是使用最新的源代码,请保留我的开机LOGO,哈哈。 Arduino_oscilloscope.zip(2.72 KB,下载:2710)

程序芯片1.1V ADC使用上述电压基准,如果要使用外部5V基准电压,则应程序ADMUX = 0xe0;至:ADMUX = 0x60; Vpp =(V_max-V_min)* 1.1/255;读取:Vpp =(V_max-V_min)* 5/255;

使用Fusion PCB可以制造出更好的电路板。

使用上面的Arduino UNO进行四次机器制造的实验,

电路图:

主要组件列表:编号名称Arduino PRO mini 1 LCD12864 LCD(ST7920)1电解电容器(100μ25V)1电位器(50k)1孔板3电源开关1电池盒2按钮开关(带可充电电池,第7个)1盒1

1,焊接Arduino PRO mini PIN。/p》

2,焊接电路板组件

3,制作LCD孔板

4,组装电路板

5,制作外壳I

6,组装

将带有塑料外壳的宝盒的充电结构调整到孔中的适当位置。

6,组装

将电路板装入带有厚白色面板的外壳中

第3步:上传并测试

都e到Arduino PRO mini不会打开USB串行端口电路,因此在下载程序之前要通过USB串行端口下载进行传输。

示波器的调试非常简单,只需将电位器调至50k中心即可。水平扫描线。我使用信号发生器的信号源。

启动LOGO

测试:

一些解释

1,这是最常见的一种。简单的数字示波器,您可以在此基础上进一步改进;


3 ,工作很匆忙,存在任何缺陷和不足,请提出建议,您还有任何问题可以在这里进行。

推荐阅读

史海拾趣

Bay Linear Inc公司的发展小趣事

Bay Linear Inc公司一直注重人才培养和团队建设。公司建立了完善的人才培养和激励机制,吸引了一批批优秀的研发人才和管理人才。同时,公司还积极营造团结协作、创新进取的企业文化,使团队成员能够充分发挥自己的才能和潜力,共同推动公司的发展。

Cooper Tools(Eaton)公司的发展小趣事

在电子行业的早期,Bay Linear Inc公司以其精湛的技术和前瞻性的视野,成功研发出了一款高效能、低能耗的线性电源管理芯片。这款产品凭借出色的性能,迅速获得了市场的认可,为公司在行业内赢得了良好的声誉。随着技术的不断进步,公司又陆续推出了多款创新产品,不断巩固和扩大市场份额。

Elcos AG公司的发展小趣事

随着公司规模的扩大和业务的增长,Elcos AG面临着供应链管理的挑战。为了降低成本、提高效率和保证产品质量,公司决定对供应链进行优化。通过引入先进的供应链管理软件、加强与供应商的合作和建立严格的质量控制体系等措施,Elcos AG成功实现了供应链的优化和升级。这不仅提高了公司的运营效率和市场竞争力,还为客户提供了更加稳定可靠的产品和服务。

DURABLE公司的发展小趣事

随着环保意识的日益增强,DURABLE公司积极响应全球绿色发展的号召,将环保理念融入产品研发和生产过程中。公司投入大量资金用于研发环保型电子材料,并成功推出了一系列具有环保性能的产品。这些产品不仅满足了市场对环保产品的需求,还为公司赢得了良好的社会声誉。同时,DURABLE还积极推广绿色生产和循环经济理念,为电子行业的可持续发展做出了积极贡献。

Corsair Memory Inc公司的发展小趣事

随着公司的发展,Corsair Memory Inc不仅局限于内存产品的生产,还积极扩大业务范围。其中,收购SCUF Gaming是Corsair在扩展业务版图上的重要一步。这一收购使Corsair得以进入游戏外设市场,进一步丰富了其产品线,也为其带来了更多的增长机会。

ACT [Advanced Crystal Technology]公司的发展小趣事

进入90年代后期,Corsair再次调整其产品策略,由生产标准内存转变为生产高于规格的内存,即超频内存。这一决策迎合了当时市场对高性能内存的需求,Corsair的超频内存迅速在市场上获得了认可。其产品的超级性能专为极大需求的应用软件而设,也一直被应用关键的服务器及极高性能的工作站(包括游戏系统)上。

问答坊 | AI 解惑

PWM

mini2440板子上的PWM控制的蜂鸣器,现在我想让PWM信号从其他GPIO输出,在驱动程序中直接改了一下GPIO口,但是编译内核的时候出错了 不知道还要修改其他的什么内容?有没有谁做过给指点一下,谢谢!…

查看全部问答>

socket 与 Moxa 设备 的通信

通过moxa串口联网转换器,作为 tcp 服务器 现在要使用socket进行通信,收发信息? …

查看全部问答>

wince下调用dll

在wince下怎么调用dll? 我有vc下的一个.dll,.lib,.h文件,在wince的程序里编译通过。 同时在模拟器里已经加了dll文件。但是运行的时候总是显示没有找到某个元件。 请问dll的调用和.lib一致吗?…

查看全部问答>

关于IRP

请问IRP是从应用程序发起的,还是操作系统由于硬件状态改变(如有数据进入)而产生的,并传给驱动程序? 还有一问:IRP是如何分发的?比如我的板卡发出一个中断信号(eg:  IRQ5),驱动程序应怎样编写来响应它?并且通知应用程序来取数 ...…

查看全部问答>

机器人遍历仿真相关(请教)

我的毕业设计课题选的“机器人遍历仿真试验平台”。 我是学计算机网络专业的,对硬件比较感兴趣,但是对机器人一窍不通,还请大家帮帮忙…… 告诉我在寒假里应该先看些什么书打些什么基础…… 小女子感激涕零!!…

查看全部问答>

电子产品焊接工艺

电子产品焊接工艺…

查看全部问答>

求助

做测量脉宽的实验时,用IAR编译程序,出现如下错误,不知道怎么改,望高手指点  …

查看全部问答>

GPRS 问题

AT+CDNSORIP=1 OK AT+ciphead=1 OK AT+cipstart=\"tcp\",\"183,43,225,191\",\"8080\" ok   ERROR:6 STATE:Ip STATUS     为什么这样…

查看全部问答>

PICkit3 谁愿意DIY?

   PICkit3  在淘宝上最低也要一百多。有点贵啊! 不知道大伙愿意不愿意自己做一个呢? 愿意者跟帖说明 …

查看全部问答>

关于STM32像EPROM一样可以单字节写内部Flash的理解

都有说STM32的内部Flash可以像EPROM一样操作,单个字节单个字节的写入。根据本人的拙见,其实也就仅仅是“像”而已。原因有以下几点:1.首先Flash这种东西,其写入数据的原理是便是将1变成0,所以你的某地址Flash一旦已经写过数据而且不为0,则当你 ...…

查看全部问答>