Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 如何让伺服电机做一些事情,让uno检查一个值,然后根据更新的值做一些事情?_Arduino_Arduino Uno_Servo - Fatal编程技术网

Arduino 如何让伺服电机做一些事情,让uno检查一个值,然后根据更新的值做一些事情?

Arduino 如何让伺服电机做一些事情,让uno检查一个值,然后根据更新的值做一些事情?,arduino,arduino-uno,servo,Arduino,Arduino Uno,Servo,我希望能够使一个(连续运动)伺服电机旋转一个镜头/滤光片/偏振器,并让它被实时输入一个强度值,然后在达到最小值后停止,然后一次又一次地这样做 当强度达到最小值时,我已经让它停下来了,但我似乎不能把它带到下一步。我需要它等待(或延迟)一小段时间,检查强度是否真的低于阈值。如果不是,那么我希望它慢慢地旋转回来,直到它达到最小值,等待,然后重复,但方向相反 #include<Servo.h> Servo myServo; const int resistPin = A0; const

我希望能够使一个(连续运动)伺服电机旋转一个镜头/滤光片/偏振器,并让它被实时输入一个强度值,然后在达到最小值后停止,然后一次又一次地这样做

当强度达到最小值时,我已经让它停下来了,但我似乎不能把它带到下一步。我需要它等待(或延迟)一小段时间,检查强度是否真的低于阈值。如果不是,那么我希望它慢慢地旋转回来,直到它达到最小值,等待,然后重复,但方向相反

#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);
    }
}
#包括
伺服myServo;
常数int电阻pin=A0;
常数int servPin=9;
int INTENTSTATE=analogRead(电阻引脚);
无效设置(){
Serial.begin(9600);
pinMode(servPin,输出);
引脚模式(电阻引脚,输入);
附件(9);
}
void循环(){
如果(读数(A0)>500){
myServo.write(120);
}否则,如果(A0)正常,我理解。
在Arduino中,可以使用Delay命令使其等待。
在移动之前,取5个值的平均值。
参考:
示例:延迟(1000)//1秒延迟

#include<Servo.h>

Servo myServo;

const int resistPin = A0;
const int servPin = 9;
int intenState = analogRead(resistPin);
int xa=0;

void setup()
{
    Serial.begin(9600);
    pinMode(servPin, OUTPUT);
    pinMode(resistPin, INPUT);
    myServo.attach(9);
}

void loop()
{
  for (int i=0;i<5;i++)
  {
     xa+=analogRead(A0);
     delay(1000);
  }

  xa=xa/3;  //averaging the 3 collected values at 1 seconde delay each.
  //now its time to compare.

  if(xa > 500)
  {
        myServo.write(120);
  }

  else if(xa <= 500)
  {
        myServo.write(94);
  }

}
#包括
伺服myServo;
常数int电阻pin=A0;
常数int servPin=9;
int INTENTSTATE=analogRead(电阻引脚);
int-xa=0;
无效设置()
{
Serial.begin(9600);
pinMode(servPin,输出);
引脚模式(电阻引脚,输入);
附件(9);
}
void循环()
{
对于(int i=0;i 500)
{
myServo.write(120);
}
else if(xa