Hi,
ich experimentiere mit Bluetooth. Ich habe ein Arduino UNO und das iteadstudio Shild.
(http://store.iteadstudio.com/images/produce/Shield/BTshieldv2.2/BTShieldV2.2_DS.pdf)
Zum Testen der Verbindung möchte ich nun über Bluetooth die LED13 auf dem Arduino an und aus machen.
Es hat einen UART Multiplexer um den RX und TX Pin zu stecken.
TX 0 0 1 0 0 0
D0 0 0 1 0 1 0
RX 0 0 0 0 1 0
auf der Platine ist auch aufgeschrieben: [D0],D1,D4,D5,D6,D7
Ich gehe davon aus das es dann die Digitalen Pins sind. Bei meiner jumper konfiguration müsste es also TX = 4 und RX = 6 sein.
Mein Code ist
#include <SoftwareSerial.h>
//SoftwareSerial mySerial(10, 11); // RX, TX
#define rxPin 6
#define txPin 4
SoftwareSerial Bluetooth(rxPin, txPin);
int ledPin = 13;
int BT_val;
void setup()
{
//Bluetooth
Bluetooth.begin(115200);
pinMode(ledPin, OUTPUT);
}
void loop() // run over and over
{
// BLUETOOTH //
while (Bluetooth.available() == 0)
Bluetooth.println("Bluetooth connected");
BT_val = Bluetooth.read() - '0';
if(BT_val == 1) {
Bluetooth.print("LED is on");
digitalWrite(ledPin, HIGH);
}
else if(BT_val == 0) {
Bluetooth.print("LED is off");
digitalWrite(ledPin, LOW);
}
else {
Bluetooth.print("Invalid!");
}
}
Ich arbeite auf einem Mac und hab nun die Arduino Software offen, das Shield gepaird und die Serielle Konsole offen mit 115200 Baud. Wenn ich nun eine 1 oder irgend was sende - passiert gar nichts!
Ok, natürlich ist das Arduino Board noch per USB angeschlossen um halt mit der Konsole ein Feedback zu bekommen, aber es müsste doch trotzdem etwas passieren.
Zum weiteren Testen habe ich mit Processing auch ein kleines Tool das auf 115200 Baud per klick eine 1 oder 0 sendet. Allerdings passiert damit auch nichts. Weder auf der Konsole noch leuchtet die LED!
import processing.serial.*;
Serial myPort;
String input;
boolean farbe = false;
void setup()
{
//Alle Ports ausgeben und den richitgen auswählen
println(Serial.list());
//Index entsprechend setzten
String portName = Serial.list()[8]; // [8] "/dev/tty.itead-DevB"
myPort = new Serial(this, portName, 115200);
//Erstes Einlesen wegwerfen
input = myPort.readStringUntil('\n');
input =null;
size(200,200);
background(0);
smooth();
}
void draw()
{
if(farbe)
{
background(255,0,0);
myPort.write("1");
}
else
{
background(0);
myPort.write("0");
}
}
void mousePressed()
{
farbe = !farbe;
}
Bin langsam am verzweifeln, kann mir jemand bitte helfen?