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
Cosa serve:
- Scheda compatibile BT HC05
- resistenze
Download:
- PitBT_HC05 Schema PDF - bottom
- PitBT_HC05 Schema PDF - top
- PitBT_HC05 Schema Fritzing
- PitBT_HC05 Sketch Arduino
- Seriale_RX Sketch Arduino
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