|
|
今天终於收到了车架电机及驱动了, 由於没有安装的工具, 暂时先测试有关的库.
电机测试正常, 码盘是用这里的 encoder 读法去做
http://playground.arduino.cc/Main/RotaryEncoders#.UxqAlXkUFfs
简单而言, 是用 D2, D3 的 interrupt 配合 CHANGE event.
但出来的数字很奇怪, D2 的数字几乎是 D3 的三倍.
初时以为是电机的分别, 就把电机换转了, 同样 D2 大约是 D3 的三倍.
因为 interrupt 执行时会封锁其他 interrupt, 为免有互相影响, 尝试只接一个码盘分开测试.
同样, 只要是接到 D2, 不论用那一个电机, 结果都会比接 D3 的要多很多.
D2, D3 的测量是同一个程式, 只改了针脚及计数器, 完全没有分别. 但出来的读数就是不同.
由於那个码盘号称一圈可发出 4200个AB相脉冲 , 不知会否因太频密而有影响.
但同样的情况下, D2 及 D3 的读数应该是一样的.
请问 Arduino 的 interrupt 是否有极限? D2 跟 D3 会有分别吗?
有没有朋友用过 一圈可发出 4200个AB相脉冲 的光栅测速圈, 你们的读数正常吗?
附上測試用的程式作參考
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|