[quote author=michiarduino date=1583254610 link=msg=4500049]
Hallo,
mein Problem besteht darin,das ich das gesendete Signal (in diesem Fall 'a' ),solange eingeschaltet werden soll,bis das Signal ('d')gesendet wird.
Wie aus dem Sketch zu erkennen,soll damit eine Alarmanlage über Bluetooth eingeschaltet werden.
(WLan,433MhZ-Sender usw.können nicht zum Einsatz kommen).
void Alarm soll auch noch weiter ausgeführt werden,wenn aktiviert,wenn die BT-Verbindung nicht mehr vorhanden ist.(Also Alarm eingeschaltet und dann vom Einsatzort entfernen)
(Später soll dann noch per SMS ein Signal gesendet werden,falls es beachtet werden muss)
Mein Problem ist das ich die Schleife nicht hinbekomme,das "void alarm" so lange ausgeführt werden soll,bis eben das Signal ('d')gesendet wird.
[int Alarmausgang = 3; //digital3
int Horn = 4; //digital4
int bewegung = 7; //digital7
int bewegungsstatus = 0;
#include "HC05.h"
void setup() {
Serial.begin(9600);
pinMode(Alarmausgang, OUTPUT);
pinMode(Horn, OUTPUT);
pinMode(bewegung, INPUT);
}
void alarm()
{
bewegungsstatus = digitalRead(bewegung);
if (bewegungsstatus == HIGH)
{Serial.println("Alarmausgang");
digitalWrite(Alarmausgang, HIGH);
digitalWrite(Horn, HIGH);
delay(500);
digitalWrite(Horn, LOW);
delay(500);
digitalWrite(Horn, HIGH);
delay(500);
digitalWrite(Horn, LOW);
delay(500);
digitalWrite(Horn, HIGH);
delay(500);
digitalWrite(Horn, LOW);
delay(500);
digitalWrite(Horn, HIGH);
delay(500);
digitalWrite(Horn, LOW);
delay(500);
digitalWrite(Alarmausgang, LOW);
}
else
{
digitalWrite(Alarmausgang, LOW);
digitalWrite(Horn, LOW);
}
}
void alarmaus() {
digitalWrite(Horn, HIGH);
delay(100);
digitalWrite(Horn, LOW);
delay(200);
digitalWrite(Horn, HIGH);
delay(100);
digitalWrite(Horn, LOW);
digitalWrite(Alarmausgang, LOW);
}
void loop() {
if (Serial.available() > 0)
{ char data = Serial.read();
if (data == 'a') { //EmpfangBluetooth
alarm();
}
if (data == 'd') { //EmpfangBluetooth
alarmaus();
}
}
}
]
int Alarmausgang = 3; //digital3
int Horn = 4; //digital4
int bewegung = 7; //digital7
int bewegungsstatus = 0;
#include "HC05.h"
void setup() {
Serial.begin(9600);
pinMode(Alarmausgang, OUTPUT);
pinMode(Horn, OUTPUT);
pinMode(bewegung, INPUT);
}
void alarm()
{
bewegungsstatus = digitalRead(bewegung);
if (bewegungsstatus == HIGH)
{Serial.println("Alarmausgang");
digitalWrite(Alarmausgang, HIGH);
digitalWrite(Horn, HIGH);
delay(500);
digitalWrite(Horn, LOW);
delay(500);
digitalWrite(Horn, HIGH);
delay(500);
digitalWrite(Horn, LOW);
delay(500);
digitalWrite(Horn, HIGH);
delay(500);
digitalWrite(Horn, LOW);
delay(500);
digitalWrite(Horn, HIGH);
delay(500);
digitalWrite(Horn, LOW);
delay(500);
digitalWrite(Alarmausgang, LOW);
}
else
{
digitalWrite(Alarmausgang, LOW);
digitalWrite(Horn, LOW);
}
}
void alarmaus() {
digitalWrite(Horn, HIGH);
delay(100);
digitalWrite(Horn, LOW);
delay(200);
digitalWrite(Horn, HIGH);
delay(100);
digitalWrite(Horn, LOW);
digitalWrite(Alarmausgang, LOW);
}
void loop() {
if (Serial.available() > 0)
{ char data = Serial.read();
if (data == 'a') { //EmpfangBluetooth
alarm();
}
if (data == 'd') { //EmpfangBluetooth
alarmaus();
}
}
}
ALarm.ino (1.38 KB)