[Problema] Bottone fisico + Android

Ho cominciato ad usare Arduino da un po', all'inizio non ho trovato molta difficoltà ma adesso mi trovo davanti un problema serio.

Obiettivo far accendere led sia da app Android che da bottone fisico collegato ad Arduino.

Partiamo dalla base:

ho cominciato provando a far accendere un led tramite bottone fisico, fin qui tutto okay! Poi mi sono detto perché non provare tramite bluetooth con un dispositivo Android? Fin qua tutto bene ho anche fatto l'applicazione android.

Il problema nasce adesso che voglio unire entrambe gli sketch, vorrei far accendere/spegnere un led tramite pulsante fisico o tramite bluetooth. Non riesco proprio ho provato con select case o con if ma.. Niente da fare non ho ottenuto risultato, adesso vorrei poterci riuscire magari col vostro aiuto.

Grazie in anticipo

Holla:
Ho cominciato ad usare Arduino da un po', all'inizio non ho trovato molta difficoltà ma adesso mi trovo davanti un problema serio.

Obiettivo far accendere led sia da app Android che da bottone fisico collegato ad Arduino.

Partiamo dalla base:

ho cominciato provando a far accendere un led tramite bottone fisico, fin qui tutto okay! Poi mi sono detto perché non provare tramite bluetooth con un dispositivo Android? Fin qua tutto bene ho anche fatto l'applicazione android.

Il problema nasce adesso che voglio unire entrambe gli sketch, vorrei far accendere/spegnere un led tramite pulsante fisico o tramite bluetooth. Non riesco proprio ho provato con select case o con if ma.. Niente da fare non ho ottenuto risultato, adesso vorrei poterci riuscire magari col vostro aiuto.

Grazie in anticipo

Che modulo BT usi?
Ciao
C

JY-MCU

Questo qui

ho cominciato provando a far accendere un led tramite bottone fisico, fin qui tutto okay!

Poi mi sono detto perché non provare tramite bluetooth con un dispositivo Android? Fin qua tutto bene ho anche fatto l'applicazione android.

Direi che è un problema software se entrambe le parti funzionano singolarmente, quindi senza software perdiamo tempo noi e tu :roll_eyes:

ciao

Per riuscire prova ad astrarre il concetto di comando, in pratica, fai in modo che qualsiasi comando (da pulsante, BT, ...) venga tradotto in un valore assegnato ad una variabile, ad esempio impostandola ad 1. Se la variabile assume valore 1, accendi il LED, se assume valore 2 lo spegni.

Ci sono soluzioni più eleganti, ma questa è sufficientemente semplice per aggirare l'ostacolo.

Saluti,
Dario.

Okay, scusate l'assenza ma ho avuto un bel po' da fare, ecco il codice che ho provato a scrivere:

int led = 13   
int puls = 2 
char val; 
int Valore = 0;   

void setup() 
{
  pinMode(led, OUTPUT);   
  pinMode(puls, INPUT);
  Serial.begin(9600);
}


void loop(){
  Valore = digitalRead(puls); 
  if (Valore == HIGH) 
{ 
    digitalWrite(led, HIGH); 
  }
  else 
  {
    digitalWrite(led, LOW);
  }

  
if( Serial.available() )      
  {
    val = Serial.read();         
  }
  if( val == 'G' )               
  {
    digitalWrite(Led, HIGH);  

  }


}

Col bluetooth funziona ma dal pulsante no..

const byte led = 13;   
const byte puls = 2; 
char val; 
byte statusled = LOW;

void setup() 
{
  pinMode(led, OUTPUT);   
  pinMode(puls, INPUT);
  Serial.begin(9600);
}


void loop(){
  const byte button = digitalRead(puls);
  delay(10); // debounce

  if (button == HIGH) statusled = HIGH;

  if( Serial.available() )      
  {
    val = Serial.read();         
  }

  if( val == 'G' ) statusled = HIGH;

  digitalWrite(led, statusled);  
}

Devi inserire il codice per impostare statusled = LOW perchè altrimenti il led non si spegne.
Può essere un if di un carattere tipo if( val == 'F' ) statusled = LOW; oppure un qualsiasi altro comando.
Per il pulsante puoi vedere l'esempio --> http://arduino.cc/en/Tutorial/ButtonStateChange

per curiosità posso chiederti con che programma, in che linguaggio, e il codice dell'app che hai creato per android?

Grazie Gio