Ciao a tutti
Allora grazie al vostro aiuto sono riuscito a realizzare un telecomando Bluetooth alimentato da un power-bank per cellulari che comanda a distanza diversi relè.
La parte ricevente (su arduino uno) e quella trasmittente (su arduino nano) utlizzano moduli bluerooth HC-05 configurati in modalità SLAVE/MASTER).
Il tutto funziona perfettamente. C'è solo un particolare che vorrei capire e se possibile sistemare.
Tenendo premuto un pulsante sul telecomando invio "A" rilasciando invio "a" e qui tutto apposto il problema si pone se nell'istante in cui tengo premuto il relativo tasto spengo il telecomando o si scarica la batteria succede che il comando inviato "A" rimane attivo sulla parte ricevente bloccando di conseguenza per es. l'apertura di un relè.
Sarebbe bene sapere se è possibile che la parte ricevente controlli la presenza della parte trasmittente in modo da azzerare eventuali comandi impartiti quando ques'ultimo non è attivo.
Si può fare?
Ecco il codice parte trasmittente:
int pulsante_suPin = 8;
int pulsante_giuPin = 9;
int pulsante_suState = 0;
int pulsante_giuState = 0;
#include <SoftwareSerial.h> // includo la libreria per la comunicazione seriale
SoftwareSerial mySerial(10, 11); // imposto i pin per la comunicazione seriale
// Collegare i pin: RX=>11 TX=>10
void setup()
{
pinMode(pulsante_suPin, INPUT);
pinMode(pulsante_giuPin, INPUT);
mySerial.begin(9600);
}
void loop()
{
pulsante_suState = digitalRead(pulsante_suPin);
if(pulsante_suState == 1){
mySerial.println("a"); // se il pulsante sù è premuto invio lettera a
}
else {
mySerial.println("A"); //altrimenti invio lettera A
}
pulsante_giuState = digitalRead(pulsante_giuPin);
if(pulsante_giuState == 1){
mySerial.println("b"); // se il pulsante giù è premuto invio lettera b
}
else {
mySerial.println("B"); //altrimenti invio lettera B
}
delay (100);
}
Servirebbe un qualche codice che permette di verificare la presenza dell'accoppiamento tra i due moduli Bluetooth e che quando questi non sono collegati tra di loro (es. nel momento in cui il telecomando si spegne a causa della batteria scarica) permetta alla parte ricevente di resettarsi.
Ho visto che i moduli bluethoot HC-05 hanno 6 pin dei quali ne utilizzo solo 4 per far funzionare tutto questo sistema. Ma per caso qualche pin non usato potrebbe essere utilizzato per sapere se è accoppiato o no e mandare qualche impulso ad arduino?
Si a quanto pare c'è un pin STATE che credo dovrebbe indicare lo stato del modulo (come non lo so forse con un segnale HIGH o LOW). Quindi collegandolo ad un pin digitale di arduino potrebbe dirgli se resettarsi o meno.
Facile a dirsi :o