Code überprüfen bitte :)

hey könnte mir mal jemand sagen warum bei meinem Empfänger absolut nichts passiert ?? GAR NIX

Verkablung :

LED 1 an 6 und GND
LED 2 an 8 und GND

Receiver Data an PIN3
VCC an 5V
GND an GND

Sender :
Der Sender geht und der monitor zeigt mir auch die gewünschten ausgaben an

Verkabelung :

Sender Data an PIN6
VCC an 5v
GND an GND

Mangetschalter 1. Strippe an VCC
2.Strippe an PIN 3
an Widerstand und hinter Widerstand an GND

CODE SENDER

#include <VirtualWire.h>

char *Sendedaten;
#define Sender 6
#define Fensterkontakt 3
int Schalterzustand = 0 ;


void setup ()
{
  vw_set_ptt_inverted(true); 
  vw_set_tx_pin(Sender); 
  vw_setup(4000);
  pinMode(Fensterkontakt,INPUT);
  Serial.begin(9600);
}


void loop()
{
  Schalterzustand = digitalRead(Fensterkontakt);
  if(Schalterzustand ==HIGH)
  {
  Sendedaten = "1";             
  vw_send((uint8_t*)Sendedaten,strlen(Sendedaten));
  vw_wait_tx(); 
  Serial.println("Sende Garage zu");
  }
  else
  {
   
  Serial.println("Sende nichts Garage ist offen");
  }

}

CODE EMPFÄNGER

#include <VirtualWire.h>

#define LEDOffen 6
#define LEDZu    8
#define Empfanger 3


void setup()
{
  vw_set_ptt_inverted(true);
  vw_set_rx_pin(Empfanger);
  vw_setup(4000);
  vw_rx_start();
  
  pinMode(LEDOffen,OUTPUT);
  pinMode(LEDZu,OUTPUT);
  
  Serial.begin(9600);
  }
  
  
 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] == '1')
    {
      Serial.println("Garage ist zu grüne LED leuchtet");
      digitalWrite(LEDZu,HIGH);
      digitalWrite(LEDOffen,LOW);
    }
    else
    {
      Serial.println("Garage ist offen rote LED leuchtet");
      digitalWrite(LEDOffen,HIGH);
      digitalWrite(LEDZu,LOW);
    }
   }
 }

Mfg und danke :slight_smile:

Wenn die Garage offen ist, sendest du gar nichts. Dann musst du die Klammern anders setzen

if (vw_get_message(buf, &buflen))
{
    if(buf[0] == '1')
    {
        //zu
    }
}
else
{
        //auf
}

Da sollte sich aber trotzdem was tun

jetzt leuchtet die eine LED aber bei schließen des schalters schaltet er nicht um

Du sagst ihm ja auch nirgends, dass die Garage nun offen ist. Lediglich über die Serielle Konsole ist das zu sehen. Du musst im else Zweig deines Senders schon '0' senden.
Dein Empfänger nimmt immer nur den Zustand des letzten geschickten Bytes an.

mhm wie müsste dann der code aussehen bzw die else zeile

Sendedaten = "0";

ich habe die Codes geändert und geht immer noch nix

neuer code sender

#include <VirtualWire.h>

char *Sendedaten;
#define Sender 6
#define Fensterkontakt 3
int Schalterzustand = 0 ;


void setup ()
{
  vw_set_ptt_inverted(true); 
  vw_set_tx_pin(Sender); 
  vw_setup(4000);
  pinMode(Fensterkontakt,INPUT);
  Serial.begin(9600);
}


void loop()
{
  Schalterzustand = digitalRead(Fensterkontakt);
  if(Schalterzustand ==HIGH)
  {
  Sendedaten = "1";             
  vw_send((uint8_t*)Sendedaten,strlen(Sendedaten));
  vw_wait_tx(); 
  Serial.println("Sende Garage zu");
  }
  if(Schalterzustand ==LOW)
  {
    Sendedaten = "0";
    vw_send((uint8_t*)Sendedaten,strlen(Sendedaten));
    vw_wait_tx();
    Serial.println("Sende Garage offen");
  }

}

neuer code emfüänger

#include <VirtualWire.h>

#define LEDOffen 6
#define LEDZu    8
#define Empfanger 3


void setup()
{
  vw_set_ptt_inverted(true);
  vw_set_rx_pin(Empfanger);
  vw_setup(400);
  vw_rx_start();
  
  pinMode(LEDOffen,OUTPUT);
  pinMode(LEDZu,OUTPUT);
  
  Serial.begin(9600);
  }
  
  
 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] == '1')
    {
      Serial.println("Garage ist zu grüne LED leuchtet");
      digitalWrite(LEDZu,HIGH);
      digitalWrite(LEDOffen,LOW);
    }
    if(buf[0] =='0')
    {
      Serial.println("Garage ist offen rote LED leuchtet");
      digitalWrite(LEDZu,LOW);
      digitalWrite(LEDOffen,HIGH);
    }
   } 

   }

Was passiert auf deinem Seriellen Monitor?

Also beim Sender halt das was er soll

Empfänger passiert nichts

Ich War gestern im Ausland werde heute abend wieder hier Posten

Mfg

andere lib = erfolg

mit RC Switch konnte ich mein Vorhaben umsetzen und es geht soweit

wenn ihr wollt kann ich die sketches posten

Aber mal was anderes wie kann einen arduino 24/7 laufen

und wielange hält der mit ner 9V batterie oder Akkus ?

btw an VIN kann ich die 9V direkt anlegen weil da vorwiderstand schon drin ist wenn ich das richtig verstanden habe. Aber eig kämen da 5V input hin oder?

Eine Arduino Board mit Batterien/Akkus zu betreiben ist generell Unsinn. Die Zusatzbeschaltung zieht zu viel Strom (50mA für den UNO, davon nur ca. 15mA für den Prozessor). Wenn man das machen will, nimmt man einen nackten Atmega328 und versetzt ihn in den Schlafmodus wenn man nichts macht. Dann kann man den Stromverbrauch im Schlaf auf wenige µA drücken.