3,6 V bis 6 V Leitungen arbeiten mit einer Spannung von 3,3 V
Stromaufnahme
bis zu 40 mA
Sendeleistung
Klasse 2 - Sendeleistung max. + 6 dBm
Reichweite
bis zu 10 m
Standard
Bluetooth 2.0 + EDR
Kommunikation
UART (RX, TX)
Standard-Pairing-Code
1234
Abmessungen
37 x 17 mm
Konfiguration
SPP-Profil mit Einstellmöglichkeit über AT-Befehle
Datenrate
9600 bis 38400 baud
Anschlussplan
Abb. 2: Pin-Belegung des HC-05Abb. 3: Anschluss des HC-05 an den Arduino
Tabelle 2: Pin-Belegung des HC-05
Pin
Anschluss
Bemerkung
Arduino
1
EN/Key
Dient zum Umschalten zwischen Befehls- und Datenmodus. Ein hoher Eingang (3,3 V) versetzt das Modul in den Befehlsmodus und ermöglicht AT-Befehle, während ein niedriger Eingang es in den Datenmodus versetzt.
NC
2
VCC (3,6 V bis 6 V)
3,6 V oder 5 V
3
GND
GND
4
TXD
Sendet Daten vom HC-05-Modul an ein anderes Gerät. Anschluss an den RX-Pin eines Mikrocontrollers (z. B. Arduino).
RX <- 0
5
RXD
Empfängt Daten von einem anderen Gerät in das HC-05-Modul. Anschluss an den TX-Pin eines Mikrocontrollers.
TX <- 0
6
STATE
Verbindung zur Status LED
NC
Blinkstatus/STATE
Status-LED: schnelles Blinken = verbindungsbereit
langsames Blinken = Verbindung hergestellt
Blinken im 2-sek-Takt = AT-Modus im AT-Modus lässt sich das Modul per Arduino IDE programmieren
Getting Started
Programmieren Sie den Arduino. Hierbei darf das BT Modul nicht bestromt sein. (Beispiel: Demo_SoftwareSerial.ino)
Verkabeln Sie das BT Modul gemäß Abb. 3.
Bei Spannungsversorgung blinkt die LED auf dem Modul.
Koppeln Sie das BT Modul mit dem PC (Code: 1234).
Führen Sie das MATLAB®-Skript BluetoothIO.m aus.
LED 13 sollte im Sekundentakt blinken.
Demo_SoftwareSerial.ino
Dieses Demo empfängt Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.
Demo_SoftwareSerial.ino
#include<SoftwareSerial.h>SoftwareSerialmySerial(0,1);//RX,TXvoidsetup(){mySerial.begin(9600);mySerial.println("Hallo vom Bluetooth Modul HC-05");pinMode(13,OUTPUT);}voidloop(){charDaten;if(mySerial.available())//wennDatenempfangenwerden...{Daten=mySerial.read();//..sollendieseausgelesenwerdenif(Daten=='1')//wenndasBluetoothModuleine„1“empfängt..{digitalWrite(13,HIGH);//...soll die LED leuchten}elseif(Daten=='0')//wenndasBluetoothModul„0“empfängt...{digitalWrite(13,LOW);//..solldieLEDnichtleuchten}}}
Dieses Demo sendet Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.
BluetoothIO.m
if~exist('HC05')HC05=bluetooth("HC-05",1)% Verbindung aufbauenenddisp('BT zu HC-05 wird aufgebaut...')%% Daten lesenn=HC05.NumBytesAvailable;ifn>0Daten=read(HC05,n);disp(char(Daten))end%% Daten schreibenfori=1:10write(HC05,'1');disp('LED an')pause(1)write(HC05,'0');disp('LED aus')pause(1)endclearHC05
Abb. 4: COM-Port der BT Verbindung zum HC-05Abb. 5: Einstellung: SerialAbb. 6: Einstellung: Force onAbb. 7: BT Fernsteuerung via Putty
Starten Sie Putty
Schauen Sie im Geräte Manager welchem COM-Port die BT-Verbindung zugeordnet wurde (hier: COM5, vgl. Abb. 4).
Stellen Sie Putty ein (vgl. Abb. 5 und 6)
Im Prompt erscheint die Sendemitteilung "Hallo vom Bluetooth Modul HC-05".
Senden Sie '1' und '0', um die LED zu schalten (vgl. Abb. 7).
Demo Versenden (Arduino) und Empfangen (MATLAB) von Fließkommazahlen
DemoSendeFloatSerial.ino
voidsetup(){Serial.begin(9600);Serial.println("Hallo vom Bluetooth Modul HC-05");}voidloop(){floatDatum_f32=1234.567;Serial.println(Datum_f32);delay(1000);Serial.println(-Datum_f32);delay(1000);}
if~exist('HC05')HC05=bluetooth("HC-05",1)% Verbindung aufbauendisp('BT zu HC-05 wird aufgebaut...')elsedisp('Bestehende Verbindung zu HC-05 wird verwendet...')endnDaten=100;% Anzahl der Datensätzei=0;% Datenzählertic;%% Bluetooth empfangenwhilei<nDaten%% Daten lesenn=HC05.NumBytesAvailable;ifn>0ndata=readline(HC05);% Zeile lesenif~isempty(data)i=i+1floatValue(i)=str2double(data);Zeit(i)=toc;endendend
Demo Empfangen (Arduino) und Versenden (MATLAB) von Fließkommazahlen
DemoEmpfangeFloatSerial.ino
voidsetup(){Serial.begin(9600);Serial.println("Hallo vom Bluetooth Modul HC-05");}voidloop(){floatDatum_f32=0.0;if(Serial.available())// wenn Daten empfangen werden... {Serial.readBytes((char*)&Datum_f32,sizeof(Datum_f32));// Bytes auslesenSerial.print("Empfangen: ");Serial.println(Datum_f32,4);// 4 Nachkommastellen}}
if~exist('HC05')disp('BT zu HC-05 wird aufgebaut...')HC05=bluetooth("HC-05",1)% Verbindung aufbauenelsedisp('Bestehende Verbindung zu HC-05 wird verwendet...')endi=0;whilei<1000i=i+1;fDatum=single(i+0.5678)%% Daten senden% Konvertieren der Float-Zahl in einen Byte-ArraybytesToSend=typecast(fDatum,'uint8');% Senden der Byte-Datenwrite(HC05,bytesToSend,"uint8");pause(0.1)end