Piccolo problema

Buona sera a tutti, ho un piccolo problema con la seriale, cioè, (premetto che tutto lo scketch, è in un mio precedente post), quando avvio tutto il programma che funziona tramite bluetooth con app android, programma creato con vb.net, il tutto per accendere o spegnere prese e 1 luce, quando avvio la luce collegata tramite relè passo passo, il programma vb.net mi dice che la seriale non è aperta dopo che aziono sia vb.net che l app. Mentre se uso solo l app android il tutto funzione alla perfezione, se uso solo il vb.net il tutto funziona ma se uso entranbi la seriale si perde.
Boh!!!!! :confused:

Anticipando che, per il REGOLAMENTO, punto 15 e suoi sottopunti, SE viene fuori che sono problemi di collegamento con l'impianto di casa (... prese, punto luce, ecc.), debbo chiudere il thread ... :confused:
... finchè parliamo solo di problemi di uso simultaneo di devices seriali, NON c'è problema. :slight_smile:

Di che scheda Arduino stiamo parlando ? A che pin hai collegato il modulo Bluetooth ?

Guglielmo

Ricordo di aver letto quel thread, ma se stai proseguendo qui magari oltre alle info che ti ha chiesto Guglielmo posta nuovamente lo sketch, non vorrai costringere le persone a cercare ti tuoi post, aprire il thread, e cercare dove hai postato l'ultima versione vero? :wink:

Non puoi accedere da 2 programmi (app e VB.net) alla stessa com.

buona sera a tutti questo è il mio codice

#include <SoftwareSerial.h>
#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
 
/*********************************************************************/
 
#define BT_TX_PIN  5
#define BT_RX_PIN  4
 
/*********************************************************************/
 
SoftwareSerial mySerial(BT_TX_PIN, BT_RX_PIN);
RTC_DS1307 RTC;
LiquidCrystal_I2C lcd(0x27,16,2);
 
/*********************************************************************/
 
char lettera;    //inizializzo carattere
char buffer[16];
String voice;

int rele1 = 6;
int rele2 = 7;
int rele3 = 8;
int rele4 = 9;
int rele5 = 10;
int rele6 = 11;
int rele7 = 12;
int rele8 = 13;

int previousSec = 0;

int stato;
 
uint8_t SPENTO[8] = {0x0E, 0x11, 0x11, 0x11, 0x0A, 0x0E, 0x0E, 0x04,};
uint8_t ACCESO[8] = {0x0E, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x04,};

void accenditutto() {
  digitalWrite (rele1, LOW);
  digitalWrite (rele2, LOW);
  digitalWrite (rele3, LOW);
  digitalWrite (rele4, LOW);
} 

void spegnitutto() {
  digitalWrite (rele1, HIGH);
  digitalWrite (rele2, HIGH);
  digitalWrite (rele3, HIGH);
  digitalWrite (rele4, HIGH);
}
void accendilampada() {
  digitalWrite (rele1, LOW);
  Serial.println("relay 1 off");
  viewSocket( 1,false );
}
void spegnilampada() {
  digitalWrite (rele1, HIGH);
  Serial.println("relay 1 on");
  viewSocket( 1,true );
}
void accendiflipper() {
  digitalWrite (rele2, LOW);
  Serial.println("relay 2 off");
  viewSocket( 2,false );
}
void spegniflipper() {
  digitalWrite (rele2, HIGH);
  Serial.println("relay 2 on");
  viewSocket( 2,true );
}
void accenditv() {
  digitalWrite (rele3, LOW);
  Serial.println("relay 3 off");
  viewSocket( 3,false );
}
void spegnitv() {
  digitalWrite (rele3, HIGH);
  Serial.println("relay 3 on");
  viewSocket( 3,true );
}

