【发布时间】:2017-12-04 22:39:33
【问题描述】:
我正在使用应用程序来打开 LED 或根据按下的按钮更改微伺服的角度(使用 Arduino)。我的代码适用于 LED(按下按钮时,LED 亮起),但是当我按下用于将伺服角度更改为 40 的按钮时没有任何反应。
// Bluetooth serial:
#include <SoftwareSerial.h> // import the serial library
// setup the bluetooth coms
SoftwareSerial BTSerial(8,7);
#include <Servo.h>
int servoPin = 0;
Servo servo;
int angle = 0; // servo position in degrees
int input = 0;
int led2 = 13;
void setup() {
// put your setup code here, to run once:
servo.attach(servoPin);
Serial.begin(9600); // coms w/ computer
BTSerial.begin(9600); // coms w/ Bluetooth
pinMode(led2, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if (BTSerial.available())
{
input = BTSerial.read();
digitalWrite(led2, LOW);
switch(input) {
case 'E':
angle = 40;
break;
case 'C':
digitalWrite(led2, HIGH);
break;
}
servo.write(angle);
}
}
输入是正确的,因为我还打开了 LED,以防“E”正常工作。我也尝试过在 case 函数中使用servo.write(),但这也没有用。
case 'E':
servo.write(40);
break;
【问题讨论】:
-
没有错误信息,伺服根本不动
-
是的,我做了servo.attach,我试过Servo::refresh();但它给出了错误:“刷新”不是“伺服”的成员。
-
你把它贴在哪个别针上?编辑您的问题以显示complete example。
-
附加到引脚 0
-
我猜Arduino是通过USB连接到你的电脑的?