
Die einzelnen LEDs sollen über das Smartphone gesteuert werden.
Zusätzlich kann eine automatische Ampelschaltung gestartet werden.
Benötigte Bauteile:
- 3 LEDs (rot, gelb, grün)
- 3 Widerstände 220 Ω
- Leitungsdrähte

Beachte die ⇒Vorwiderstände verschiedener LEDs
Für Android und iOS verfügbare App:
BluetoothLE (iOS)
![]() | ![]() | ![]() | ![]() |
Vorbereitungen:

Installiere mit dem Boardverwalter das passende Board:
Benötigte Bibliothek:

Baue die Schaltung auf:
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Binde die benötigte Bibliothek ein und definiere die Variablen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include “ArduinoBLE.h” /* eindeutige UUID bestimmen: https://www.guidgenerator.com/online-guid-generator.aspx https://www.uuidgenerator.net/ BLERead | BLEWrite | BLENotify -> schreiben, lesen, Info */ // Name BLE-Service BLEService LEDSchalten(“19b10000-e8f2-537e-4f6c-d104768a1214”); BLEUnsignedCharCharacteristic Auswahl(“19b10000-e8f2-537e-4f6c-d104768a1214”, BLERead | BLEWrite | BLENotify); enum Ampel { ROT = 6, GELB, GRUEN }; |
Der setup-Teil:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | void setup() { Serial.begin(9600); // pinmode festlegen for (int i = ROT; i <= GRUEN; i++) { pinMode(i, OUTPUT); } // BLE starten if (!BLE.begin()) Serial.println(“Bluetooth-Modul konnte nicht gestartet werden!”); else Serial.println(“Bluetooth-Modul erfolgreich gestartet!”); // Name festlegen (wird in der App angezeigt) und den Service (LEDSchalten) zuweisen BLE.setLocalName(“LEDs schalten”); BLE.setAdvertisedService(LEDSchalten); // Auswahl als Platzhalter für den in der App gewählten Wert LEDSchalten.addCharacteristic(Auswahl); // Service LEDSchalten hinzufügen BLE.addService(LEDSchalten); // Startwert für die Kommunikation schreiben Auswahl.writeValue(0); // Zuweisung starten BLE.advertise(); } |
Den jeweiligen LEDs werden in der App Werte zugewiesen:
| Aktion | Taste |
|---|---|
| rot ein | 10 |
| gelb ein | 11 |
| grün ein | 12 |
| rot aus | 20 |
| gelb aus | 21 |
| grün aus | 22 |
| Automatische Ampelschaltung | 30 |
Im loop-Teil wird den Werten jeweils eine Aktion zugeordnet.
Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | void loop() { // auf die Verbindung zu Geräten warten BLEDevice Verbindung = BLE.central(); // wenn der Arduino mit einem Gerät verbunden ist … if (Verbindung) { Serial.println(“Verbunden … ”); // solange der Arduino mit einem Gerät verbunden ist … while (Verbindung.connected()) { /* Dezimal -> Hex-Umrechnung 10 -> A 11 -> B 12 -> C 20 -> 14 21 -> 15 22 -> 16 30 -> 1E */ if (Auswahl.written()) { if (Auswahl.value() == 10) { Serial.print(Auswahl.value()); Serial.println(“ -> rot ein”); digitalWrite(ROT, HIGH); } if (Auswahl.value() == 11) { Serial.print(Auswahl.value()); Serial.println(F(“ -> gelb ein”)); digitalWrite(GELB, HIGH); } if (Auswahl.value() == 12) { Serial.print(Auswahl.value()); Serial.println(F(“ -> gr\u00fcn ein”)); digitalWrite(GRUEN, HIGH); } if (Auswahl.value() == 20) { Serial.print(Auswahl.value()); Serial.println(F(“ -> rot aus”)); digitalWrite(ROT, LOW); } if (Auswahl.value() == 21) { Serial.print(Auswahl.value()); Serial.println(F(“ -> gelb aus”)); digitalWrite(GELB, LOW); } if (Auswahl.value() == 22) { Serial.print(Auswahl.value()); Serial.println(F(“ -> gr\u00fcn aus”)); digitalWrite(GRUEN, LOW); } // Ampel schalten if (Auswahl.value() == 30) { Serial.print(Auswahl.value()); Serial.println(F(“ -> Ampel schalten”)); digitalWrite(ROT, HIGH); delay(5000); digitalWrite(GELB, HIGH); delay(1000); digitalWrite(ROT, LOW); digitalWrite(GELB, LOW); digitalWrite(GRUEN, HIGH); delay(3000); digitalWrite(GRUEN, LOW); digitalWrite(GELB, HIGH); delay(1000); digitalWrite(GELB, LOW); digitalWrite(ROT, HIGH); } } } } } |
Letzte Aktualisierung:










