机械变阻器的控制器设计原理及控制命令

发布者:InspiredDreamer最新更新时间:2024-07-12 来源: elecfans关键字:控制器  控制命令 手机看文章 扫描二维码
随时随地手机看文章

虽然现在有很多可以用来当做变阻器的器件:比如场效应管、X9C103数字电位器,但是由于存在非线性、寄生电容,所以在很多测量场合还是需要机械变阻器来完成。

■ 说明


在2020/9/18日,由于外部机械碰撞,使得BLUETOOTH接口断裂,整个模块就报废掉了。


▲ 拆解前的机械变阻电位器

01设计原理

机械变阻器

机械变阻器的控制器是由STM32F103为核心,外部使用两个A4950做起小型直流电机驱动器。通过ZIGBEE串口模块接收控制命名。

在控制上还有八个IO端口,可以通过命令任意配置成OUT,IN。
八个IO口通过左右两个相同的六管脚插座输出,从左到右分配定义为:


另外一个端口与画面定义相同,只是BIT的序号从4到8.

pIYBAF_jCimAHYUQAAU-oj2aAGA816.png?imageView2/2/w/1000

变阻器的执行部件是由带有减速齿轮箱的直流电机。直流电机配有霍尔转速吗盘。

该电机通过软塑料管可以与多圈电位器相连,通过转动带动电位器转动。


控制命令

控制命令的说明文档:
DesignCenterMyResearch202机械可变电阻


控制命令在软件SerialText.C中表示:如下面代码所示:

//------------------------------------------------------------------------------

