0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:csdn 作者:卓晴 2021-01-01 09:44 次阅读

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

■ 说明

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

拆解前的机械变阻电位器

01设计原理

机械变阻器

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

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

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

pIYBAF_jCimAHYUQAAU-oj2aAGA816.png

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

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

控制命令

控制命令的说明文档:
DesignCenter\MyResearch\202\机械可变电阻

控制命令在软件SerialText.C中表示:如下面代码所示:
//------------------------------------------------------------------------------
void SerialDebugProcessBuffer(void) {
	SerialDebugBuffer2Argument();
	if(g_ucSDANumber == 0) return;

	if(strcmp("hello",				(char *)STD_ARG[0]) == 0)
		printf("%s is ready !\r\n", 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 %d\r\n", 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 %x\r'%bit)

def jpgagetstatus():
    if ccloadSerial.inWaiting() > 0:
        ccloadSerial.read(ccloadSerial.inWaiting())

    ccloadSerial.write(b'varistorgetstatus\r')

    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 %x\r'%bit)


def jpgarun1(step, speed=20):
    ccloadSerial.write(b'varistorcount1 %d %d\r'%(step, speed))

def jpgarun2(step, speed=20):
    ccloadSerial.write(b'varistorcount2 %d %d\r'%(step, speed))

测试结果

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

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

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

pIYBAF_jCneAETVtAAA5-ybzhQ0630.png

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

o4YBAF_jCoqAa1LoAAAyZy2LZe4498.png

#!/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:\temp\res.gif', 50, 3000)

jpgarun2(5500, 50)

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    113

    文章

    16573

    浏览量

    180414
  • 场效应管
    +关注

    关注

    47

    文章

    1179

    浏览量

    64809
  • 数字电位器
    +关注

    关注

    4

    文章

    267

    浏览量

    83464
  • 变阻器
    +关注

    关注

    0

    文章

    95

    浏览量

    16528
收藏 人收藏

    评论

    相关推荐

    Y1620工程机械主机控制器 车载智能控制器 CAN总线 #工程机械控制器 #整车控制器 #车载控制器

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2025年02月10日 15:32:21

    UCD90320定序和系统健康控制器PMBus命令参考

    电子发烧友网站提供《UCD90320定序和系统健康控制器PMBus命令参考.pdf》资料免费下载
    发表于 11-29 15:53 0次下载
    UCD90320定序<b class='flag-5'>器</b>和系统健康<b class='flag-5'>控制器</b>PMBus<b class='flag-5'>命令</b>参考

    滑动变阻器有哪些分类?

    是一种基于数字信号处理技术的变阻器,可以实现对电阻值的精确调节和快速切换。数字变阻器通常采用微处理或数字信号处理作为核心控制器,通过改变
    发表于 11-07 10:08

    电机控制器原理是什么?类型有哪些?

    电机控制器是用于控制电机运行的设备,其主要功能是将电能转换为机械能,同时根据需要调节电机的速度、转矩和方向。电机控制器的原理主要基于电力电子技术、自动
    的头像 发表于 10-21 13:48 687次阅读

    车载智能控制器 工程机械控制器 CAN总线控制器 硕博电子 #控制器 #can总线 #国产化替代

    控制器总线
    长沙硕博电子科技股份有限公司
    发布于 :2024年08月29日 10:43:57

    移动工程机械控制器,车载智能控制器,硕博电子

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2024年08月08日 10:18:12

    机械压力控制器使用与调整方法

    机械压力控制器是一种广泛应用于工业领域,用于监测和控制压力的设备。它通过机械结构实现对压力的测量和控制,具有结构简单、可靠性高、维护方便等优
    的头像 发表于 06-19 11:00 1315次阅读

    机械式压力控制器的基本工作原理

    机械式压力控制器是一种广泛应用于工业自动化控制领域的设备,其主要功能是监测和控制压力系统的压力值。本文将详细介绍机械式压力
    的头像 发表于 06-19 10:57 1367次阅读

    移动机械控制器 车载智能控制器 CAN总线控制器

    控制器机械
    长沙硕博电子科技股份有限公司
    发布于 :2024年06月13日 17:02:51

    控制器与运动控制器的区别

    随着现代工业技术的快速发展,控制技术在各种机械设备中扮演着越来越重要的角色。微控制器和运动控制器作为两种常见的控制设备,在各自的领域发挥着重
    的头像 发表于 06-13 14:52 811次阅读

    运动控制器控制形式有哪些

    运动控制器是现代工业自动化和机器人技术中的核心组件,负责对机械系统进行精确的控制和调度。运动控制器控制形式多种多样,每种形式都有其特定的应
    的头像 发表于 06-13 09:23 870次阅读

    PLC控制器是什么?PLC控制器的基本结构介绍

    PLC控制器主要是指数字运算操作电子系统的可编程逻辑控制器,用于控制机械的生产过程。也是公共有限公司、电源线车等的名称缩写。   PLC 的英文全称是:Programmable log
    的头像 发表于 06-12 08:46 1365次阅读

    PID控制器与PWM控制器的区别

    在工业自动化和控制系统设计中,PID控制器(比例-积分-微分控制器)和PWM控制器(脉冲宽度调制控制器)是两种常用的
    的头像 发表于 06-05 18:25 3891次阅读

    EtherCAT运动控制器Delta机械手应用

    以正运动ZMC406R运动控制器为例,讲解Delta机械手运动控制应用开发。
    的头像 发表于 05-09 10:47 1838次阅读
    EtherCAT运动<b class='flag-5'>控制器</b>Delta<b class='flag-5'>机械</b>手应用