首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >接收传感器输入移动步进电机

接收传感器输入移动步进电机
EN

Stack Overflow用户
提问于 2015-10-19 03:12:03
回答 1查看 1.2K关注 0票数 0

我试图移动一个步进电机从输入的两个红外火焰探测器在我的阿杜诺。现在,我的代码看起来好像理论上应该工作,但出于某种原因,它没有正确工作。我认为这可能只是一个简单的语法错误,但我确信Arduino正在注册来自红外传感器的信号,正如串行监视器所显示的那样。

代码语言:javascript
运行
复制
 #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");
  }
} 
EN

回答 1

Stack Overflow用户

发布于 2015-10-19 03:37:38

虽然我不熟悉步进电机,但在以下方面似乎出现了语法错误:

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"); }

我想你是想这么做的:

如果(digitalRead(IRDetector1Output) == HIGH && digitalRead(IRDetector2Output) == HIGH) //当两个红外探测器显示车辆中心时,不要移动跟踪挂载{Serial.print(“跟踪上升:中心”);RoboticArm.setSpeed(0);//RPM在步进电机RoboticArm.step(4096)上设置为零;//步进电机Serial.print中的步骤数(“跟踪上升:中心”);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33206064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档