/*********************************************************************/
void setup() {
  lcd.backlight();
    Serial.begin(9600);
    mySerial.begin(9600);
    Wire.begin();
    RTC.begin();
    lcd.init(); 
     
    pinMode(rele1, OUTPUT);
    pinMode(rele2, OUTPUT);
    pinMode(rele3, OUTPUT);
    pinMode(rele4, OUTPUT);
    pinMode(rele5, OUTPUT);
    pinMode(rele6, OUTPUT);
    pinMode(rele7, OUTPUT);
    pinMode(rele8, OUTPUT); 
    digitalWrite(rele1, HIGH);
    digitalWrite(rele2, HIGH);
    digitalWrite(rele3, HIGH);
    digitalWrite(rele4, HIGH);
    digitalWrite(rele5, HIGH);
    digitalWrite(rele6, HIGH);
    digitalWrite(rele7, HIGH);
    digitalWrite(rele8, HIGH);
     
    if (! RTC.isrunning()) {
      Serial.println("RTC is NOT running!");
      RTC.adjust(DateTime(__DATE__, __TIME__));
    }
     
    lcd.createChar(0, SPENTO);
    lcd.createChar(1, ACCESO);
    lcd.setCursor (0, 0);
    lcd.print("Ciabatta BT v.2");
    delay(2000);
    lcd.clear();
    lcd.setCursor (12, 0);
    lcd.write(0);
    lcd.write(0);
    lcd.write(0);
    lcd.write(0);
    
}
 
/*********************************************************************/
  
