HC-05 Bluetooth modules koppelen als Master & Slave met AT-commando's
Overzicht
De HC-05 kan zowel Master als Slave zijn (in tegenstelling tot HC-06, alleen Slave). In deze tutorial configureer je twee modules: één als Master, één als Slave, en koppel je ze voor communicatie tussen twee Arduino's.
AT-commando modus activeren
- EN-pin (of KEY-pin) op 5V zetten (knop ingedrukt houden tijdens opstarten)
- TX en RX op Arduino gewisseld aansluiten: Arduino RX → Module RX (via spanningsdeler), Arduino TX → Module TX
- Lege sketch uploaden (RX/TX losmaken tijdens upload!)
- Serial Monitor: "Both NL & CR", 38400 baud
- LED knippert elke 2 seconden → AT-modus actief
Commando-formaat: AT+<PARAMETER>? (opvragen) of AT+<PARAMETER>=<WAARDE> (instellen).
Slave-configuratie
AT→ "OK"AT+UART?→ controleer baudrate (standaard 38400)AT+ROLE?→ "+ROLE=0" (Slave)AT+ADDR?→ adres noteren, bv. 98d3:34:905d3f (nodig voor Master)
Master-configuratie
AT+UART?→ controleer 38400 baudAT+ROLE=1→ Master-modusAT+CMODE=0→ vast adres koppelenAT+BIND=98d3,34,905d3f→ Slave-adres instellen (komma's in plaats van dubbelepunten!)
Na herstart in normale modus (EN laag, TX/RX correct) koppelen ze automatisch: beide LED's knipperen elke 2 seconden = succesvolle verbinding.
Praktisch voorbeeld: Potentiometer & Servo / Knop & LED
Master: Potentiometer (A0) → map 0-1023 naar 0-255 → verstuur via Serial → LED (pin 9) aan/uit via knop van Slave.
Slave: Servo (pin 9) ontvangt waarde 0-255 → schrijft naar servo. Knop (pin 8) stuurt '1' of '0' naar Master voor LED.
// MASTER CODE
#define ledPin 9
int state = 0, potValue = 0;
void setup() { pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); Serial.begin(38400); }
void loop() {
if (Serial.available()) state = Serial.read();
if (state == '1') digitalWrite(ledPin, HIGH);
else if (state == '0') digitalWrite(ledPin, LOW);
potValue = analogRead(A0);
Serial.write(map(potValue, 0, 1023, 0, 255));
delay(10);
}
// SLAVE CODE
#include <Servo.h>
#define button 8
Servo myServo;
int state = 20, buttonState = 0;
void setup() { pinMode(button, INPUT); myServo.attach(9); Serial.begin(38400); }
void loop() {
if (Serial.available()) state = Serial.read();
myServo.write(state); delay(10);
buttonState = digitalRead(button);
Serial.write(buttonState == HIGH ? '1' : '0');
}
Deze setup is de basis voor draadloze sensornetwerken, remote control robots, en multi-Arduino projecten zonder WiFi.
Productieproces
- Je vochtigheidssensor verifiëren en kalibreren voor nauwkeurige metingen
- Bouw een Bluetooth-gecontroleerde Arduino Auto: Complete DIY Handleiding
- Arduino-gestuurde slimme koffiezetapparaat met Bluetooth-bediening en temperatuurmonitoring
- Bluetooth-gecontroleerde Pick-and-Place Robot: Arduino UNO + 2-DOF Arm & Smart Car Chassis
- NeoPixels configureren met Vixen Lights en Arduino: een stapsgewijze handleiding
- ADXL345 Accelerometer met Arduino: Oriëntatie Tracking Stap-voor-Stap
- Je Arduino-robotauto draadloos besturen met HC-05 Bluetooth, NRF24L01 en HC-12 transceiver-modules
- Toolstaal gedemystificeerd: samenstelling, productie en industriële toepassingen
- Bandsaag vs. Cirkelzaag: Belangrijkste Verschillen Uitgelegd
- Bluetooth LE vs. XLE: De Volgende Generatie Asset Tracking & Monitoring
- Bluetooth en Ultrasound Combineren voor Nauwkeurige, Kosten-Effectieve Real-Time Locatietracking