Moin,
ich habe Probleme damit die Funktion richtig auszuführen.
Und zwar empfange ich das Funksignal und das halte Relay wird auch geschaltet wie es soll.
das tast Relay funktioniert auch, nur wiederholt sich das immer wieder, quasi fängt das Relay an zu "Blinken", dieses soll so lange das Funksignal anliegt aber nur einmal tasten. Nun habe ich es mit variablen versucht, diese wird erst zurückgesetzt wenn das Funksignal 1 ist. Leider bleibt es dabei das das tast Relay weiter Blinkt.
kann mir da Jemand helfen?
Verbaut ist auf der Empfänger Seite ein Arduino Uno, ein DollaTek Funkempfänger und eine 4 Relayskarte mit Optokoppler.
Danke
Gruß Fin
[code]
#include <VirtualWire.h>
int holdPin = 3; //halte Relay
int tastPin = 4; //tast Relay
int hold = 1;
void setup()
{
pinMode(tastPin, OUTPUT); //definiton der Ausgänge
pinMode(holdPin, OUTPUT);
digitalWrite(tastPin, HIGH); //relays werden Ausgeschaltet
digitalWrite(holdPin, HIGH);
Serial.begin(9600);
vw_set_ptt_inverted(true); //Empfänger Modul, DollaTec 433 MHz Empfänger
vw_set_rx_pin(2);
vw_setup(1000);
vw_rx_start();
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen));
{
if (buf[0] == '0') //Funktion bei dauerhaften Tastendruck des Senders, halte Relay auf An,
{
Serial.println(buf[0]);
digitalWrite(holdPin, LOW);
if (hold == 1); //tast Relay soll 1sec an und wieder aus.
{
hold = 0;
digitalWrite(tastPin, LOW);
delay(1000);
digitalWrite(tastPin, HIGH);
}
}
if (buf[0] == '1') // beim Loslassen der Sendetaste fällt Relay halten wieder ab
{
hold = 1;
Serial.println(buf[0]);
digitalWrite(holdPin, HIGH);
}
}
}
[/code]