Hallo zusammen...
Ich habe mir auf Steckbrett zwei Nanos Kabelloss mit zwei HC-06 Bluetooth verbunden. Der Aufbau auf beiden Seiten ist identisch. Ein Nano, ein HC-06, ein Taster und eine Led .
Der Code für beide Seiten ist auch sehr ähnlich miteinander. Ein Aufbau arbeitet als Master der andere als Slave.
Die Idee darinter ist das bei drücken der Taste auf der Master Seite die Led auf der Slave Seite angeht und oder auch umgekehrt.
Mit Android Telefon als Master und ein Aufbau als Slave, habe ich das ein und auschalten der LED auch am Laufen.
Soweit habe ich das halles am Arbeiten und am Funktionieren.
Nun zu meiner Frage und zum Punkt wo ich Hilfestellung brauche.
Ich würde gerne halle drei miteinander über Bluetooth verbinden.Das Android Telefon würde zugriff auf beide oder eine der Aufbauten haben und die zwei Aufbauten würden sich gegenseitig zugreifen.
Mein Problem ist das ich mich nicht mit den Android an einer der HC-06 anschliessen kann wenn die zwei Aubauten mieinader verbunden sind.
Folgt der Code für den Master Aufbau wenn mit Slave verbunden.
//Das ist der Meister
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3);
int state = 0;
const int masterled = 12;
const int masterbutton = 5;
//--------------------------------------------
void setup() {
BTSerial.begin(38400);
pinMode(masterled, OUTPUT);
digitalWrite(masterled, LOW);
pinMode(masterbutton, INPUT_PULLUP);
}
//--------------------------------------------
void loop(){
int masterbuttonState = digitalRead(masterbutton);
if(BTSerial.available() > 0){
state = BTSerial.read();
}
if (masterbuttonState == LOW){
BTSerial.write('1');
}
else{
BTSerial.write('0');
}
if (state == '1') {
digitalWrite(masterled, HIGH);
state = 0;
}
else if (state == '0') {
digitalWrite(masterled, LOW);
state = 0;
}
}
Folgt der Code für den Slave Aufbau wenn mit Master verbunden.
//Das ist der Sklave
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3);
int state = 0;
const int slaveled = 12;
const int slavebutton = 5;
//--------------------------------------
void setup() {
BTSerial.begin(38400);
pinMode(slaveled, OUTPUT);
digitalWrite(slaveled, LOW);
pinMode(slavebutton, INPUT_PULLUP);
}
//--------------------------------------
void loop() {
int slavebuttonState = digitalRead(slavebutton);
if(BTSerial.available() > 0){
state = BTSerial.read();
}
if (slavebuttonState == LOW ){
BTSerial.write('1');
}
else{
BTSerial.write('0');
}
if (state == '1') {
digitalWrite(slaveled, HIGH);
state = 0;
}
else if (state == '0') {
digitalWrite(slaveled, LOW);
state = 0;
}
}
Folgt der Code des Slaves wenn mit Android verbunden
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3);
int LED_1 = 11;
int LED_2 = 12;
char ch;
//-------------------------------------------------
void setup() {
BTSerial.begin(9600);
pinMode(LED_1,OUTPUT);
pinMode(LED_2,OUTPUT);
}
//--------------------------------------------------
void loop() {
if(BTSerial.available()){
ch = BTSerial.read();
BTSerial.write(ch);
doWork(ch);
}
}
//-------------------------------------------------
void doWork(char ch){
switch(ch){
case 'A':
digitalWrite(LED_1,HIGH);
break;
case 'a':
digitalWrite(LED_1,LOW);
break;
case 'B':
digitalWrite(LED_2,HIGH);
break;
case 'b':
digitalWrite(LED_2,LOW);
break;
}
}