【Arduino】零基础带你制作一个多通道示波器:基于 Arduino UNO 的多通道示波器 DIY 制作项目

【Arduino】零基础带你制作一个多通道示波器:基于 Arduino UNO 的多通道示波器 DIY 制作项目

项目仓库

你可以在 Github 仓库中获取 DIY 制作用到的 Arduino 源代码。如果这个项目对你有帮助,请给这个项目点个 Star 吧!

项目介绍

示波器是一种用于观察各种不同类型信号电压的设备📉。在一个图形显示器上,示波器可以将电压显示为一维的图形,其中一轴代表时间⏱️,另一轴代表电压⚡。这使得观察者可以看到信号随时间的变化,例如信号的周期性波动。示波器作为一种重要的电子测量工具🔧,广泛应用于电路设计、故障诊断、教育教学和科学研究等领域📚🔬。然而,由于其高昂的价格💰,学生可能难以承担。因此,作者希望使用 Arduino 开发板,构建一个低成本、多通道的简易示波器,以支持学生的学习和研究活动,为电子和电气工程教育提供了一个实用的工具🛠️。

Arduino Uno 开发板上有 6 个模拟输入引脚,标记为 A0 到 A5。这些引脚可以用来读取传感器的输出,或者读取其他设备的模拟信号。 这些信号的电压在 0 到 5 伏特之间。Arduino 会将这个模拟电压转换为一个介于 0 到 1023 的整数。通过使用这些模拟输入引脚,来读取四个模拟信号。然后使用 Arduino 的 analogRead() 函数来读取一个模拟引脚的电压。经过计算后,将实际值、平均值、最大值、最小值输出到 LCD1602上,并将波形图像绘制在 LCD12864 上。

为了检测示波器的效果,该项目配备一个基于 Arduino Mini 制作的简易信号发生器,可以在2-12引脚输出不同周期的方波信号。

功能介绍

四通道模拟信号输入

示波器可以同时接收和处理四个模拟信号,这些信号可以来自各种传感器或其他电子设备。示波器每 20ms 采样一次,采样频率为 50Hz。

数值显示

示波器使用一个 16x2 的 LCD1602 显示屏来显示信息。屏幕上显示电压值、平均值、最小值、最大值四个参数,每两秒切换一个通道。

波形显示

示波器使用一个 128x64 的 LCD12864 显示屏来显示的波形。屏幕被分为左上、右上、左下、右下四个区域,分别显示从A0、A1、A2、A3模拟输入引脚输入的信号波形。每个区域的左上角有一个通道标签,用于指示该区域对应的模拟输入引脚。

硬件说明

设备数量说明
Arduino UNO一块主控制器,负责读取模拟信号,处理数据,并控制显示屏显示波形。
Arduino Mini一块作为信号发生器,可以在2-12引脚输出不同周期的方波信号。
MB-102 电源模块一块供电模块,用于为 Arduino和 LCD 液晶屏提供电源。
USB转串口芯片CH340G一块用于将 Arduino Mini 的串口信号转换为 USB 信号,可以通过 USB 端口与电脑进行通信,上传程序到 Arduino Mini。
I2C液晶屏转接模块一块用于将 I2C 信号转换为液晶屏可以识别的信号。由于 LCD1602 会占用大量 Arduino 引脚。通过 I2C 液晶屏转接模块转接后,只需要使用两个 Arduino 引脚就能传输数据驱动 LCD1602。
LCD1602 液晶显示屏一块16x2 的液晶显示屏,用于显示数值信息。
LCD12864 液晶显示屏一块128x64 的液晶显示屏,用于显示波形。
杜邦线若干条连接线,用于连接各个元件。
面包板若干块用于临时搭建电路的工具,可以方便地插入和移除各种元件。

硬件连接

Arduino UNO 与 MB-102电源模块

Arduino UNOMB-102电源模块
GND-
Vin+

Arduino UNO 与 I2C液晶屏转接模块

Arduino UNOI2C液晶屏转接模块
GNDGND
5VVCC
A4SDA
A5SCL

Arduino UNO 与 I2C液晶屏转接模块

Arduino UNOI2C液晶屏转接模块
GNDGND
5VVCC
A4SDA
A5SCL

Arduino UNO 与 LCD12864 液晶显示屏

Arduino UNOLCD12864 液晶显示屏
GNDGND
5VVCC
2RS / CS
3RW / MOSI
4E / CLK
ResetRST
GNDPSB

Arduino Mini 与 MB-102电源模块

Arduino MiniMB-102电源模块
GND-
VCC+

Arduino Mini 与 USB转串口芯片CH340G

Arduino MiniUSB转串口芯片CH340G
GNDGND
VCC5V
RXTXD
TXRXD

Arduino UNO 与 Arduino Mini

Arduino UNOArduino Mini
GNDGND
A0-A32-12

