|
本帖最后由 ntwhq 于 2021-1-19 13:09 编辑
基于Arduino的数字示波器
(注:本作品在我写的新书《玩转Arduino电子制作》中有更详细的介绍)
一、概述
经常在网上 看到有人制作数字示波器,数字示波器必须有数模转换单元,根据数模转换方式可以将电路分为两种模式: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, 下载次数: 4313)
|
评分
-
查看全部评分
|