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

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

    关注

    112

    文章

    16073

    浏览量

    176979
  • 场效应管
    +关注

    关注

    46

    文章

    1140

    浏览量

    63707
  • 数字电位器
    +关注

    关注

    4

    文章

    266

    浏览量

    83135
  • 变阻器
    +关注

    关注

    0

    文章

    93

    浏览量

    16371
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    EtherCAT运动控制器在SCARA和码垛机械手中的应用

    以XPLC104HR控制器为例,介绍正运动SCARA和码垛机械手的应用。
    的头像 发表于 08-28 10:10 227次阅读
    EtherCAT运动<b class='flag-5'>控制器</b>在SCARA和码垛<b class='flag-5'>机械</b>手中的应用

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

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

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

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

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

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

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

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

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

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

    运动控制器的代码运行顺序是什么

    运动控制器是一种用于控制机械运动的设备,它可以接收输入信号并根据这些信号控制机械的运动。运动控制器
    的头像 发表于 06-13 09:25 388次阅读

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

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

    运动控制器的主要功能是什么?

    运动控制器是一种用于控制机械运动的设备,它在工业自动化、机器人技术、航空航天等领域有着广泛的应用。运动控制器的主要功能包括以下几个方面: 运动轨迹规划:运动
    的头像 发表于 06-13 09:21 640次阅读

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

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

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

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

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

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

    国产自主可控工程机械控制器

    随着科技的飞速发展,工程机械控制器在工程中的作用日益凸显。而今,硕博电子的工程机械控制器已成为众多头部企业的信赖之选。这背后,究竟隐藏着哪些不为人知的秘密呢?1、更高的产品性价比硕博电
    的头像 发表于 02-01 11:24 554次阅读
    国产自主可控工程<b class='flag-5'>机械</b><b class='flag-5'>控制器</b>