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_Arduino - Fatal编程技术网

接收来自传感器的输入以移动步进电机Arduino

接收来自传感器的输入以移动步进电机Arduino,arduino,Arduino,我正试图从我的Arduino上的两个红外火焰探测器的输入端移动一个步进电机。现在,我的代码似乎理论上应该可以工作,但由于某些原因,它不能正常工作。我认为这可能只是一个简单的语法错误,但我确信Arduino正在记录串行监视器显示的来自红外传感器的信号 #include <Stepper.h> //Starts the stepper library Stepper RoboticArm(4096, 5, 6, 7, 8); //Sets the number of steps

我正试图从我的Arduino上的两个红外火焰探测器的输入端移动一个步进电机。现在,我的代码似乎理论上应该可以工作,但由于某些原因,它不能正常工作。我认为这可能只是一个简单的语法错误,但我确信Arduino正在记录串行监视器显示的来自红外传感器的信号

 #include <Stepper.h>  //Starts the stepper library

Stepper RoboticArm(4096, 5, 6, 7, 8);  //Sets the number of steps and the   interface connection ports

int IRDetector1Output = 10;  //IR Detector 1 set to Digital Pin 3
int IRDetector2Output = 11;  //IR Detector 2 set to Digital Pin 4




void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);  //Starting the monitor for computer telemetry scripts

  pinMode(IRDetector1Output, INPUT);
  pinMode(IRDetector2Output, INPUT);


}

void loop() {
  // put your main code here, to run repeatedly:
      if (digitalRead(IRDetector1Output) == HIGH && digitalRead    (IRDetector2Output) == HIGH);  //When both IR detectors show vehicle centered, do not move tracking mount
  Serial.print("TRACKING ASCENT: CENTER");
  {
  RoboticArm.setSpeed(0);  //RPM set to zero on stepper motor
  RoboticArm.step(4096);  //Number of steps in stepper motor
  Serial.print("TRACKING ASCENT: CENTER");
  }
  if (digitalRead(IRDetector1Output) == HIGH);
  {
  RoboticArm.setSpeed(3);  //RPM set to 3 upwards to track vehicle
  RoboticArm.step(4096);  //Number of steps in stepper motor
  Serial.print("TRACKING ASCENT: UPWARDS COURSE CORRECTION");
  }
  if (digitalRead(IRDetector1Output) == LOW);
  {
  RoboticArm.setSpeed(-3);  //RPM set to -3 downwards to track vehicle
  RoboticArm.step(4096);  //Number of steps in stepper motor
  Serial.print("TRACKING ASCENT: DOWNWARDS COURSE CORRECTION");
  }
} 
#include//启动步进程序库
步进机器人手臂(4096,5,6,7,8)//设置步骤数和接口连接端口
int IrDetector1输出=10//红外探测器1设置为数字引脚3
int IrDetector2输出=11//红外探测器2设置为数字引脚4
无效设置(){
//将安装代码放在此处,以便运行一次:
Serial.begin(9600);//为计算机遥测脚本启动监视器
引脚模式(IrDetector1输出、输入);
引脚模式(IrDetector2输出、输入);
}
void循环(){
//将主代码放在此处,以便重复运行:
如果(digitalRead(IrDetector1输出)=高&&digitalRead(IrDetector2输出)=高);//当两个红外探测器显示车辆居中时,请勿移动跟踪支架
串行打印(“跟踪上升:中心”);
{
RoboticArm.setSpeed(0);//步进电机的转速设置为零
机器人手臂。步骤(4096);//步进电机的步数
串行打印(“跟踪上升:中心”);
}
如果(数字读取(IrDetector1输出)=高);
{
机器人手臂。设置速度(3);//将转速设置为3向上以跟踪车辆
机器人手臂。步骤(4096);//步进电机的步数
串行打印(“跟踪上升:向上航向修正”);
}
if(digitalRead(IrDetector1输出)=低电平);
{
机器人手臂。设置速度(-3);//转速设置为-3向下跟踪车辆
机器人手臂。步骤(4096);//步进电机的步数
串行打印(“跟踪上升:向下航向修正”);
}
} 

虽然我不熟悉步进电机,但以下位置似乎存在语法错误:

我想你是有意这么做的:


(您说过要在花括号外写入串行端口。)

是的,我看到了这个错误,我想这是我复制和粘贴它时的错误,格式被弄乱了。我确实解决了这个问题并检查了原始代码,但它仍然无法正确注册。if语句末尾的分号表示if中没有执行任何操作。尝试删除它们。我确实尝试过,但仍然遇到相同的问题。探测器确实在采集火焰,但Arduino只是没有发挥应有的功能。我做了检查,以确保电机与驱动器一起正常工作,接线正确。
    if (digitalRead(IRDetector1Output) == HIGH && digitalRead    (IRDetector2Output) == HIGH);  //When both IR detectors show vehicle centered, do not move tracking mount
  Serial.print("TRACKING ASCENT: CENTER");
  {
  RoboticArm.setSpeed(0);  //RPM set to zero on stepper motor
  RoboticArm.step(4096);  //Number of steps in stepper motor
  Serial.print("TRACKING ASCENT: CENTER");
  }
if (digitalRead(IRDetector1Output) == HIGH && digitalRead(IRDetector2Output) == HIGH)  //When both IR detectors show vehicle centered, do not move tracking mount
  {
  Serial.print("TRACKING ASCENT: CENTER");
  RoboticArm.setSpeed(0);  //RPM set to zero on stepper motor
  RoboticArm.step(4096);  //Number of steps in stepper motor
  Serial.print("TRACKING ASCENT: CENTER");
  }