ciao a tutti,
sto comunicando con arduino uno tramite scheda BT e fino a qui tutto ok
il problema che voglio invece sottoporvi e' questo
-mi connetto velocemente con arduino ma i comandi riesco a passarli solo dopo circa un minuto, perche'?
-sia il led di test al pin 13 che la parte blu di un RGB si accendono dopo una decina di sec dall'avvenuta connessione, ed io ovviamente li vorrei spenti fino a mio comando
passato questo primo minuto i miei comandi vengono accettati ed il tutto funziona correttamente
qualcuno sa dirmi che parte di codice ho sbagliato?
posto la porzione che credo interessata al problema
char var = 'a'; //inizializzo spegnendo le luci
int ledTest = 13;
//Luci
//striscia led RGB corridoio
int RGBverde = 9;
int RGBblu = 10;
int RGBrosso = 11;
int LucePorta = 3; //luce porta ingresso
int LuceVeranda = 5; //luce veranda
int LuceGavone = 6; //luce gavone
//Temperatura
float fTemperatura();
float Tsens; //sensore di Temperatura interno
float TempKelvinInt; //visualizzazione gradi Kelvin
float TempCelsiusInt; //visualizzazione gradi Celsius
float Tmedia; //faccio la media della temperatura su 20 letture
float TempLetta;
#define OFFSET 0.4 //correzione della temperatura
void setup()
{
//imposto connessione BT
Serial.begin(38400);
delay(1000);
Serial.print("\r\n+STWMOD=0\r\n"); //Imposta il modulo come slave
Serial.print("\r\n+STNA=McRava\r\n"); //Assegno il nome “McRava” al modulo
//Serial.print("\r\n+STAUTO=0\r\n"); //Autoconnessione con l’ultimo dispositivo connesso proibito
//Serial.print("\r\n+STOAUT=1\r\n"); //Permette la connessione del dispositivo permesso
Serial.print("\r\n +STPIN=0110\r\n"); //Imposto PIN code
Serial.print("\r\n+LOSSRECONN=1\r\n"); //Auto riconnessione quando viene perso il segnale con il dispositivo master permesso
delay(2000); //Ritardo necessario per la configurazione.
Serial.print("\r\n+INQ=1\r\n"); //Avvia visibilità dispositivo
delay(2000);
//controllo luci
pinMode(ledTest, OUTPUT);
pinMode(RGBverde, OUTPUT);
pinMode(RGBblu, OUTPUT);
pinMode(RGBrosso, OUTPUT);
pinMode(LucePorta, OUTPUT);
pinMode(LuceVeranda, OUTPUT);
pinMode(LuceGavone, OUTPUT);
}
void loop()
{
delay(1000);
//test avvenuta connessione
if(Serial.available()){
var = Serial.read();
}
switch (var) {
case 'T':
//accendo ledTest
digitalWrite(ledTest, HIGH);
break;
case 't':
//spengo ledTest
digitalWrite(ledTest, LOW);
break;
case 'V':
//accendo RGBverde
digitalWrite(RGBverde, random(255));
break;
case 'v':
//spengo RGBverde
digitalWrite(RGBverde, LOW);
break;
case 'B':
//accendo RGBblu
digitalWrite(RGBblu, random(255));
break;
case 'b':
//spengo RGBblu
digitalWrite(RGBblu, LOW);
break;
case 'R':
//accendo RGBrosso
digitalWrite(RGBrosso, random(255));
break;
case 'r':
//spengo RGBrosso
digitalWrite(RGBrosso, LOW);
break;
case 'P':
//accendo LucePorta
digitalWrite(LucePorta, HIGH);
break;
case 'p':
//spengo LucePorta
digitalWrite(LucePorta, LOW);
break;
case 'E':
//accendo LuceVeranda
digitalWrite(LuceVeranda, HIGH);
break;
case 'e':
//spengo LuceVeranda
digitalWrite(LuceVeranda, LOW);
break;
case 'G':
//accendo LuceGavone
digitalWrite(LuceGavone, HIGH);
break;
case 'g':
//spengo LuceGavone
digitalWrite(LuceGavone, LOW);
break;
case 'A':
//accendo tutte le luci
digitalWrite(RGBverde, random(255));
digitalWrite(RGBblu, random(255));
digitalWrite(RGBrosso, random(255));
digitalWrite(LucePorta, HIGH);
digitalWrite(LuceVeranda, HIGH);
digitalWrite(LuceGavone, HIGH);
break;
case 'a':
//spengo tutte le luci
digitalWrite(RGBverde, LOW);
digitalWrite(RGBblu, LOW);
digitalWrite(RGBrosso, LOW);
digitalWrite(LucePorta, LOW);
digitalWrite(LuceVeranda, LOW);
digitalWrite(LuceGavone, LOW);
break;
grazie