Bluetooth-Module HC-05 und HC-06 am Arduino
FunduinoZuletzt aktualisiert am
Eine LED per Smartphone schalten – auch per Sprachbefehl
Das Bluetooth-Modul anschließen
Eine LED per Bluetooth schalten
Programmcode – LED per Bluetooth schalten
char blueToothVal; // Werte sollen per Bluetooth gesendet werden
char lastValue; // speichert den letzten Status der LED (on/off)
void setup()
{
Serial.begin(9600); // Serielle Verbindung starten, Baudrate auf 9600 festgelegt
pinMode(13, OUTPUT); // Pin 13 wird als Ausgang festgelegt
}
void loop()
{
if (Serial.available()) // wenn Daten empfangen werden ...
{
blueToothVal = Serial.read(); // ... sollen diese ausgelesen werden
}
if (blueToothVal == '1') // wenn das Bluetooth-Modul eine "1" empfängt ...
{
digitalWrite(13, HIGH); // ... soll die LED leuchten
if (lastValue != '1') // wenn der letzte empfangene Wert keine "1" war ...
Serial.println(F("LED is on")); // ... soll im Seriellen Monitor "LED is on" erscheinen
lastValue = blueToothVal;
}
else if (blueToothVal == '0') // wenn das Bluetooth-Modul eine "0" empfängt ...
{
digitalWrite(13, LOW); // ... soll die LED nicht leuchten
if (lastValue != '0') // wenn der letzte empfangene Wert keine "0" war ...
Serial.println(F("LED is off")); // ... soll im Seriellen Monitor "LED is off" erscheinen
lastValue = blueToothVal;
}
}Sprachsteuerung: den Aufbau erweitern
Sprachsteuerung: der Programmcode
Programmcode – Sprachsteuerung für fünf LEDs
String voice;
int
ledweiss = 2, // Die weiße LED mit Pin 2 verbinden
ledrot = 3, // Die rote LED mit Pin 3 verbinden
ledblau = 4, // usw.
ledgelb = 5,
ledgruen = 6;
void allon() // Die Funktion für den Befehl, alle LEDs anzuschalten
{
digitalWrite(ledweiss, HIGH);
digitalWrite(ledrot, HIGH);
digitalWrite(ledblau, HIGH);
digitalWrite(ledgelb, HIGH);
digitalWrite(ledgruen, HIGH);
}
void alloff() // Die Funktion für den Befehl, alle LEDs auszuschalten
{
digitalWrite(ledweiss, LOW);
digitalWrite(ledrot, LOW);
digitalWrite(ledblau, LOW);
digitalWrite(ledgelb, LOW);
digitalWrite(ledgruen, LOW);
}
void setup()
{
Serial.begin(9600);
pinMode(ledweiss, OUTPUT); // Die Pins mit den LEDs werden als Ausgänge festgelegt
pinMode(ledrot, OUTPUT);
pinMode(ledblau, OUTPUT);
pinMode(ledgelb, OUTPUT);
pinMode(ledgruen, OUTPUT);
}
void loop()
{
while (Serial.available()) // prüfen, ob lesbare Werte vorhanden sind
{
delay(10);
char c = Serial.read();
if (c == '#') { break; } // "#" zeigt das Ende eines Befehls an, deshalb wird die Schleife bei einem "#" verlassen
voice += c;
}
if (voice.length() > 0)
{
Serial.println(voice);
// in diesem Abschnitt werden die Befehle den einzelnen Funktionen zugeordnet
if (voice == "*alle an") { allon(); } // alle Pins sollen angeschaltet werden (vorher festgelegte Funktion allon)
else if (voice == "*alle aus") { alloff(); } // alle Pins sollen ausgeschaltet werden (vorher festgelegte Funktion alloff)
// in diesem Abschnitt wird das Einschalten der einzelnen LEDs festgelegt
else if (voice == "*weiß an") { digitalWrite(ledweiss, HIGH); }
else if (voice == "*rot an") { digitalWrite(ledrot, HIGH); }
else if (voice == "*blau an") { digitalWrite(ledblau, HIGH); }
else if (voice == "*gelb an") { digitalWrite(ledgelb, HIGH); }
else if (voice == "*grün an") { digitalWrite(ledgruen, HIGH); }
// in diesem Abschnitt wird das Ausschalten der einzelnen LEDs festgelegt
else if (voice == "*weiß aus") { digitalWrite(ledweiss, LOW); }
else if (voice == "*rot aus") { digitalWrite(ledrot, LOW); }
else if (voice == "*blau aus") { digitalWrite(ledblau, LOW); }
else if (voice == "*gelb aus") { digitalWrite(ledgelb, LOW); }
else if (voice == "*grün aus") { digitalWrite(ledgruen, LOW); }
voice = "";
}
}Die App „BT Voice Control for Arduino“
1 / 2
Fertig!
Anleitung bewerten