c++ 如何让伺服电机旋转得更快?[closed]

mnemlml8  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(128)

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
12小时前关门了。
Improve this question
嘿,所以我是一个真正的noobie在Arduino,我得到了一个旋转编码器的旋转来控制伺服电机的旋转。然而,我希望它旋转得更快,因为它需要很长的时间来旋转,并由于该项目的性质,它的更方便,如果我能得到它去更快。有什么办法得到固定?
代码如下:

#include <Servo.h>
#define CLK 3
#define DT 2
Servo servo;
int counter = 0;
int currentStateCLK;
int lastStateCLK;
void setup() 
{
  pinMode(CLK,INPUT);
  pinMode(DT,INPUT);
  // Setup Serial Monitor
  Serial.begin(9600);

  servo.attach(5);
  servo.write(counter);

  lastStateCLK = digitalRead(CLK);
}
void loop()
 {
  
  currentStateCLK = digitalRead(CLK);

  if (currentStateCLK != lastStateCLK  && currentStateCLK == 1){
    
    if (digitalRead(DT) != currentStateCLK) {
      counter --;
      if (counter<0)
        counter=0;
    } else {
      // Está a rodar na direção do relógio
      counter ++;
      if (counter>179)
        counter=179;
    }
    
    servo.write(counter);
    
    Serial.print("Position: ");
    Serial.println(counter);
  }
  
  lastStateCLK = currentStateCLK;
}
uurity8g

uurity8g1#

如果伺服变快...

if (counter>18)  counter=18;
}
servo.write(counter*10);

...查找非阻塞伺服库和/或基于中断的编码器库。当前,您将伺服移动一度,然后等待编码器移动。

相关问题