Go Down

Topic: problema comunicazione BT (Read 222 times) previous topic - next topic

rora

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
Code: [Select]

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

Go Up