本帖最后由 xiangzichen 于 2024-4-25 09:22 编辑
再贴几个功能说明,资源列表:
8个数码管16个IO(小数点用来显示输入,输出状态,外接了7个指示灯,自身的小数点没用),
4个输入,
2个输出,
一个步进电机接口(2个IO),
5个按键用3个IO实现
1个蜂鸣器
一个通信串口(2个IO)
用的LQFP32,30个引脚,资源榨得干干净净.
串口方面:
上位机软件:
指令说明:
默认波特率:115200,n,8,1 本文中int为16位,long为32位
1.定速运行,不指定终点
正向:0x55,0xaa,0x06,0x09,speed,0x00,0x00,0x00,0xc3;
负向:0x55,0xaa,0x06,0x0A,speed,0x00,0x00,0x00,0xc3;
speed=速度(范围:20-50000)
比如,需要控制器以2400HZ的速度朝正向运行,则指令是:
十进制:2400
16进制:0x0960
0x55,0xaa,0x06,0x09,0x60,0x09,0x00,0x00,0x00,0xc3;
2.定速运行,指定终点
绝对运动:0x55,0xaa,0x07,speed,steps,0xc3;
增量运动:0x55,0xaa,0x08,speed,steps,0xc3;
设定坐标:0x55,0xaa,0x09,speed,steps,0xc3;(电机不动作)
speed=速度(2个字节,20-40000)
steps=距离(4个字节,支持负值)
3.停止(定速运行,回机械零)
0x55,0xaa,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xc3;
4.回机械零
朝正向:0x55,0xaa,0x0b,0x09,speed,0x00,0x00,0x00,0xc3
朝负向:0x55,0xaa,0x0b,0x0a,speed,0x00,0x00,0x00,0xc3
回零具体动作可参考CL-01A标准版说明书.
5.取状态
0x55,0xaa,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xc3;
取当前的控制的状态,返回一共8个字节
第1-4字节,当前坐标,long型,高位在前,低位在后
第5-6字节,当前速度值
speed=(buff[4]<<8)+buff[5],此值计算结果为设定速度.
第7字节表示输入状态(0,表示输入有效,1表示输入无效)
bit2:正限
bit3:零点
bit4:负限
bit5:入四
第8字节表示当前的工作状态
0x00:上电复位
0x01:定量
0x02:未定义
0x04:手动
0x08:回零
0x10:未定义
0x20:停止
6.输出
0x55,0xaa,0x0d,port,status,0x00,0x00,0x00,0x00,0xc3
port取值为1或者2,代表输出口1和输出口2
status取值为0或者非0,0代表关闭输出,1代表打开输出.
7.设定升降速
0x55,0xaa,0x0a,rise,down,0x00,0x00,0x00,0x00,0xc3
动态修改控制器升降速,但此修改并不保存,手动操作控制器会自动
恢复为RS参数所设定值.如果修改后,只用串口操作,不会恢复.
上面数据中,speed 为unsigned int型(16位),steps为long型(32位)
参数操作说明
按OK键,AUTO灯亮,再按左键进入参数,具体操作参考01A标准说明书
1 JF 启动频率
2 RS 升降系数
3 ZF 回零速度
4 SPD 手动速度(直接操作控制器面板时刻电机速度)
5 HL 控制器面板上下键点一次的脉冲数
|