软件说明

  • Arduino IDE:Arduino IDE 是一个开源的集成开发环境。用户可以通过 Arduino IDE 编写 Arduino 代码,并将其上传到 Arduino 开发板上运行。 Arduino 由于其简单易用、灵活性高以及价格低廉的特点,广泛应用于教育、原型设计和DIY项目中。
  • LiquidCrystal_I2C 库:用于驱动 LCD1602 液晶显示屏。该库可以通过 I2C 接口与 Arduino 进行通信,只需要两个引脚即可实现数据传输。
  • U8g2 库:用于驱动 LCD12864 液晶显示屏。该库支持多种显示屏,包括 OLED、LCD、LED 等。可以通过 SPI 或 I2C 接口与 Arduino 进行通信。

DIY步骤

  1. 准备材料

    • Arduino UNO 开发板
    • Arduino Mini 开发板
    • MB-102 电源模块
    • USB转串口芯片CH340G
    • I2C液晶屏转接模块
    • LCD1602 液晶显示屏
    • LCD12864 液晶显示屏
    • 杜邦线
    • 面包板
  2. 连接硬件

    • 将 Arduino UNO 开发板与 MB-102 电源模块连接,确保供电。
    • 使用杜邦线将 I2C 液晶屏转接模块连接到 Arduino UNO 的 I2C 接口。
    • 将 LCD1602 液晶显示屏连接到 I2C 液晶屏转接模块。
    • 将 LCD12864 液晶显示屏连接到 Arduino UNO 的数字引脚。
    • 将 Arduino Mini 开发板与 USB转串口芯片CH340G连接,确保可以通过 USB 端口与电脑通信。
    • 使用杜邦线将 Arduino Mini 的 2-12 引脚连接到面包板,用于输出不同周期的方波信号。
  3. 安装软件

    • 下载并安装 Arduino IDE。
    • 在 Arduino IDE 中安装所需的库,包括 LiquidCrystal_I2C 库和 U8g2 库。
  4. 上传代码

    • 将示波器程序代码上传到 Arduino UNO 开发板。
    • 将简易信号发生器程序代码上传到 Arduino Mini 开发板。
  5. 调试

    • 确保所有连接正确后,接入电源,并打开 MB-102 电源模块上的开关。
    • 使用简易信号发生器来测试示波器的功能。
    • 检查显示屏是否正确显示数值和波形。

注意事项

  • 在连接硬件时,请确保所有元件的极性正确,避免短路或损坏。
  • 如果液晶屏显示异常或不显示,可以尝试调节液晶屏背面或者转接模块上的对比度电位器。如果还是没有显示,请测量所有导线是否导通。
  • 在使用示波器测量时,输入电压应控制在 5V 以内,否则可能会烧坏 Arduino 开发板。

效果展示

关于是德科技: 是德科技(NYSE:KEYS)-原安捷伦电子测量事业部,是全球电子测量技术和市场的领导者,致力于推动无线通信、模块化和软件解决方案的持续创新,专注于为客户提供卓越的测量体验。是德科技提供的电子测量仪器、系统、软件及服务广泛应用于电子设备的设计、研发、制造、安装、部署和运营。 前言: 最近一直在玩STM32和LCD屏,从字符到TFT,从1.8到3.5寸,挨个都摸了个摸,公司产品出来了,可一直想用这些东东来作点什么。示波器上班用公司的,虽说也是便携的,但也不好回家去用呵,看看市场上动辙千元以上,唉,还是自己动手来DIY方便自己,也造福网友。 性能目标: 电源使用二节2500mA锂电,正常工作5小时以上。 数字示波器参数: 主控: STM32F103ZET6 液晶屏: 3.2"TFT320×240 65K彩色LCD显示屏 STM32 FSMC总线驱动 AD: ADS831 IDT7205 最高实时取样率60Msps 8Bits, 取样缓冲器深度:5K 垂直灵敏度:5V,1V,500mV,200mV,100mV,50mV,20mV,10mV; 基准电压使用STM32 DA输出,实现按键调节波形基准。并有位置指示 水平时基范围:2S, 1S,500mS,200mS,100mS,50mS,20mS,10mS,5mS,2mS,1mS,500uS,200uS,100uS,50uS,20uS,10uS,5uS,2uS,1uS,500nS, 水平位置可调并有指示 输入阻抗:≥1MΩ 最高输入电压:50Vpp 耦合方式:AC/DC 实现自动、常规、单次触发方式 ,上升或下降边沿触发 实现计算测量输入信号的频率、周期、占空比、交流峰-峰值、平均值 触发电平高低位置可调,并电压指示 触发时基位置可调,并指示 实现RUN/STOP功能 使用16个按键,真正作到单键操作以免去组合按键麻烦。 如截图: 功能预留: 波形发生器:使用STM32另一路DA+NE5532实现正弦,三角波,方波输出。 SD卡波形存储输出。 系统串口,可连接电脑输出数据,也可实现远程ISP升级:通过从网上下载升级包文件,方便地升级示波器软件。 注意: 具体看原理图,实现机理:在系统复位后,SYSCLK的第4个上升沿,BOOT管脚的值将被锁存。在开机时使用按键将BOOT0位拉低即可实现STM公司原ISP程序升级,而不再用提前预装IAP程序造成使用麻烦 数字示波器实物展示: 原文出处:https://www.amobbs.com/thread-3706638-1-1.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值