PitHT05 - Controllo Seriale Bluetooth HC05

Si è utilizzata la scheda Bluetooth HC05 per il controllo tramite porta seriale in sostituzione della seriale di arduino.

Per la verifica ci sono due sketch:

con

Seriale_RX

si sono utilizzate le porte RX e TX di artuino (0 e 1) per verificare se tutto funzionava nel caso di arduino uno e per avere a disposizone una porta seriale nel caso di arduin pro mini e arduino barebones.

con

Bluetooth_RX

si utilizzano le porte 10 e 11 per avere una seriale aggiuntiva tramite la quale comandare arduino. Il collegamento seriale èp stato effettuato tramite pc utilizzando il programma PuTTy

Come si nota dallo schema si è realizzato un piccolo circuito per adattare l'uscita di ardino a 5 V con l'ingresso della scheda che è a 3,3 V.

Prova con Arduino FdT su Breadboard e controllo tramite terminale PUTTY

 

Prova con collegamento tramite Tablet Android e programma di controllo RoboRemo

 

Prova con collegamento tramite Tablet Android e programma di controllo tramite teminale BlueTerm

ozio_gallery_jgallery

Cosa serve:

  • Scheda compatibile BT HC05
  • resistenze

Download:

 

Codice Sorgente:


#include <SoftwareSerial.h>
// 
// codice 1234
//
// vengono usate due porte seriali
// -- la prima su porta USB
// -- la seconda su porta BT accoppiata con arduino tramite i pin 10 e 11
// si puo usare anche la seriale di arduino
//  ARDUINO   !  HC-05 !  CAVO
// 1 (10) TX  !   RX   !  giallo (con resistenze 1 KOhm)
// 0 (11) RX  !   TX   !  blu
#define TXPIN 10 // - Cavo giallo collegato al RX del HC-05 BT con resistenze
#define RXPIN 11 // - Cavo blu    collegato al TX del HC-05 BT
char val; 
SoftwareSerial BlueTooth(RXPIN, TXPIN);
void setup()
{
    pinMode(RXPIN, INPUT);
    pinMode(TXPIN, OUTPUT);
    pinMode(3, OUTPUT); // imposta il pin 3 come uscita
    pinMode(5, OUTPUT); // imposta il pin 3 come uscita
    pinMode(6, OUTPUT); // imposta il pin 3 come uscita
    Serial.begin(9600);
    BlueTooth.begin(9600);
}
void loop()
{
if(BlueTooth.available() > 0)
{
val = BlueTooth.read();
BlueTooth.write(val);      
if( val == '1' ) digitalWrite(3, HIGH); // se il valore è 1 il LED sul pin 3 si accende
if( val == '2' ) digitalWrite(3, LOW); // se il valore è 2 il LED sul pin 3 si spegne
if( val == '3' ) digitalWrite(5, HIGH); // se il valore è 3 il LED sul pin 5 si accende
if( val == '4' ) digitalWrite(5, LOW); // se il valore è 4 il LED sul pin 4 si spegne
if( val == '5' ) digitalWrite(6, HIGH); // se il valore è 5 il LED sul pin 6 si accende
if( val == '6' ) digitalWrite(6, LOW); // se il valore è 6 il LED sul pin 6 si spegne
}
if(Serial.available() > 0)
{
val = Serial.read();      
Serial.write(val);
if( val == '1' ) digitalWrite(3, HIGH); // se il valore è 1 il LED sul pin 3 si accende
if( val == '2' ) digitalWrite(3, LOW); // se il valore è 2 il LED sul pin 3 si spegne
if( val == '3' ) digitalWrite(5, HIGH); // se il valore è 3 il LED sul pin 5 si accende
if( val == '4' ) digitalWrite(5, LOW); // se il valore è 4 il LED sul pin 4 si spegne
if( val == '5' ) digitalWrite(6, HIGH); // se il valore è 5 il LED sul pin 6 si accende
if( val == '6' ) digitalWrite(6, LOW); // se il valore è 6 il LED sul pin 6 si spegne
}
}
 

//#include <SoftwareSerial.h>
//#define TXPIN 10
//#define RXPIN 11
char val; 
//SoftwareSerial BlueTooth(RXPIN, TXPIN);
void setup()
{
    //pinMode(RXPIN, INPUT);
    //pinMode(TXPIN, OUTPUT);
    pinMode(3, OUTPUT); // imposta il pin 3 come uscita
    pinMode(5, OUTPUT); // imposta il pin 3 come uscita
    pinMode(6, OUTPUT); // imposta il pin 3 come uscita
    Serial.begin(9600);
    //BlueTooth.begin(115200);
}
void loop()
{
/*if(Serial.available() > 0)
{
val = Serial.read();      
if( val == '1' ) digitalWrite(3, HIGH); // se il valore è 1 il LED sul pin 3 si accende
if( val == '2' ) digitalWrite(3, LOW); // se il valore è 2 il LED sul pin 3 si spegne
if( val == '3' ) digitalWrite(5, HIGH); // se il valore è 3 il LED sul pin 5 si accende
if( val == '4' ) digitalWrite(5, LOW); // se il valore è 4 il LED sul pin 4 si spegne
if( val == '5' ) digitalWrite(6, HIGH); // se il valore è 5 il LED sul pin 6 si accende
if( val == '6' ) digitalWrite(6, LOW); // se il valore è 6 il LED sul pin 6 si spegne
}
*/
if(Serial.available() > 0)
{
val = Serial.read();      
Serial.write(val);
if( val == '1' ) digitalWrite(3, HIGH); // se il valore è 1 il LED sul pin 3 si accende
if( val == '2' ) digitalWrite(3, LOW); // se il valore è 2 il LED sul pin 3 si spegne
if( val == '3' ) digitalWrite(5, HIGH); // se il valore è 3 il LED sul pin 5 si accende
if( val == '4' ) digitalWrite(5, LOW); // se il valore è 4 il LED sul pin 4 si spegne
if( val == '5' ) digitalWrite(6, HIGH); // se il valore è 5 il LED sul pin 6 si accende
if( val == '6' ) digitalWrite(6, LOW); // se il valore è 6 il LED sul pin 6 si spegne
}
}

Lavarone, 22 febbraio 2015