system
July 17, 2014, 7:09pm
#1
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
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
system
July 17, 2014, 7:53pm
#3
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.
system
July 17, 2014, 8:53pm
#5
mhm wie müsste dann der code aussehen bzw die else zeile
system
July 17, 2014, 9:14pm
#7
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?
system
July 19, 2014, 7:47am
#9
Also beim Sender halt das was er soll
Empfänger passiert nichts
Ich War gestern im Ausland werde heute abend wieder hier Posten
Mfg
system
July 20, 2014, 3:05pm
#10
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.