

Eine Ampel soll mit Hilfe eines Bluetooth-Moduls "per Hand" geschaltet werden.

Die Bluetooth-Module HC-05 und HM-10 unterscheiden sich in der Verwendung von Apps für Android und iOS..
Die Programmierung ist identisch.
Der HC-05 und funktioniert nur mit Smartphones mit Android-Betriebssystem, der HM-10 kann mit Android-Betriebssystem und iOS umgehen.
Apple-Geräte verwenden BLE (Bluetooth Low Energy), mit dem der HC-05 nicht arbeiten kann.
Benötigte Bauteile:
- 3 LEDs (rot, gelb, grün)
- 3 Widerstände 220 Ω
- Bluetooth-Modul HC05/HM-10
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnunge der Bauteile zu sehen)
Wenn das Bluetooth-Modul korrekt angeschlossen ist, beginnt die Status-LED zu blinken. Um das Modul nutzen zu können, musst du eine App auf dem Smartphone installieren.
Für Android und iOS verfügbare Apps:
![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() |

Die eigentlich vorgesehenen Pins RX (0) und TX (1) werden beim Hochladen verwendet. Deshalb müsste das Bluetooth-Modul vor dem Hochladen herausgezogen und anschließend wieder eingesteckt werden.
Über die Bibliothek SoftwareSerial können die Pins RX und TX anderen digitalen Pins zugeordnet werden. Das Herausziehen und Wiedereinstecken entfällt dann.
Im Kopf des Programms werden die Variablen definiert. Die eingebundene Bibliothek SoftwareSerial ist eine Standardbibliothek, sie muss nicht installiert werden.
# include <SoftwareSerial.h>
// Zuordnung von RX und TX: TX → 3, RX → 4
SoftwareSerial BTSerial(3, 4);
// über Bluetooth vom Smartphone gesendeter Wert
// dieser Wert wird im Programm ausgewertet
char btDaten;
// LEDs
int ROT = 5;
int GELB = 6;
int GRUEN = 7;
Der setup-Teil definiert lediglich die pinModes für die LEDs und startet den über SoftwareSerial zugewiesenen Seriellen Monitor BTSerial. In den verwendeten Apps können die Meldungen dann gelesen werden.
void setup()
{
BTSerial.begin(9600);
pinMode(ROT, OUTPUT);
pinMode(GELB, OUTPUT);
pinMode(GRUEN, OUTPUT);
}
Den jeweiligen LEDs wurden in der App Werte zugewiesen, die im Programm mit BTSerial.read() gelesen werden:
LED schalten | Taste |
---|---|
rot ein | 1 |
rot aus | 2 |
gelb ein | 3 |
gelb aus | 4 |
grün ein | 5 |
grün aus | 6 |
Im loop-Teil wird den gelesenen Werten jeweils eine Aktion zugeordnet:
void loop()
{
if (BTSerial.available())
{
// vom Smartphone gesendeten Wert lesen
btDaten = BTSerial.read();
// rot ein
if (btDaten == '1')
{
digitalWrite(ROT, HIGH);
// gelesenen Wert in der App anzeigen
BTSerial.println("rot an!");
}
// rot aus
if (btDaten == '2')
{
digitalWrite(ROT, LOW);
BTSerial.println("rot aus!");
}
// gelb an
if (btDaten == '3')
{
digitalWrite(GELB, HIGH);
BTSerial.println("gelb an!");
}
// gelb aus
if (btDaten == '4')
{
digitalWrite(GELB, LOW);
BTSerial.println("gelb aus!");
}
// grün an
if (btDaten == '5')
{
digitalWrite(GRUEN, HIGH);
BTSerial.println("gr\u00fcn an!");
}
// grün aus
if (btDaten == '6')
{
digitalWrite(GRUEN, LOW);
BTSerial.println("gr\u00fcn aus!");
}
}
}

➨Bluetooth mit der App ArduinoBlue
Verwandte Aufgaben:
- DHT22 - Wetterdaten mit Bluetooth-Modul übermitteln
- LEDs mit Bluetooth schalten
- Ampel mit Arduino WiFi und Bluetooth schalten
Letzte Aktualisierung: