我希望能够使(连续运动)伺服电机旋转镜头/滤镜/偏振器,并实时为其提供强度值,然后在达到最小值时停止,然后一次又一次地这样做。
当强度最小时,我已经让它停止,但我似乎无法将它带到下一步。我需要它等待(或延迟)一小段时间,检查强度是否真的低于阈值。如果不是,那么我希望它慢慢地向后旋转,直到它达到最小值,等待然后重复,但方向相反。
#include<Servo.h>
Servo myServo;
const int resistPin = A0;
const int servPin = 9;
int intenState = analogRead(resistPin);
void setup() {
Serial.begin(9600);
pinMode(servPin, OUTPUT);
pinMode(resistPin, INPUT);
myServo.attach(9);
}
void loop(){
if(analogRead(A0) > 500){
myServo.write(120);
}else if(analogRead(A0) <= 500){
myServo.write(94);
}
}
这是我目前必须停止伺服的代码,但是,由于需要准确性以及读取光强度和向伺服电机发送命令之间存在轻微延迟,我需要它能够重新检查该值,然后相应地重新调整,直到它尽可能准确。(显然我知道强度值会根据随机噪声/波动而变化,这就是为什么最小强度将<=而不是直线上升==)。