【发布时间】:2014-06-11 00:03:28
【问题描述】:
我正在尝试使用 Simple-H HV Motor Shield 和 H 桥连接来控制单个直流电机。我需要使用串行监视器控制速度和方向(例如“f 220”表示以 220 的速度前进)。这是我的代码:
M1 使电机前进,M2 使电机后退。
这里是错误:没有匹配的函数调用'HardwareSerial::print()'
我不知道这是否是正确的编码方式。我只是想在编程方面得到一些帮助,因为我是 Arduino 编码的新手。
const int PWM1 = 2; //PA - PWM A (M1)
const int PWM2 = 3; //PB - PWM B (M2)
const int MotorEnable = 4; //EA - Enable A
const int TestLED = 13; //LED that tests whether going forward or back. LED lights up = forward, //non-lit = reverse
void setup() {
pinMode(PWM1, OUTPUT);
pinMode(PWM2, OUTPUT);
Serial.begin(9600);
}
void loop() {
int VariableMove = Serial.print(); // *** ERROR is here! ***
int speed = Serial.parseInt();
if (Serial.available() > 0) {
if (VariableMove = "f" && speed >= 0 && speed <= 255) {
digitalWrite(MotorEnable, HIGH);
digitalWrite(PWM1, HIGH);
digitalWrite(PWM2, LOW);
Serial.println("Going Forward");
analogWrite(PWM1, speed);
}
if (VariableMove = "r" && speed >= 0 && speed <= 255) {
digitalWrite(MotorEnable, HIGH);
digitalWrite(PWM1, LOW);
digitalWrite(PWM2, HIGH);
Serial.println("Coming Back");
analogWrite(PWM2, speed);
}
}
}
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。
-
我尝试为串行监视器的输入设置一个变量。我试图将所说的内容存储在监视器中,以便电机继续运行,直到给出另一个命令。
-
'这是错误:没有匹配函数调用
HardwareSerial::print()' 您显示的代码与此错误消息没有任何关系(除非您显示Serial是什么,实际上你在哪里打电话给HardwareSerial::print())! -
这一行出现错误:int VariableMove = Serial.print();
-
编译你的代码是向前迈出的第一步(双关语)...
标签: c++ c arduino motordriver