亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

DIY 迷你示波器:基于 Arduino Nano 与 OLED 显示屏的逐步教程

项目简介

本教程展示如何利用 Arduino Nano、0.96" SSD1306 OLED 屏幕和少量离散元件,自制一款袖珍数字示波器。虽然带宽和采样率有限,但足以观测音频信号、PWM 波形、传感器输出等低频信号,是极佳的电子入门实践项目。

核心组件清单

原理图与接线

参考项目附件原理图(schematics 文件夹)。关键点:

固件功能特性

代码架构解析

关键数据结构

#define REC_LENGTH 200   // 单次采样点数
int waveBuff[REC_LENGTH]; // 波形缓冲区
volatile int vRange, hRange, trigD, scopeP; // 量程/时基/触发/光标模式
volatile boolean hold, paraChanged;

主循环流程

  1. setConditions():按当前量程计算 ADC 阈值、分压系数。
  2. readWave():根据时基设置 ADC 预分频(ADCSRA)并精确 delayMicroseconds() 采样 200 点。
  3. dataAnalize():计算最值、平均值、自动量程边界、触发点搜索。
  4. writeCommonImage() / plotData() / dispInf():绘制网格、波形、标尺信息。
  5. display.display():刷新 OLED(约 37ms)。
  6. saveEEPROM():参数变更后延时写入。

采样率与时基对应表

时基档位采样间隔ADCSRA 预分频整帧耗时
50 ms/div1888 µs128~400 ms
20 ms/div688 µs128~160 ms
10 ms/div288 µs128~80 ms
5 ms/div88 µs128~40 ms
2 ms/div24 µs64~16 ms
1 ms/div12 µs16~8 ms
500 µs/div4 µs + nop×1316~4 ms
200 µs/divnop×314~2 ms

高速档位通过降低 ADC 预分频并插入 asm("nop") 实现亚微秒级定时,但会牺牲 ADC 精度(有效位数下降)。

按键映射与操作

引脚功能说明
D2 (INT0)触发同步下降沿中断,配合按键状态切换模式
D8SELECT切换光标模式:垂直量程 ↔ 水平时基 ↔ 触发极性
D9UP增加当前参数
D10DOWN减少当前参数
D11HOLD冻结/恢复波形刷新
D1210×/1×探头衰减切换(控制分压网络)

性能指标与局限

固件下载与烧录

  1. 安装库:Adafruit_GFX、Adafruit_SSD1306(库管理器搜索安装)。
  2. 下载 _20190212_OLEDoscilloscope.ino,用 Arduino IDE 打开。
  3. 选择 Arduino Nano、正确端口,上传。
  4. 上电后显示启动画面,进入主界面即可使用。

参考资料与致谢

制造工艺

  1. 自制家用作业书写机:Arduino + GRBL 控制的笔绘仪
  2. DIY Photoshop 硬件控制台:Arduino Nano RP2040 实现快捷键外设
  3. 用 Arduino 打造绚丽显示器 Ambilight 系统
  4. 自制可拳击的可编程键盘按钮:基于 Arduino 与压电元件的分步指南
  5. 用 Arduino 测量地球质量:DIY 分步指南
  6. 构建基于 PHP 的 Web 界面控制 Arduino Uno
  7. Arduino 合成乐音:从零实现 88 键钢琴全音域
  8. 基于 Arduino 和超声波传感器的自动门控制系统
  9. 手把手打造Arduino Nano喂食机器人
  10. 基于 Arduino Mega 与物联网传感器的高级家庭监控系统
  11. Arduino 实时数字罗盘:HMC5883L + Processing 可视化教程
  12. DIY 碳纤维制造:在家制作碳纤维零件的分步指南