Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hex9cf/four-channel-oscilloscope

A low-cost, multi-channel simple oscilloscope project based on Arduino.
https://github.com/hex9cf/four-channel-oscilloscope

arduino

Last synced: 4 days ago
JSON representation

A low-cost, multi-channel simple oscilloscope project based on Arduino.

Awesome Lists containing this project

README

        

# 基于Arduino的四通道示波器

## 项目介绍

示波器是一种用于观察各种不同类型信号电压的设备。在一个图形显示器上,示波器可以将电压显示为一维的图形,其中一轴代表时间,另一轴代表电压。这使得观察者可以看到信号随时间的变化,例如信号的周期性波动。

示波器是一种重要的电子测量工具,广泛应用于电路设计、故障诊断、教育教学和科学研究等领域。然而,由于其高昂的价格,学生可能难以承担。因此,作者希望使用 Arduino 开发板,构建一个低成本、多通道的简易示波器,以支持学生的学习和研究活动,为电子和电气工程教育提供了一个实用的工具。

Arduino是一个开源的电子原型平台,它包括硬件(各种型号的 Arduino 板)和软件(Arduino IDE)。Arduino 板通常包含一个微控制器和一些可用于接收和发送数据的 I/O 引脚。Arduino 的编程语言基于 C++,并提供了一套简单的标准库,使得用户可以方便地控制 Arduino 板上的 I/O 引脚。Arduino IDE 是一个简单的编程环境,它包含了一个文本编辑器和一些用于编译和上传代码的工具。Arduino 由于其简单易用、灵活性高以及价格低廉的特点,广泛应用于教育、原型设计和DIY项目中。

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

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

## 硬件需求

| 设备 | 数量 |
| --- | --- |
| Arduino UNO | 一块 |
| Arduino Mini | 一块 |
| MB-102 电源模块 | 一块 |
| USB转串口芯片CH340G | 一块 |
| I2C液晶屏转接模块 | 一块 |
| LCD1602 液晶显示屏 | 一块 |
| LCD12864 液晶显示屏 | 一块 |
| 杜邦线 | 若干条 |
| 面包板 | 若干块 |

## 硬件说明

### 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 UNO | MB-102电源模块 |
| --- | --- |
| GND | - |
| Vin | + |

### Arduino Mini 与 MB-102电源模块

| Arduino Mini | MB-102电源模块 |
| --- | --- |
| GND | - |
| VCC | + |

### Arduino Mini 与 USB转串口芯片CH340G

| Arduino Mini | USB转串口芯片CH340G |
| --- | --- |
| GND | GND |
| VCC | 5V |
| RX | TXD |
| TX | RXD |

### Arduino UNO 与 Arduino Mini

| Arduino UNO | Arduino Mini |
| --- | --- |
| GND | GND |
| A0-A3 | 2-12 |

### Arduino UNO 与 I2C液晶屏转接模块

| Arduino UNO | I2C液晶屏转接模块 |
| --- | --- |
| GND | GND |
| 5V | VCC |
| A4 | SDA |
| A5 | SCL |

### Arduino UNO 与 I2C液晶屏转接模块

| Arduino UNO | I2C液晶屏转接模块 |
| --- | --- |
| GND | GND |
| 5V | VCC |
| A4 | SDA |
| A5 | SCL |

### Arduino UNO 与 LCD12864 液晶显示屏

| Arduino UNO | LCD12864 液晶显示屏 |
| --- | --- |
| GND | GND |
| 5V | VCC |
| 2 | RS / CS |
| 3 | RW / MOSI |
| 4 | E / CLK |
| Reset | RST |
| GND | PSB |

## 功能介绍

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

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

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