我试图移动一个步进电机从输入的两个红外火焰探测器在我的阿杜诺。现在,我的代码看起来好像理论上应该工作,但出于某种原因,它没有正确工作。我认为这可能只是一个简单的语法错误,但我确信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");
}
} 发布于 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中的步骤数(“跟踪上升:中心”);
(您说过要写到花括号外的串行端口。)
https://stackoverflow.com/questions/33206064
复制相似问题