Ja, ich habe die Baud-Rate umgestellt aber auch bei 115200 Baud ändert sich nichts, auch bei der Umänderung der Pins gibt es keine Veränderung. Die Bluetooth Verbindung funktioniert einwandfrei.
ToastCrafterHD
Werbung
Ja, ich habe die Baud-Rate umgestellt aber auch bei 115200 Baud ändert sich nichts, auch bei der Umänderung der Pins gibt es keine Veränderung. Die Bluetooth Verbindung funktioniert einwandfrei.
ToastCrafterHD
Über USB funktioniert mein Programme gut, muss ich es für Bluetooth wie folgt abändern ?
Code:#include <SoftwareSerial.h> char val; const int pwmA = 3; const int pwmB = 11; const int brakeA = 9; const int brakeB = 8; const int dirA = 12; const int dirB = 13; int bluetoothTx = 2; int bluetoothRx = 4; SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); void setup() { pinMode(dirA, OUTPUT); pinMode(brakeA, OUTPUT); pinMode(dirB, OUTPUT); pinMode(brakeB, OUTPUT); Serial.begin(115200); } void loop() { { if (bluetooth.available()) { Serial.print((char)bluetooth.read()); } if (Serial.available()) { bluetooth.print((char)Serial.read()); } } if ( val == 'S' ) { digitalWrite(pwmA, 255); digitalWrite(dirA, LOW); digitalWrite(brakeA, LOW); digitalWrite(pwmB, 255); digitalWrite(dirB, HIGH); digitalWrite(brakeB, LOW); } delay(100); if (val == 'W') { digitalWrite(pwmA, 255); digitalWrite(dirA, LOW); digitalWrite(brakeA, LOW); digitalWrite(pwmB, 255); digitalWrite(dirB, HIGH); digitalWrite(brakeB, LOW); Serial.println("Vorwaerts 100%."); } delay(100); if (val == 'S') { digitalWrite(pwmA, 255); digitalWrite(dirA, HIGH); digitalWrite(brakeA, LOW); digitalWrite(pwmB, 255); digitalWrite(dirB, LOW); digitalWrite(brakeB, LOW); Serial.println("Rueckwaerts 100%."); } delay(100); if (val == 'A') { digitalWrite(pwmA, 255); digitalWrite(dirA, LOW); digitalWrite(brakeA, LOW); digitalWrite(pwmB, 255); digitalWrite(dirB, LOW); digitalWrite(brakeB, LOW); Serial.println("Nach links drehen"); } delay(100); if (val == 'D') { digitalWrite(pwmA, 255); digitalWrite(dirA, HIGH); digitalWrite(brakeA, LOW); digitalWrite(pwmB, 255); digitalWrite(dirB, HIGH); digitalWrite(brakeB, LOW); Serial.println("Nach rechts drehen"); } if (val == '0') { digitalWrite(pwmA, 0); digitalWrite(pwmB, 0); Serial.println("Motoren aus"); } }
Geändert von Anonym (29.01.2016 um 13:38 Uhr)
Es fehlt die Initialisierung der Bluetooth Softserial Schnittstelle. Ebenso stimmt die Abfrage in der loop() Funktion nicht:
Code:... Serial.begin(115200); bluetooth.begin(9600); } void loop() { { if (bluetooth.available()) { val = bluetooth.read(); Serial.print(val); } else if (Serial.available()) { val = Serial.read(); bluetooth.print(val); } ...
Danke soweit funktioniert es super
ToastCrafterHD
Geändert von Anonym (07.02.2016 um 19:48 Uhr)
Da mein erstes Shield meine starken Motoren nicht auf Dauer aushält, habe ich mir jetzt das Pololu Dual VNH5019 Motor Driver Shield for Arduino
gekauft (https://www.pololu.com/product/2507). Diese funktioniert super und schaft die Motore mit links aber ich kann es nur über USB steuern und nicht über Bluetooth. Wo liegt mein Fehler?
Mein Arduino Code:
und mein Processing Code:Code:#include <DualVNH5019MotorShield.h> #include <SoftwareSerial.h> char val; int i = 100; int o = -100; int p = 0; int bluetoothTx = 2; int bluetoothRx = 4; SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); DualVNH5019MotorShield md; void setup() { md.init(); Serial.begin(115200); bluetooth.begin(115200); } void loop() { { if (bluetooth.available()) { val = bluetooth.read(); Serial.print(val); } else if (Serial.available()) { val = Serial.read(); bluetooth.print(val); } } // anfang motor steuerung if (val == 'W') { md.setM1Speed(i); md.setM2Speed(i); } if (val == '0') { md.setM1Speed(p); md.setM2Speed(p); } if (val == 'S') { md.setM1Speed(o); md.setM2Speed(o); } if (val == 'A') { md.setM1Speed(i); md.setM2Speed(o); } if (val == 'D') { md.setM1Speed(o); md.setM2Speed(i); } }
Danke schon malCode:import processing.serial.*; Serial port; int val; void setup() { size(200, 200); port = new Serial(this, "COM7", 115200); } void draw() { if (keyPressed) { if(key == CODED){ if (keyCode == UP) { port.write('W'); } if (keyCode == DOWN) { port.write('S'); } if (keyCode == RIGHT) { port.write('D'); } if (keyCode == LEFT) { port.write('A'); } } if (key == '0') { port.write('0'); } } }
ToastCrafterHD
Das Dual VNH5019 Motor Driver Shield verwendet Pin 2 und 4. Das überschneidet sich mit den Bluetooth Pins. Pin 3 und 5 wären noch frei.
Lesezeichen