Salve,
oggi ho collegato per la prima volta un modulo Bluetooth HC-06 per collegare Arduino al mio telefono (Android): volevo fare in modo che se avessi immesso valori dal monitor seriale, li avrei visti sull'app, mentre se avessi inviato dall'app, li avrei visti sul monitor seriale.
La prima parte non riesce: invio dal monitor seriale, ma sull'app non esce nulla, se non il messaggio di "Serial pronto", che sta nel void setup. Questo suppongo sia un problema dell'app.
La seconda parte mi risulta strana: all'inizio usavo questo codice:
#include <SoftwareSerial.h>
const int rxpin = 0;
const int txpin = 1;
SoftwareSerial bluetooth(rxpin, txpin);
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
Serial.println("Serial pronto");
bluetooth.println("BT pronto!");
}
void loop() {
if(bluetooth.available()){
char c = bluetooth.read();
Serial.write(c);
}
if(Serial.available()){
char c = Serial.read();
bluetooth.write(c);
}
}
In questo modo potevo inviare un solo carattere per volta dal telefono o visualizzava poi tutti simboli strani. Ho aggiunto allora un delay(5):
#include <SoftwareSerial.h>
const int rxpin = 0;
const int txpin = 1;
SoftwareSerial bluetooth(rxpin, txpin);
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
Serial.println("Serial pronto");
bluetooth.println("BT pronto!");
}
void loop() {
if(bluetooth.available()){
char c = bluetooth.read();
Serial.write(c);
delay(5);
}
if(Serial.available()){
char c = Serial.read();
bluetooth.write(c);
delay(5);
}
}
Da quel momento potevo inviare dal telefono parole fino a 6 caratteri, dopodiché ricominciava con i caratteri strani.
Quindi chiedo: come ha influito il delay()? Come faccio a mandare dal monitor seriale e far ricevere al telefono (vederli stampati sull'app)?
Grazie!