查看: 289699|回复: 449

NO.22 基于Arduino的数字示波器(完成)

  [复制链接]

该用户从未签到

发表于 2013-8-18 16:42 | 显示全部楼层 |阅读模式
本帖最后由 ntwhq 于 2021-1-19 13:09 编辑

  
                                                                      基于Arduino的数字示波器

(注:本作品在我写的新书《玩转Arduino电子制作》中有更详细的介绍)

测试图-方波2.jpg           电路图B.jpg

                    

一、概述

       经常在网上 看到有人制作数字示波器,数字示波器必须有数模转换单元,根据数模转换方式可以将电路分为两种模式:1.专用ADC芯片+单片机,2.利用单片机内部的ADC作数模转换。对于第一种模式我也做过两种(见我的博客: http://blog.sina.com.cn/ntwhq ),这种模式电路要复杂一点,元器件也较难配齐,对初学者来说比较困难。第二种结构比较简单,容易制作,但有一个明显的缺点,就是带宽比较窄,其中一个比较典型的作品是国外网友制作的:http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope.htm ,这个示波器的带宽只有7.7KHz。国内也有网友用AVR和STC单片机制作的,但实际带宽均不超过10KHz。
        最近看到有网友用Arduino做示波器,这可以说比上面的第二种方式还要简单,但观察其制作的效果却不理想,带宽很窄。因此我也想试一下,看看又没有好的方法来解决这一问题。通过实验制作,不断修改代码,提高数模转换的取样率,取得了很好的效果。
        最终作品的主要参数
        频率响应:  10Hz-50KHz
     电    源:  5V
     LCD液晶屏: 128x64(ST7920)
     测量显示区:96x64
     信息显示区:32x64,显示测试信号的频率、Vpp等内容
     同步方式:上升沿触发
        扫描速度:0.02ms/div~10ms/div,按1-2-5进位分九档
        Hold功能:冻结显示波形和参数

二、基础试验

      使用Arduino 做项目的最大优势就是其丰富的资源,同时也不需要了解太多单片机的知识。我下面的制作就利用了一个LCD的资源库u8glib,使得编程变得简单多了,不然LCD的驱动会花费你好多时间。
      u8glib 下载: u8glib_arduino_v1.13.zip (989.55 KB, 下载次数: 4363)

评分

参与人数 1贡献 +1 收起 理由
coloz + 1 赞一个!

查看全部评分

签到天数: 1 天

[LV.1]初来乍到

发表于 2016-7-2 15:09 | 显示全部楼层
这是我看的最认真的一个帖子,虽然我有很多不懂,也仿制了一个,相当NB,看见楼主这么认真而详细的回答,很佩服楼主,中国现在需要这样的人才。

该用户从未签到

发表于 2015-3-9 00:41 | 显示全部楼层
code_asf 发表于 2013-8-19 09:49
相当NB,打算山寨一个

同感,同感
不过,我想用intel 的galileo做,是不是2代伽利略采样能高很多啊/

该用户从未签到

发表于 2014-6-12 21:52 | 显示全部楼层
" 2、大家可能注意到我没有使用 I/O端口0-7,这正好是AVR单片机的一个8位并口,这是我为后续升级准备的,在使用专用ADC芯片的时候它可以作为数据输入,如果大家对这个示波器感兴趣,以后我会考虑升级;"出升级版本的啦,这个简易的M数太小了哦。

该用户从未签到

发表于 2013-8-18 17:44 | 显示全部楼层
果然高端大气上档次,显示屏还有更好的么,那就帅呆了

签到天数: 1 天

[LV.1]初来乍到

发表于 2013-8-18 17:45 | 显示全部楼层
可以考虑用arduino due,芯片的采样率可以1M

该用户从未签到

 楼主| 发表于 2013-8-18 19:37 | 显示全部楼层
小小弧 发表于 2013-8-18 17:44
果然高端大气上档次,显示屏还有更好的么,那就帅呆了

谢谢关注,再好就用TFT屏了,但u8glib库不支持,得另外找库或自己写驱动。

该用户从未签到

 楼主| 发表于 2013-8-18 19:41 | 显示全部楼层
本帖最后由 ntwhq 于 2013-8-22 21:55 编辑
coloz 发表于 2013-8-18 17:45
可以考虑用arduino due,芯片的采样率可以1M

     谢谢加精和关注,arduino due太贵了,我这个arduino PRO mini经优化编程后采样率也达到400K了,要达到更高的采样率就要考虑采用片外ADC了.

该用户从未签到

发表于 2013-8-18 22:28 | 显示全部楼层
高端大气上档次

该用户从未签到

 楼主| 发表于 2013-8-19 07:55 | 显示全部楼层
袁培根 发表于 2013-8-18 22:28
高端大气上档次

谢谢鼓励!

该用户从未签到

发表于 2013-8-19 09:36 | 显示全部楼层
很不错,但是输入阻抗偏小了,最好加运放跟随下,以及没有电压衰减,加两个电阻分压下就不错了。


然后程序上丰满下,加上偏移的电路。

该用户从未签到

发表于 2013-8-19 09:49 | 显示全部楼层
相当NB,打算山寨一个

该用户从未签到

 楼主| 发表于 2013-8-19 20:39 | 显示全部楼层
珜羽 发表于 2013-8-19 09:36
很不错,但是输入阻抗偏小了,最好加运放跟随下,以及没有电压衰减,加两个电阻分压下就不错了。

      您的建议很好,我这次就是想尽量做得简单点,可以根据需要再加入输入电路。5V的电压用运放效果不是太好,用升压电路又复杂了,可以考虑在输入级用场效果管作跟随器。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

【Arduino】108种传感器模块系列实验(52)---Micro SD卡读写模块
【Arduino】108种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
DIY炫彩灯带,竟如此简单,更有硬件开发工具免费领!
DIY炫彩灯带,竟如此简单
什么是涂鸦Arduino SDK? Arduino 是全球最流行的开源硬件平台,涂鸦官方推出的 Ardui
步进电机播放音乐
步进电机播放音乐
硬件:使用arduino uno板子与步进电机驱动器TB6600实物图 因为我这里用的是方波,才
esp32控制ws2812灯条会有闪烁
esp32控制ws2812灯条会有
把亮度调为0后第一个灯会一直亮其余一些会闪烁,把亮度调高以后就不会闪烁。之前用esp
想在原有的项目上加上一个呼吸灯怎么做才不影响原程序
想在原有的项目上加上一个
如题,想在原来的程序上加上一个呼吸灯,但是程序中的delay会影响到程序的其他部分,
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表