嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

使用 Analog Discovery 2 调试不同的电机控制器

该项目介绍了如何使用 Digilent Analog Discovery 2 逻辑分析仪、静态 I/O、电压表和模式发生器来创建和运行用 C 语言编写的自动化测试,以调试 H 桥直流电机控制器和步进电机控制器。

Digilent Analog Discovery 2

Digilent Analog Discovery 2  (134-6480) 是一款 USB 示波器、逻辑分析仪和多功能仪器,允许用户测量、可视化、生成、记录和控制各种混合信号电路。 在免费 WaveForms 软件的驱动下,Analog Discovery 2 可以配置为多种传统测试和测量仪器中的任何一种,包括示波器、波形发生器、电源、电压表、数据记录器、逻辑分析仪、模式发生器、静态 I/O 、频谱分析仪、网络分析仪、阻抗分析仪和协议分析仪。

WaveForms 是 Analog Discovery 2 的免费软件应用程序,支持任何 Analog Discovery 2 仪器,包括示波器、逻辑分析仪和函数发生器。WaveForms SDK (软件开发工具包)提供库和示例以使用 C、Python 等编写自定义应用程序。

我们要调试 H 桥直流电机驱动器,步进驱动器由带有 Analog Discovery 2 的 Arduino UNO 控制。两个电位器用于设置直流电机的速度和步进器的位置。 霍尔效应传感器在直流电机每转半圈后向 MCU 发送一个中断信号,并改变旋转方向。 我们通过电位器读取电压。 两台电机都应该通过向驱动器发送数字控制信号来测试,同时MCU被禁用,然后,我们在启用MCU后进行测量。

Wiring setup

创建自动化测试应用程序

首先,我们创建头文件(AD2_motor_debugger.h)来声明和定义以下函数。 我们还在头文件中包含 DWF 库 (dwf.h) 和其他标准 C 库。

  1. 初始化Analog Discovery 2
  2. 重置Analog Discovery 2仪器
  3. 在数字 I/O 引脚中写入一个值(对于静态 I/O)
  4. 从模拟输入读取电压(用于电压表)
  5. 驱动两个电机(用于模式发生器)
  6. 记录数字信号(用于逻辑分析仪)
  7. 将数据保存为.csv

主源文件 (main.c) 是一个包装器,它定义了项目的结构和两个脚本,一个在 Python 中,一个在 MATLAB 中,用于显示记录的数据。

我们在主源文件的开头定义连接并连接 Analog Discovery 2。 要测试电机驱动器,必须通过将其 RESET 引脚设置为低来关闭 Arduino Uno。 之后,可以读取电位计上的电压,并且可以使用 digital_write() 和 PWM 生成函数在两个方向上测试两个具有不同速度的电机。

要记录来自 Arduino 的信号,必须通过将其 RESET 引脚设置为逻辑高来打开它。 我们为样本数量 (data_size) 和缓冲区大小 (digital_data) 分配内存。 采集后,应检查数据丢失/损坏。

测试结果与有关当前操作的消息一起显示在控制台窗口中。

在 MATLAB 或 Python 中可视化数据

数据可以导出到文件中,并通过运行 plotting.m MATLAB 脚本或 plotting.py Python 程序进行可视化。

Visualize the data in MATLAB or Python - Graph 1

Visualize the data in MATLAB or Python - Graph 2

阅读完整指南并在Digilent 参考页面下载所有源文件。

 

                                                                                            

awong 还没写个人简介...
DesignSpark Electrical Logolinkedin