Ciao
Ho connesso due Arduino con due moduli bluetooth HC-05, il mio scopo è quello di inviare dei dati nel momento in cui premo un pulsante. Il codice funziona ma nel momento in cui aggiungo la parte di codice contrassegnata dal commento "//nuovo" i valori che riceve il ricevitore o sono tutti sballati o non arrivano proprio.
Rx e tx sono i pin a cui sono connessi i moduli bluetooth, al pin 9 dell'Arduino che invia è connesso un pulsante
Sapreste aiutarmi?
Codice Arduino che invia i dati:
#include <SoftwareSerial.h>
int a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,l=10,m=11;
int old_valp=0,statop=1,valp=0;
int pp=9;
int k,y;
const int rx = 12;
const int tx = 11;
SoftwareSerial bt(rx, tx);
void setup() {
bt.begin(9600);
pinMode(rx, INPUT);
pinMode(tx, OUTPUT);
pinMode(pp,INPUT);
digitalWrite(pp,HIGH);
}
void loop() {
if(bt.available()>0){//nuovo
k=bt.read();//nuovo
y=bt.read();//nuovo
}//nuovo
letturapp();
if(statop==1){statop=0;
bt.write(0xFF);
bt.write(a);
bt.write(b);
bt.write(c);
bt.write(d);
bt.write(e);
bt.write(f);
bt.write(g);
bt.write(h);
bt.write(i);
bt.write(l);
bt.write(m);
bt.write(5);
}
}
void letturapp(){
valp=digitalRead(pp);
if(valp==HIGH&&old_valp==LOW)
statop=1-statop;
old_valp=valp;
}
Codice Arduino che riceve i dati:
#include <SoftwareSerial.h>
const int TX=12;
const int RX=11;
int a,b,c,d,e,f,g,h,i,l,m,s,z=0;
SoftwareSerial bt = SoftwareSerial(RX, TX);
void setup() {
pinMode(RX, INPUT);
pinMode(TX, OUTPUT);
Serial.begin(9600);
bt.begin(9600);
}
void loop() {
bt.write(10);//nuovo
bt.write(11);//nuovo
if(bt.available()>=13){
if(bt.read()==0xFF){
a=bt.read();
b=bt.read();
c=bt.read();
d=bt.read();
e=bt.read();
f=bt.read();
g=bt.read();
h=bt.read();
i=bt.read();
l=bt.read();
m=bt.read();
s=bt.read();
Serial.print(a);
Serial.print(" ");
Serial.print(b);
Serial.print(" ");
Serial.print(c);
Serial.print(" ");
Serial.print(d);
Serial.print(" ");
Serial.print(e);
Serial.print(" ");
Serial.print(f);
Serial.print(" ");
Serial.print(g);
Serial.print(" ");
Serial.print(h);
Serial.print(i);
Serial.print(" ");
Serial.print(l);
Serial.print(" ");
Serial.println(m);
if(s==5) {Serial.print("STOP ");Serial.println(z);z++;}
}
}
}