mit Bluetooth zwei Motoren gleichzeitig ansteuern?
Hey, ich will mit Arduino den Schrittmotor und den Servo ansteuern. Mit dem Joystick habe ich es auch geschafft. Nun will ich es mit dem Bluetooth reciver versuchen. Einzelnd kann ich sie auch ansterern, nur wenn der Schrittmotor läuft und ich den Servo ansteuern will stoppt der Schrittmotor. Wie kann ich es machen, das der denn weiterläuft??
1 Antwort
Keiner kennt deinen Quellcode, deine Verschaltung oder über was Du per Bluetooth ansteuerst. (Handy-App, Controller mit BT, Wii-Fernbedienung ect)...
Keiner kann dir so Hilfestellung geben. Denn keiner kann erahnen, was da ggf schief läuft...
Ich kenne zwar die App nicht. Aber deinem Code nach wird der übertragene Wert nicht gespeichert, sondern nur abgefragt und verarbeitet. Ich denke, wenn die App den Wert "1" sendet, macht sie das so lange, bis einanderer Wert gewählt wird. z.B. "a".
Wenn die App jetzt nicht "1" und "a" sendet, sondern nur noch "a", ist "1" nicht mehr erfüllt und die Ausgabe auf die Bedingung "1" bleibt stehen...
Ist nur eine Vermutung, aber würde es erklären.
Also ich steuer mit der Arduino BlueTooth App an
mein Code:
char blueToothVal;
int s1 = 5;
int s2 = 6;
int s3 = 7;
int s4 = 8;
#include <Servo.h>
Servo myservo;
void setup()
{
Serial.begin(9600);
myservo.attach(13);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
if (Serial.available())
{
blueToothVal=Serial.read();
}
if (blueToothVal == '1')
{
digitalWrite(s1, HIGH);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
digitalWrite(s4, LOW);
delay(5);
digitalWrite(s1, LOW);
digitalWrite(s2, HIGH);
digitalWrite(s3, LOW);
digitalWrite(s4, LOW);
delay(5);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, HIGH);
digitalWrite(s4, LOW);
delay(5);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
digitalWrite(s4, HIGH);
delay(5);
}
if (blueToothVal == '2')
{
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
digitalWrite(s4, HIGH);
delay(5);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, HIGH);
digitalWrite(s4, LOW);
delay(5);
digitalWrite(s1, LOW);
digitalWrite(s2, HIGH);
digitalWrite(s3, LOW);
digitalWrite(s4, LOW);
delay(5);
digitalWrite(s1, HIGH);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
digitalWrite(s4, LOW);
delay(5);
}
if (blueToothVal == '3')
{
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
digitalWrite(s4, LOW);
}
{
if (blueToothVal == 'a')
{
myservo.write(180);
}
if (blueToothVal == 'b')
{
myservo.write(90);
}
if (blueToothVal == 'c')
{
myservo.write(0);
}
}
}