problema if..else con easyVR shield 3.0

salve a tutti,
ho un piccolo problema con la easyvr, in pratica all'interno di un caso vorrei fare un controllo di stato, ad esempio, se dico al robottino di andare avanti, vorrei che prima di attivare il segnale verifichi in che stato si trovino i motori cioè se sono già accesi non voglio che faccia nulla o che mi risponda con un errore..
ho ridotto tutto il mio sw al famoso led:

void action()
{
   switch (group)
   {
   case GROUP_1:
     switch (idx)
     {
     case G1_ACCENDI_LED:
          if (digitalRead(10 ==LOW))
            {
              digitalWrite(10, HIGH);
              easyvr.playSound(1, EasyVR::VOL_FULL); //richiama file audio che conferma l'accensione
            }
          else
              easyvr.playSound(3, EasyVR::VOL_FULL); //richiama file audio che avvisa che è già on
     }
   }
     break;

     case G1_SPENGI_LED:
     digitalWrite(10, LOW);
     easyvr.playSound(2, EasyVR::VOL_FULL);
     break;

     }
  break;
   }
}

l'errore è: break statement not within loop or switch

poterste darmi una mano? sicuramente stò trascurando qualcosa della funzione considerando che prima funzionava alla perfezione... GRAZIE

@Icchi87: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More → Modify) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Guglielmo

fatto.. scusatemi!!

Ecco, ora prendi l'IDE, Tools -> Auto Format, così ti sistema le indentature come si deve e ...
... scopri dove è l'errore :grin:

Per aiutarti, nelle preference dell'IDE attiva anche il "Enable Code Folding" ... :wink:

Guglielmo

P.S.: E' facile ...

Diciamo che il conto non mi tornava già dall'inizio... Ma non dapevo quali togliere, in effetti con la formattazione automatica (che non avevo mai usato) l'ho visto subito a colpo d'occhio... Grazie

comunque continuana non funzionare... Il codice è corretto ma si comporta come se la funzione if non esistesse...

Icchi87:
comunque continuana non funzionare... Il codice è corretto ma si comporta come se la funzione if non esistesse...

Metti il nuovo codice che hai sistemato e indica qule IF non ti viene eseguita ...

Guglielmo

eccolo qui:

void action()
{
  switch (group)
  {
    case GROUP_1:
      switch (idx)
      {
        case G1_ACCENDI_LED:
       
          if (digitalRead(10 == LOW)){
            digitalWrite(10, HIGH); //azione che chiedo di effettuare
            easyvr.playSound(1, EasyVR::VOL_FULL); //richiama file audio
            Serial.println("ho acceso il led");
          }
          else{
            Serial.println("non ho acceso il led perchè era già acceso");
            easyvr.playSound(3, EasyVR::VOL_FULL);
          }
          break;

        case G1_SPENGI_LED:
          digitalWrite(10, LOW);
          easyvr.playSound(2, EasyVR::VOL_FULL);
   
          break;
      }
      break;
  }
}

in pratica esegue sempre l'accensione e non arriva mai a dare l'errore dell'else, ne attraverso la easyvr ne tramite la porta seriale, aggiunta fatta proprio per verificarne l'esecuzione..
quindi se dico "accendi led"
il led viene acceso, parte il file audio 1 e la porta seriale scrive "ho acceso il led"
se dico nuovamente "accendi led"
il led rimane giustamente acceso, ma parte il file audio 1 (invece del 3) e la porta seriale scrive sempre "ho acceso il led".

Sicuro sia giusto ?

if (digitalRead(10 == LOW)){

prova così

if (digitalRead(10)==LOW){

Si facendo in questo modo funziona.... GRAZIE