mercoledì 17 luglio 2019

Arduino N° 6 - Comando Bluetooth 2 canali - 3 effetti


 Achille De Santis





Con un modulo Bluetooth  HC05 / HC06  possiamo realizzare un telecomando a due canali attivabili via telefono;
una qualunque APP a due canali è sufficiente. Dipende dal sistema telefonico utilizzato: Android/IoS.

Comandi da telefono (dopo aver installato idonea APP):

0 - USCITA 1 spenta
1 - USCITA 1 accesa - comando a tenuta
2 - USCITA 2 - comando impulsivo ACCESO/SPENTO

Il primo canale (D10) ha un effetto di tipo "Toggle", cioè cambia stato ad ogni comando; Il secondo canale (D11) ha un effetto "impulsivo", cioè genera un impulso ad ogni comando.





/* ----------------- Inizio Programma ---------------------
  Comando  2 canali, 3 effetti, con Bluetooth
  Accende/Spegne/Impulso
  Achille De Santis il 15-11-2018
*/

// ------------------- I/O --------------------------------------------------------
#define pin1       10  // uscita 1; piedino usato come uscita comando
#define pin2       11  // uscita 2;
// --------------------------------------------------------------------------------

unsigned const T = 500;
char data = 0;

void impulso(int p)
  {
    digitalWrite(p, HIGH);  delay(T); 
    digitalWrite(p, LOW);
    Serial.print(" impulso \n");
  }
  void spegni(int p)  { digitalWrite(p, LOW); Serial.print(" OFF \n"); }
  void accendi(int p) { digitalWrite(p, HIGH); Serial.print(" ON \n"); }

void setup()
{
  Serial.begin(9600);                   // baud-rate per la trasmissione seriale
  pinMode(pin1, OUTPUT);      // pin del 1^ canale (led) di uscita
  pinMode(pin2, OUTPUT);      // pin del 2^ canale (led) di uscita
  impulso(pin2);                         // prova iniziale con LED; si può escludere
}

void loop()
{
  while (Serial.available() )
  {
    data = Serial.read();      // Legge il dato in arrivo e lo mette in data
    Serial.print(data);        // Stampa il valore del dato nel Serial monitor
                                        // (per vederlo ricordate di impostare il baud-rate a 9600)
    switch(data)                // Se il dato ricevuto è...
    {               
      case '0': spegni(pin1);    break;  // comando a tenuta: //disattiva l'uscita e invia il messaggio "OFF"
      case '1': accendi(pin1);   break; // comando a tenuta; // attiva l'uscita e invia il messaggio "ON"
      case '2': impulso(pin2);  break;  // comando impulsivo;
      default: Serial.print (" Comando NON ammesso! \n");    // negli altri casi
    }
  }
}

// ---------------------- Fine Programma -------------------------------------------------------------------------


Nota:
il modulo Bluetooth HC05/HC06 funziona bene con telefono Android!
Per telefoni IoS occorre un bluetooth BLE V.4.0.


schema; manca il modulo bluetooth
v. anche: http://tecnatron.blogspot.com/




Nessun commento:

Posta un commento