Ampel mit Blue­tooth schalten

Lese­zeit: 4 Minu­ten

Lösung
Seite als PDF

Eine Ampel soll mit Hil­fe eines Blue­tooth-Moduls "per Hand" geschal­tet werden.

Bei­spie­le für Blue­tooth-Modu­le HM-10

Das Blue­­tooth-Modul HM-10 arbei­tet mit BLE (Blue­tooth Low Ener­gy) und kann mit Android-Betrieb­s­­sys­­te­­men und iOS umgehen.

Benö­tig­te Bauteile:

  • 3 LEDs (rot, gelb, grün)
  • 3 Wider­stän­de 220 Ω
  • Blue­tooth-Modul HM-10
  • Lei­tungs­dräh­te

Baue die Schal­tung auf.
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­ge der Bau­tei­le zu sehen)

Wenn das Blue­tooth-Modul kor­rekt ange­schlos­sen ist, beginnt die Sta­tus-LED zu blin­ken. Um das Modul nut­zen zu kön­nen, musst du eine App auf dem Smart­phone installieren.

Für Android und iOS ver­füg­ba­re Apps:

Ardui­no Blue­tooth Controller

DSD-Tech

Die eigent­lich vor­ge­se­he­nen Pins RX (0) und TX (1) wer­den beim Hoch­la­den ver­wen­det. Des­halb müss­te das Blue­tooth-Modul vor dem Hoch­la­den her­aus­ge­zo­gen und anschlie­ßend wie­der ein­ge­steckt wer­den. Über die Biblio­thek Soft­wa­re­Se­ri­al kön­nen die Pins RX und TX ande­ren digi­ta­len Pins zuge­ord­net wer­den. Das Her­aus­zie­hen und Wie­der­ein­ste­cken ent­fällt dann.

Im Kopf des Pro­gramms wer­den die Varia­blen defi­niert. Die ein­ge­bun­de­ne Biblio­thek Soft­wa­re­Se­ri­al ist eine Stan­dard­bi­blio­thek, sie muss nicht instal­liert werden.

# include "SoftwareSerial.h"

// Zuordnung von RX und TX: TX → 2, RX → 3
SoftwareSerial BTSerial(2, 3);

// über Bluetooth vom Smartphone gesendeter Wert 
// dieser Wert wird im Programm ausgewertet 
char btDaten; 

// LEDs
int ROT = 5;
int GELB = 6; 
int GRUEN = 7; </softwareserial.h>

Der set­up-Teil defi­niert ledig­lich die pin­Mo­des für die LEDs und star­tet den über Soft­wa­re­Se­ri­al zuge­wie­se­nen Seri­el­len Moni­tor BTSe­ri­al. In den ver­wen­de­ten Apps kön­nen die Mel­dun­gen dann gele­sen werden. 

void setup() 
{ 
  BTSerial.begin(9600);
  pinMode(ROT, OUTPUT);
  pinMode(GELB, OUTPUT); 
  pinMode(GRUEN, OUTPUT); 
}

Den jewei­li­gen LEDs wur­den in der App Wer­te zuge­wie­sen, die im Pro­gramm mit BTSe​ri​al​.read() gele­sen werden:

LED schal­tenTas­te
rot ein1
rot aus2
gelb ein3
gelb aus4
grün ein5
grün aus6

Im loop-Teil wird den gele­se­nen Wer­ten jeweils eine Akti­on 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!");
    }
  }
}

Blue­tooth mit der App ArduinoBlue


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Aufgaben:


Letzte Aktualisierung: 8. Okt 2023 @ 15:49