void SerialDebugProcessBuffer(void) {

SerialDebugBuffer2Argument();

if(g_ucSDANumber == 0) return;


if(strcmp('hello', (char *)STD_ARG[0]) == 0)

printf('%s is ready !rn', VERSION_STRING);

 else IFARG0('11pwm1') {

     int nNumber;

     sscanf(SDA(1), '%d', &nNumber);

     SetPWM1(nNumber);

 }else IFARG0('11pwm2') {

     int nNumber;

     sscanf(SDA(1), '%d', &nNumber);

     SetPWM2(nNumber);


 } else IFARG0('11pwm12') {

     int nNumber;

     sscanf(SDA(1), '%d', &nNumber);

     SetPWM12(nNumber);


 } else IFARG0('varistorcount1') {

     int nNumber;

     sscanf(SDA(1), '%d', &nNumber);

     int nPWM = 20;

     if(STD_NUM > 2) {

         sscanf(SDA(2), '%d', &nPWM);

         if(nPWM > 50) nPWM = 50;

     }

     SetCount1(nNumber, nPWM);

 } else IFARG0('varistorcount2') {

     int nNumber;

     sscanf(SDA(1), '%d', &nNumber);

     int nPWM = 20;

     if(STD_NUM > 2) {

         sscanf(SDA(2), '%d', &nPWM);

         if(nPWM >= 50) nPWM = 50;

     }

     SetCount2(nNumber, nPWM);

 } else IFARG0('varistorsetbit') {

     int nNumber;

     sscanf(SDA(1), '%x', &nNumber);

     SetBit((unsigned char)nNumber);

 } else IFARG0('varistorclearbit') {

     int nNumber;

     sscanf(SDA(1), '%x', &nNumber);

     ClearBit((unsigned char)nNumber);

 } else IFARG0('varistorsetbitvalue') {

     int nNumber;

     sscanf(SDA(1), '%x', &nNumber);

     SetBitValue((unsigned char)nNumber);

 } else IFARG0('varistorgetstatus') {

     char szString[32];

     sprintf(szString, '%d %d %drn', GetBitValue(), GetCount1(), GetCount2());

     printf('%s', szString);

     int nLength = strlen(szString);

     int i;

     for(i = 0; i < nLength; i ++) {

         UART2SendChar(szString[i]);

     }


 } else IFARG0('varistorsetbitoutin'){

     int nNumber;

     sscanf(SDA(1), '%x', &nNumber);

     SetBitOutIn((unsigned char)nNumber);

 }

在JPGA25DOP中带有Python调用命令程序函数,相应的命令见下面的代码:


#!/usr/local/bin/python

# -*- coding: gbk -*-

#============================================================

# JPGA25.PY                    -- by Dr. ZhuoQing 2020-01-26

#

# Note:

#============================================================


from head import *


from tsmodule.tshardware import *


def jpgasetbitoutin(bit):

    ccloadSerial.write(b'varistorsetbitoutin %xr'%bit)


def jpgagetstatus():

    if ccloadSerial.inWaiting() > 0:

        ccloadSerial.read(ccloadSerial.inWaiting())


    ccloadSerial.write(b'varistorgetstatusr')


    for i in range(100):

        if ccloadSerial.inWaiting() > 0: break

        time.sleep(0.01)


    time.sleep(0.01)


    return ccloadSerial.read(ccloadSerial.inWaiting())


def jpgasetbitvalue(bit):

    ccloadSerial.write(b'varistorsetbitvalue %xr'%bit)



def jpgarun1(step, speed=20):

    ccloadSerial.write(b'varistorcount1 %d %dr'%(step, speed))


def jpgarun2(step, speed=20):

    ccloadSerial.write(b'varistorcount2 %d %dr'%(step, speed))


测试结果

通过以下代码,使得变阻器变动,通过DM3068数字万用表测量电阻。 变阻器的引脚三个,从右到左,分别是滑动端,固定端1,固定端2.


指令中,如果RUN的参数为正,则滑动端与固定端2的电阻减少,与固定端1的电阻增加。 移动总步数大约为4500。


由于使用ZIGBEE进行命令控制,其中会出现丢失命令数据包的情况,所以在移动过程中电阻的变化会出现暂留的情况。

pIYBAF_jCneAETVtAAA5-ybzhQ0630.png?imageView2/2/w/1000

下面是对于第二个电阻测试的结果。每移动一次,测量滑动端至固定端2 之间的电阻。

o4YBAF_jCoqAa1LoAAAyZy2LZe4498.png?imageView2/2/w/1000


#!/usr/local/bin/python

# -*- coding: gbk -*-

#============================================================

# EXE1.PY                      -- by Dr. ZhuoQing 2020-01-26

#

# Note:

#============================================================

from headm import *

from tsmodule.tsvisa import *

dm3068open()

from jpga25 import *

#------------------------------------------------------------

jpgarun2(5500, 50)


#exit()

time.sleep(2)

#------------------------------------------------------------

resdim = []

pltgif = PlotGIF()

for i in range(80):

    jpgarun2(-50, 20)

    time.sleep(.5)

    res = dm3068res()


    printff(i, res)

    resdim.append(res)


    plt.clf()

    plt.plot(resdim)

    plt.xlabel('Sample')

    plt.ylabel('Resistor(ohm)')

    plt.pause(.01)


    pltgif.append(plt)


pltgif.save(r'd:tempres.gif?imageView2/2/w/1000', 50, 3000)


jpgarun2(5500, 50)


关键字:控制器  控制命令 引用地址:机械变阻器的控制器设计原理及控制命令

上一篇:如何利用外部中断和定时器测量信号频率?
下一篇:基于LabVIEW软件设计的调试平台在工业控制中的应用

推荐阅读最新更新时间:2026-03-21 14:40

迅为imx6ull开发板使用c语言调用shell命令控制led灯
用命令来控制 led 灯没有感觉,那可以使用程序来控制,让程序帮我们输入这些命令,我们可以使用system 函数来完成。 头文件:#include 格式:system(要执行的命令) 代码实现: #include void main(void) { system(“echo none /sys/class/leds/sys-led/trigger”);//设置触发方式 while(1) { system(“echo 1 /sys/class/leds/sys-led/brightness”);//点亮 led2 sleep(5); system(“echo 0 /sys/class/leds/sys-led/brightne
[单片机]
迅为imx6ull开发板使用c语言调用shell<font color='red'>命令</font><font color='red'>控制</font>led灯
逆变器运行命令使用方式,可以远程控制
逆变电源运行除了频率信号外,还有两个基本条件,就是逆变电源的运行信号。 逆变器运行命令来源中常用方法 逆变电源的操作命令包括启动、停止、正反转、正转和反转、复位等。 与电力逆变电源的预速率设定模式一样,逆变电源的运行命令模式也有三种:操作员键盘控制、终端控制和通信控制。这些操作命令模式必须根据实际需要来选择和设置,并且也可以根据功能在彼此之间切换。 1.操作面板控制 操作员键盘控制是逆变电源最简单的操作命令模式。用户可以通过逆变电源操作键盘上的运行键、停止/复位键、正转/反转/点动键直接控制逆变电源的运行。 操作器的键盘控制最大的特点是方便实用,同时还可以起到报警和故障的作用,可以告知用户逆变电源是否在运行、故障或报警,用户无
[嵌入式]
2025年1-10月座舱域控制器装车近1000万 弗迪以24%的市占率领跑市场
2025年国内座舱域控制器市场迎来爆发式增长。佐思汽研数据显示,1-10月前装标配装配量接近1000万辆,同比增长57.5%;装配率达到53.1%,较上年同期的35.4%相比,增加17.7个百分点。 2024-2025国内乘用车座舱域控制器标配装配率月度走势 来源:佐思汽研智舱数据库 从品牌维度看,比亚迪座舱域控制器装配量遥遥领先,2025年1-10月突破200万辆,市占率达到20.6%。其装配量TOP5 车型依次为秦PLUS、宋PLUS新能源、秦L、海豹06DM-i、宋Pro新能源,其中秦PLUS以20万辆的成绩,占到总装配量的10%。 特斯拉位列第二,2025年1-10月座舱域控制器标配装配
[汽车电子]
英飞凌 EZ-USB™ FX10控制器赋能3M™ USB3 Vision 相机,全面提升其5米无源金属线缆的性能表现
英飞凌 EZ-USB™ FX10控制器赋能3M™ USB3 Vision 相机,全面提升其5米无源金属线缆的性能表现 【2026年1月6日, 德国慕尼黑讯】 全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司与3M 公司携手推出适用于 USB3 Vision 工业相机的全新3M™ 5米无源金属工业相机线缆组件1U30P-TC 系列。 该产品专为机器视觉(MV)相机开发,最高数据传输速率达10Gbps。在现代工业自动化系统中,MV 系统对于控制生产流程、质量、产量以及检测制造偏差至关重要。全新3M™ USB3 Vision 相机5米无源工业线缆融合了英飞凌 EZ-USB™ FX10外设控制器技术与3M 在 MV 线缆领域的
[工业控制]
英飞凌 EZ-USB™ FX10<font color='red'>控制器</font>赋能3M™ USB3 Vision 相机,全面提升其5米无源金属线缆的性能表现
Microchip扩展maXTouch® M1触摸屏控制器系列 以覆盖更广泛的显示屏尺寸
1月27日,Microchip Technology(微芯科技)宣布扩展其maXTouch® M1系列触摸屏控制器产品线,为更广泛的汽车显示屏带来可靠安全的触摸检测功能,涵盖从最大42英寸的自由曲面宽屏显示器到2至5英寸的小型紧凑型屏幕。ATMXT3072M1-HC和ATMXT288M1产品旨在与各种尺寸的显示器兼容,并支持有机发光二极管(OLED)和微型LED等新兴技术。 图片来源: Microchip M1控制器采用Microchip专有的智能互触(Smart Mutual)技术,并结合先进的算法,与上一代产品相比,触摸信噪比(SNR)最高可提升15 dB。智能互触技术旨在即使在集成触摸传感器承受高电容负载和显著显示
[汽车电子]
Microchip扩展maXTouch® M1触摸屏<font color='red'>控制器</font>系列 以覆盖更广泛的显示屏尺寸
Diodes推出高效多相SPI升压控制器 助力实现稳健、灵活的汽车前大灯系统
据外媒报道,美国半导体制造商Diodes Incorporated(Diodes)推出了AL8859Q,进一步强化其电源管理产品组合。这款符合汽车级标准的多相SPI升压控制器旨在满足先进前大灯控制单元的功率密度、效率、电磁干扰(EMI)和功能安全要求。该器件可作为自适应前照明系统——包括远光灯、近光灯、日间行车灯(DRL)、转向灯、雾灯和弯道辅助照明灯——的主要恒压预级,集成于一个照明模块中。AL8859Q还可应用于更广泛的汽车电源系统。 图片来源:Diodes AL8859Q集成了电流模式多相升压架构,具有4.5V至60V的宽输入电压范围,可在标准的5V、12V、24V和48V电源轨上工作。它还通过可编程寄存器提高了负
[汽车电子]
Diodes推出高效多相SPI升压<font color='red'>控制器</font> 助力实现稳健、灵活的汽车前大灯系统
英飞凌推出基于PSOC™ Control C3微控制器的ModusToolbox™电源套件
英飞凌推出基于PSOC™ Control C3微控制器的ModusToolbox™电源套件,助力电源转换解决方案的加速开发 【2026年3月16日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司推出ModusToolbox™电源套件。 该套件是一个基于PSOC™ Control C3微控制器(MCU)的数字电源转换设计综合软件平台,包含易用的电源转换库、图形化用户界面(GUI)、可视化工具及应用示例。 所有功能均集成于ModusToolbox™生态系统,可为工程师和开发人员带来简便而全面的评估体验。这款套件适用于数据中心、电信、工业开关模式电源(SMPS)、电动汽车充电、机器人及光伏(PV)等应
[工业控制]
英飞凌推出基于PSOC™ Control C3微<font color='red'>控制器</font>的ModusToolbox™电源套件
六大全新产品系列推出,MCX A微控制器家族迎来创新
MCX A系列即将迎来重大升级。恩智浦推出6个全新的MCX A产品系列,此举将使MCX A产品组合的规模扩大一倍,并为可扩展、智能且高能效的微控制器树立新标杆。这次扩展不仅仅是产品数量的增加,更解锁了新的应用领域、加速创新,并向开发人员提供他们所需的灵活性和性能,以便在当今竞争激烈的市场中蓬勃发展。 扩展后的MCX A系列对开发人员意味着什么 MCX A系列一直是MCX产品组合的基石,在低功耗、高性能和智能外设之间实现了独特的平衡。通过此次发布,我们不仅增加了更多型号,还引入了新的架构、更丰富的模拟集成、更高级的安全功能以及更广泛的封装和存储选项。这意味着更多的选择、更强的可扩展性以及更多解决棘手设计难题的方法。 这
[单片机]
六大全新产品系列推出,MCX A微<font color='red'>控制器</font>家族迎来创新
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved