Arduino中for循环内analogRead无法达到循环外的速度问题
Arduino电机调速问题
硬件信息
使用的Arduino型号:一款亚马逊在售的兼容板(商品编码B01D0OI90U)
代码截图

问题详情
我的代码中,第8-11行负责向电机驱动器发送脉冲,脉冲间隔由第11行的变量V决定。电机先循环L次脉冲移动到指定位置,再通过第13-17行反转方向回到原点——其中L是电机的运行行程,V是运行速度。
V(后续L也计划采用同样方式)是从电位器读取的值(对应代码第6行)。为了实现速度实时调节,我需要将电位器读取代码移入循环,避免每次都要等整个循环结束才能改变速度。但移入后,电机的最大速度大幅降低:原本脉冲间隔能达到2.6微秒,现在却只有约200微秒,而把读取代码放在循环外时,速度能正常达到更高水平,我不清楚原因所在。
已尝试的操作
- 将第6行的电位器读取代码移入循环,导致最大速度暴跌;
- 将这段代码移至
void setup中,电机完全无法正常工作; - 将代码移至
void setup之前,速度固定在约222微秒,无法调节。
电机本身显然能达到更高速度,问题应该出在我不熟悉的代码/语言特性上,作为新手毫无头绪,恳请各位解答。
内容的提问来源于stack exchange,提问作者amidar
相关产品推荐
相关产品推荐