void loop() {  
   
while(Serial.available()) {
    delay(10);
    char c=Serial.read();
    if(c=='#')
    {break; }
    voice += c;
}
if (voice.length() > 0) {
  Serial.println(voice);
  if (voice == "*accendi tutto")
  {accenditutto() ; }
  else if (voice == "*spegni tutto")
  {spegnitutto() ; }
  else if (voice == "*accendi lampada")
  {accendilampada() ; }
  else if (voice == "*spegni lampada")
  {spegnilampada() ; }
  else if (voice == "*accendi flipper")
  {accendiflipper() ; }
  else if (voice == "*spegni flipper")
  {spegniflipper() ; }
  else if (voice == "*accendi tv")
  {accenditv() ; }
  else if (voice == "*spegni tv")
  {spegnitv() ; }   
   
voice="";
}
    
  DateTime now = RTC.now();
     
  if(now.second() != previousSec) {
        lcd.setCursor( 0,0 );
        sprintf(buffer,  "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
        lcd.print( buffer );
        previousSec = now.second();
    }
     
    if(mySerial.available()) { // se il serial buffer contiene almeno un carattere
        lettera = mySerial.read(); // leggi il buffer
         
        switch (lettera) {
        case 'A':
            digitalWrite(rele1, LOW); // eccita il relay1
            Serial.println("relay 1 on");
            viewSocket( 1,true );
            delay(100);
            digitalWrite(rele1, HIGH); // diseccita il relay1
            Serial.println("relay 1 off");
            viewSocket( 1,false );
            delay(100);
           
        break;
         
        case 'S':
            digitalWrite(rele1, HIGH); // diseccita il relay1
            Serial.println("relay 1 off");
            viewSocket( 1,false );
            break;
         
        case 'Q':
            digitalWrite(rele2, LOW); // eccita il relay2
            Serial.println("relay 2 on");
            viewSocket( 2,true );
        break;
         
        case 'W':
            digitalWrite(rele2, HIGH); // diseccita il relay2
            Serial.println("relay 2 off");
            viewSocket( 2,false );
        break;
         
        case 'E':
            digitalWrite(rele3, LOW); // eccita il relay3
            Serial.println("relay 3 on");
            viewSocket( 3,true );
        break;
         
        case 'R':
            digitalWrite(rele3, HIGH); // diseccita il relay3
            Serial.println("relay 3 off");
            viewSocket( 3,false );
        break;
         
        case 'T':
            digitalWrite(rele4, LOW); // eccita il relay4
            Serial.println("relay 4 on");
            viewSocket( 4,true );
        break;
         
        case 'Y':
            digitalWrite(rele4, HIGH); // diseccita il relay4
            Serial.println("relay 4 off");
            viewSocket( 4,false );
        break;

        case 'U':
            digitalWrite(rele5, LOW); // eccita il relay5
            Serial.println("relay 5 on");
            viewSocket( 5,true );
        break;
         
        case 'I':
            digitalWrite(rele5, HIGH); // diseccita il relay5
            Serial.println("relay 5 off");
            viewSocket( 5,false );
        break;

        case 'O':
            digitalWrite(rele6, LOW); // eccita il relay6
            Serial.println("relay 6 on");
            viewSocket( 6,true );
        break;
         
        case 'P':
            digitalWrite(rele6, HIGH); // diseccita il relay6
            Serial.println("relay 6 off");
            viewSocket( 6,false );
        break;

        case 'D':
            digitalWrite(rele7, LOW); // eccita il relay7
            Serial.println("relay 7 on");
            viewSocket( 7,true );
        break;
         
        case 'F':
            digitalWrite(rele7, HIGH); // diseccita il relay7
            Serial.println("relay 7 off");
            viewSocket( 7,false );
        break;

        case 'G':
            digitalWrite(rele8, LOW); // eccita il relay8
            Serial.println("relay 8 on");
            viewSocket( 8,true );
        break;
         
        case 'H':
            digitalWrite(rele8, HIGH); // diseccita il relay8
            Serial.println("relay 8 off");
            viewSocket( 8,false );
        break;
        }
    } 
     stato = Serial.read();
  if(stato =='A') {
    digitalWrite(rele1, LOW);
    delay (100);
    digitalWrite(rele1, HIGH);
  }else if (stato =='S'){
    digitalWrite(rele1, HIGH);
  }if(stato =='Q') {
    digitalWrite(rele2, LOW);
  }else if (stato =='W'){
    digitalWrite(rele2, HIGH);
  }if(stato =='E') {
    digitalWrite(rele3, LOW);
  }else if (stato =='R'){
    digitalWrite(rele3, HIGH);
  }if(stato =='T') {
    digitalWrite(rele4, LOW);
  }else if (stato =='Y'){
    digitalWrite(rele4, HIGH);
  }if(stato =='U') {
    digitalWrite(rele5, LOW);
  }else if (stato =='I'){
    digitalWrite(rele5, HIGH);
  }if(stato =='O') {
    digitalWrite(rele6, LOW);
  }else if (stato =='P'){
    digitalWrite(rele6, HIGH);
  }if(stato =='D') {
    digitalWrite(rele7, LOW);
  }else if (stato =='F'){
    digitalWrite(rele7, HIGH);
  }if(stato =='G') {
    digitalWrite(rele8, LOW);
  }else if (stato =='H'){
    digitalWrite(rele8, HIGH);
  }else if (stato =='J'){
  digitalWrite(rele1,HIGH);
  digitalWrite(rele2,HIGH);
  digitalWrite(rele3,HIGH);
  digitalWrite(rele4,HIGH);
  digitalWrite(rele5,HIGH);
  digitalWrite(rele6,HIGH);
  digitalWrite(rele7,HIGH);
  digitalWrite(rele8,HIGH);
  
  }  
}
 
void viewSocket(byte num, boolean status) {
  lcd.setCursor( ( 11+num ),0 );
  if ( status ) { 
     lcd.write(1); 
     lcd.setCursor ( 0,1 );
     lcd.print("Acceso rele "); 
  } else { 
    lcd.write(0);
    lcd.setCursor ( 0,1 );
    lcd.print("Spento rele ");
  }
  lcd.setCursor ( 12,1 );
  lcd.print(num);
}

Grazie uwefed per la risposta, ma perche questo mi succede solo se aziono il rele 1 dove è collegato un rele passo passo e non succede niente sugli altri rele che funzionano normalmente?
Grazie mille.
Ps un altra domanda
Dal mio cod. Si può leggere che stavo cercando di usare i comandi vocali ma questi non funzionano, cioè se sposto i pin rx e tx del modulo bluetooth nei pin rx e tx di arduino si accende solo il rele 1,perchè? E poi ce un altro modo per usare i comandi vocali nei pin da me impostati per il modulo bluetooth o sono pin fissi e non si possono spostare? Grazie mille e scusate per le troppe domande

Buona sera a tutti, viste che non ce soluzione al mio problema volevo chiedervi, ma se collego una ethernet shield e mi collego dal cell tramite il browser e non piu tramite l app è fattibile usate vb.net e il web browser?
Grazie mille