|
发表于 2011-11-20 17:48:28
|
显示全部楼层
回复【4楼】myqiang1990 小松鼠
还想请教大家,我现在细分加速都弄好了,我最弄不明白的是,如何用dmx512控台控制电机的加速,比如说控台上的滑杆,因为滑杆数据是连续从0-255之间变化的,那么我怎么用0-255变化的数据来加减速电机?有人说是以单片机两次检测到数据的数据差来加速,但是我觉得没那么简单,因为控台发数据和单片机接收数据都很快,你滑杆从0-255变化,单片机绝对能检测到间隔是1的数据变化,不管你滑多快,我的意思是说,你滑的速度觉得没有控台发数据和单片机接收数据那么快,不是说你用很快的速度从0-255滑动,单片就只能收到0和255这两个数据.....
我的问题归根结底是:控台数据是连续变化,而且发送和接收都很快....如果是以角度差来加速的话,我觉得不完整,因为不管怎么样,单片机绝对能接收到0-1-2-3-4-5-6....255这样的数据,不管你滑多快,单片机不可能只接收到0和255着两个数据,那么如果我们程......
-----------------------------------------------------------------------
你要把你整个电机的行程和控台的0--255对应起来就行了
比如当前电机的位置在零原点位置时,那对应的控台数值就是0,当你的电机是在终点位置时对应的控台值就是255
也就是说控台值每一个数值都对应着电机的一个绝对位置
具体的实现方法就是用算法将电机的行程和控台的0---255绑定成对应关系
至于你说的控台推得快电机就跑得快那是要实时计算每次接受到控台的值后跟当前的电机位置比较计算出要跑的行程,然后根据行程来赋予电机速度,行程远速度就快,行程短速度就慢,即也就是将速度与行程对应起来
这样不管单片机每次接收的数值是多少,程序都可以计算出当前的电机位置是多少,目标终点是在哪个位置,速度要多少 |
|