Ich verwende eine App, um entweder eine LED einzuschalten oder den Winkel eines Mikroservos zu ändern, je nachdem, welche Taste gedrückt wird (mit Arduino). Mein Code arbeitet für die LED (während die Taste gedrückt wird, leuchtet die LED auf), aber es passiert nichts, wenn ich die Taste drücken soll, um den Winkel des Servo ändern 40.Ändern des Servowinkels basierend auf dem Bluetooth-Eingang
// 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);
}
}
Der Eingang ist richtig, wie ich überprüft, indem auch die LED im Fall 'E' eingeschaltet wurde, wo sie normal funktioniert. Ich hatte auch versucht, servo.write() innerhalb der Case-Funktion zu verwenden, aber das hat auch nicht funktioniert.
case 'E':
servo.write(40);
break;
Es gibt keine Fehlermeldung, das Servo bewegt sich überhaupt nicht – user9049016
Ja, ich habe servo.attach, ich habe versucht Servo :: Refresh(); aber es gab den Fehler: 'Aktualisieren' ist kein Mitglied von 'Servo'. – user9049016
An welchen Pin hast du es angehängt? Bearbeiten Sie Ihre Frage, um ein [vollständiges Beispiel] anzuzeigen (https://stackoverflow.com/help/mcve). – aaron