滑动变阻器
01 滑动变阻器
一、前言
近期需要对一款自制的功率电源进行测试。 右边的这台滑动变阻器已经荒废多少年了。 这个功率变阻器的总的电阻值为 500欧姆。 为了能够自动测量电源特性, 在滑动变阻器表面焊接了八条引线。 将500 欧姆的变阻器按照 二进制分成了七段。 这样可以通过继电器切换, 获得 128种不同的电阻阻值。 下面设计基于 Zigbee 局域网络的控制器。
二、控制电路
1、继电器板
首先设计继电器控制板, 它的电路很简单, 但是占据比较大的PCB面积。 设计单面PCB板, 适合一分钟制板。 一分钟之后得到电路板。 制作的非常完美。 下面, 焊接调试。
AD\RELAYRES7.SchDoc
▲ 图1.2.1 继电器电路 板原理图
▲ 图1.2.2 继电器PCB
焊接电路板。 先把它放在一边, 等控制板制作完毕之后, 再对这个继电器板进行测试。
2、单片机控制板
设计单片机控制电路, 它通过接收有局部 Zigbee 通讯模块发送的命令, 控制继电器的闭合 。 单片机使用手边比较多的STM32F103. 通过ULN2003 控制继电器板的动作。 还有两个按键进行紧急控制。 通过BEEP指示接收到命令。 下面设计电路板, 使用单面布板, 适合一分钟之后, 一分钟制板使得硬件开发和软件一样方便快捷。 不过这次制作的电路板上面存在缺陷。 下面再重新制作一块。 一分钟之后得到的新电路板, 制作的非常完美了。
▲ 图1.2.3 控制电路原理图
AD\Test\2024\May\POWERRESF103.SchDoc
▲ 图1.2.4 控制电路板PCB
焊接电路板, 清洗之后进行调试。 基于 CubeMX 生成的程序框架, 编写了输出端口控制程序, 按键读取程序, 以及Zigbee 串口命令程序, 经过测试, 这个简单的程序工作正常。 下面将电路板与继电器板进行连接测试。
三、整体测试
首先, 将继电器接口板与 滑动变阻器的八条引线连接。 然后通过电缆将继电器板与控制器连接起来。 控制器板可以通过接收到的 ZigBee 无线命令控制继电器板的动作。 也可以根据 电路板上的按键来控制继电器的动作。 通过初步测试, 现在整体上工作正常。 下面使用FLUKE45万用表, 来测量不同继电器状态下的电阻数值。
测量结果真的让人感到吃惊。 居然整个电阻的变化不是单独的, 更不是线性的。 这种突变有可能是不同继电器之间的逻辑状态存在着牵连。 具体出现的问题, 今天时间比较晚了, 就不在检查了。 明天再详细见AI到底是什么原因造成了这种变化。 今天的实验就到这里吧。
▲ 图1.3.1 不同的设置下,对应的电阻变化
● 原因分析
因为测试软件发送数字的时候,使用的十进制发送的。单片机接收到数字的时候则使用16进制, 进而造成了上面的数值。
下面程序进行仿真。
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2024-05-20
#
# Note:
#============================================================
from headm import *
from ast import literal_eval
num = list(range(128))
printf(num)
hexdim = [int('%d'%n, 16) for n in num]
rdim = [(128-(h%128))*500/128 for h in hexdim]
plt.plot(num, rdim, lw=3)
plt.xlabel("Decimal")
plt.ylabel("Hexidecimal")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
▲ 图1.3.2 仿真的结果
※ 总 结 ※
本文制作了一个滑动变阻器的控制器。 通过继电器板对变阻器的阻值进行自动切换。 但是测量的阻值并不呈现线性关系。 这说明电路板中还存在着BUG。 具体问题明天再进行测试吧。
● 相关图表链接: