[RISOLTO] Accendere led Con HC-05 e Blueterm

Ciao Ragazzi, alla fine sono riuscito a configurare il mio HC-05.
Adesso ho un nuovo problemino....credo sia facilmente risolvibile
La configurazione è questa

HC05 ARDUIN0
3.3 3.3
GND GND
RX RX
TX TX

In pratica vorrei accendere il LED sul PIN13 di arduino premendo su Blueterm (android) "1" e spegnerlo con "0"
Se lo faccio con blueterm non accade niente, mentre se lo faccio da serial monitor funziona e su Blueterm mi compare il comando che gli ho dato(es. 1 oppure 0)

questo è il codice di arduino:

int led1= 13;

void setup()
{
pinMode(led1,OUTPUT);

Serial.begin(9600);
Serial.println("Controllo LED Bluetooth - Home Control V1.0");
delay(1000);
}

void loop()
{
while (Serial.available())
{
char dato= Serial.read();
switch(dato)
{
case '1':
{
digitalWrite(led1, HIGH);
Serial.println("Acceso");
break;
}
case '0':
{
digitalWrite(led1, LOW);
Serial.println("Spento");
break;
}
}
}
}

Idee?

... mmm ... sarebbe interessante che tu facessi un programmino che ti visualizza sul serial monitor quello che in realtà arriva sul bluetooth.

Colleghi il bluetooth ad una SoftwareSerial e, tutto quello che ricevi, lo stampi sulla Serial ... così scopri cosa REALMENTE ti manda Blueterm ... e magari scopri dove è il problema :wink:

Guglielmo

P.S. : Racchiudi sempre il codice all'interno dei tag CODE (bottoncino # quando sei in edit)

Non è molto chiaro questo concetto....

dxcoco2:
Non è molto chiaro questo concetto…

Intendo che, dato che dici che se mandi 0 e 1 da Serial monitor tutto funziona, mentre se lo mandi attraverso Bluetooth non va, allora forse c’è un problema di comunicazione …

Per vedere esattamente cosa succede, crei una seconda seriale con la SoftwareSerial (es. pin 10 e pin 11) e li ci attacchi il modulo bluetooth, il Serial monitor lo tieni aperto e, metti su un programmino che ogni carattere che riceve sulla SoftwareSerial lo trasmette alla vera Seriale (il monitor).

A questo punto, tu da Blueterm provi a mandare lo 0 e 1 e sul monitor vedi esattamente se arrivano correttamente o … se ci sono problemi.

Un po’ più chiaro ???

Guglielmo

Ragazzi ho risolto!
posto il codice nel caso in cui servisse a qualcuno

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11);
int led1= 13;
int led2= 2;
int led3= 3;
int led4= 4;

void setup()
{
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);


   mySerial.begin(9600);
   Serial.println("Controllo LED Bluetooth - Home Control V1.0");
   delay(1000);
}


void loop()
{
   while (mySerial.available())
   {
       char dato= mySerial.read();
       switch(dato)
       {
         case '1':
         {
  digitalWrite(led2, HIGH);
            mySerial.println("Led Blu Acceso");
           break;
         }
         case '4':
         {
  digitalWrite(led2, LOW);
           mySerial.println("Led Blu Spento");
           break;
         }    
              case '2':
         {
  digitalWrite(led3, HIGH);
           mySerial.println("Led Giallo Acceso");
           break;
         } 
              case '5':
         {
  digitalWrite(led3, LOW);
           mySerial.println("Led Giallo Spento");
           break;
          }
              case '3':
         {
  digitalWrite(led4, HIGH);
           mySerial.println("Led Verde Acceso");
           break;
         } 
             case '6':
         {
  digitalWrite(led4, LOW);
           mySerial.println("Led Verde Spento");
           break;
         }     
                     case '9':
         {
  digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
      digitalWrite(led4, HIGH);
           mySerial.println("Led Accesi");
           break;
         }     
                              case '0':
         {
  digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);
           mySerial.println("Led Spenti");
           break;
         }   
       }       
   } 
}

Grazie a tutti voi in particolare a Guglielmo!

A presto

dxcoco2:
...
Grazie a tutti voi in particolare a Guglielmo!
...

Bene, sono contento che tutto ti funziona :slight_smile:

Guglielmo

dxcoco2:
Ragazzi ho risolto!
posto il codice nel caso in cui servisse a qualcuno

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11);
int led1= 13;
int led2= 2;
int led3= 3;
int led4= 4;

void setup()
{
 pinMode(led2, OUTPUT);
 pinMode(led3, OUTPUT);
 pinMode(led4, OUTPUT);

mySerial.begin(9600);
  Serial.println(“Controllo LED Bluetooth - Home Control V1.0”);
  delay(1000);
}

void loop()
{
  while (mySerial.available())
  {
      char dato= mySerial.read();
      switch(dato)
      {
        case ‘1’:
        {
 digitalWrite(led2, HIGH);
           mySerial.println(“Led Blu Acceso”);
          break;
        }
        case ‘4’:
        {
 digitalWrite(led2, LOW);
          mySerial.println(“Led Blu Spento”);
          break;
        }    
             case ‘2’:
        {
 digitalWrite(led3, HIGH);
          mySerial.println(“Led Giallo Acceso”);
          break;
        }
             case ‘5’:
        {
 digitalWrite(led3, LOW);
          mySerial.println(“Led Giallo Spento”);
          break;
         }
             case ‘3’:
        {
 digitalWrite(led4, HIGH);
          mySerial.println(“Led Verde Acceso”);
          break;
        }
            case ‘6’:
        {
 digitalWrite(led4, LOW);
          mySerial.println(“Led Verde Spento”);
          break;
        }    
                    case ‘9’:
        {
 digitalWrite(led2, HIGH);
   digitalWrite(led3, HIGH);
     digitalWrite(led4, HIGH);
          mySerial.println(“Led Accesi”);
          break;
        }    
                             case ‘0’:
        {
 digitalWrite(led2, LOW);
   digitalWrite(led3, LOW);
     digitalWrite(led4, LOW);
          mySerial.println(“Led Spenti”);
          break;
        }  
      }      
  }
}




Grazie a tutti voi in particolare a Guglielmo!

A presto

Grazie per aver condiviso!
Mi hai risolto il problema…ed un grazie, ovviamente, anche a Guglielmo.