Hallo,
ich bin zwar Elektroniker, aber eher analog unterwegs.
Mein erstes richtiges Arduino-Projekt soll folgendes werden:
Ich habe vor, wie schon viele andere vor mir, mit einer Infrarotfernbedienung 433MHz Steckdosen zu schalten.
Der Infrarotteil funktioniert auch schonmal sehr gut.
Mit dem Funk sah es da schon etwas schwieriger aus:
Am Anfang wollte ich die Daten des Senders mit hilfe der RCSwitch Library auslesen.
Ich, bzw. der Reciever empfing nichts. Laut Internet geht das per Soundkarte um das Signal zu sehen, oder halt direkt mit den Recieve_Demo_Simple und Advanced.
Ging aber nicht.
Also: Laborbnetzteil, Scope und verschiedene Sender...NIX!
Dann hab ich mir ein Herz gefasst (das Ding kostet ja auch nur soviel wie ein Bier) und den Lack abgekratzt und den Tuner verstellt... Nein eingestellt! Jetzt geht's! Wenn jemand Info braucht einfach an mich. p.s. So verhalf mir der Chinamann dazu wieder etwas Funktechnik zu machen. Zwar unnötig, aber das "Basteln" ist ja das Ziel. Danke.
Nun kann ich sowohl per Soundkarte aufnehmen und analysieren (Audacity oder bei mir beliebter Adobe Audtion) oder per Receive_Demo (beide gehen) die Signale auslesen.
Das mit dem Senden funktioniert auch recht gut. Aber die Steckdosen schalten nicht
Stand jetzt: (nach 4 spannenden Tagen des Versuchens)
- ich weiss was Tristate ist
- ich weiss was der 24 -Bit Code ist
- ich kann alles einstellen, wie Wiederholungen und Sendezeit in Abhängigkeit von Protokoll oder pulsdauer........
und seit gestern habe ich das Problem etwas weiter eingekreist:
Ich habe einfach das was ich mit dem Arduino sende in umständlicher Kleinarbeit mit der Soundkarte aufgenommen und die Pulse und Pausen per Excel von Samples in Dauer (µS) umgerechnet. das gleiche mit dem Originalsignal der Fernbedienung des Herstellers.
Der vergleich ergibt:
- Die lange Pause zwischen den Pulsen ist beim original länger
- Und das Puls Pause Verhältnis ist bei Arduino ziemlich genau 1:1, beim org. 1:2,6
Wie kann man das jetzt senden?
Mir ist übrigens bewusst, dass viele im Netz das mit anderen Steckdosen, am besten mit Mäuseklavier zum einstellen der Adressen lösen. ES MUSS ABER AUCH SO GEHEN! ( Das sagt mir, zumindest bis jetzt, mein Ehrgeiz) Außerdem währe hier vielen geholfen.
Was ich noch herausgefunden habe: Die mit dem ReceiveDemo_Advanced ausgelesenen RAW-Daten sind "nichts weiter" als die Puls, bzw. Pausen längen des Empfangenen Signals in µSekunden. deswegen weichen sie auch jedesmal leicht ab.
Wenn es mir/euch gelänge diese Daten per RCSwitch zu senden sollte es funktionieren. Mit jeder Funksteckdose und eigentlich allem, was nicht gerade mit einem Rolling-Code Ausgestattet ist.
Da ich aber halt bei Programmierung gerademal über das Vorschulniveau hinausbekommen bin:
Wenn ich
void loop() {
mySwitch.send("9964,956,332,312,976,312,976,308,980,304,980,308,980,952,340,304,980,956,336,188,908,276,728,264,124,168,308,60,24,60,236,88,88,204,88,76,80,56,1020,284,440,56,24,40,100,84,12,36,56,
");
delay(1000);
mySwitch.send("9964,956,332,312,976,312,976,308,980,304,980,308,980,952,340,304,980,956,336,188,908,276,728,264,124,168,308,60,24,60,236,88,88,204,88,76,80,56,1020,284,440,56,24,40,100,84,12,36,56,
");
delay(1000);
}
so was sende ist das Ausgangsignal völlig falsch
Kann mir jemand helfen?
LG
TwinRacer850