Verstehe ich PulseIn richtig?

Moin,

ich versuche gerade meine 433 MHz Funksteckdose zu knacken. Leider passt sie nicht in die RCSwitch Library :frowning: Daher will ich die Pulse selbst messen. Frage: wenn duration=PulseIn(xxx) einen Wert 1200 ausgibtm ist das dann in µ-Sekunden? Sind das dann 1,2 Millisekunden?

Laut Dokumentation sind das Microsekunden

Arbeitsbereich dieser Funktion
Zitat: "10 microseconds to 3 minutes in length"

http://arduino.cc/en/Reference/PulseIn

PulseIn mißt aber nur den Positiven Impuls oder die Länge der Pause.
PulseIn ist nicht geeignet um die Puls und Pausen-Längen einer Sequenz von Impulsen und Pausen verschiedener Längen zu messen.
Da ist es einfacher den Eingang einer Soundkarte mit dem richtigen programm als Speicheroszilloskop zu mißbrauchen.

Viele Grüße Uwe

Was sind denn das für Steckdosen (ich würde die Library gerne erweitern...)? Spuckt das ReceiveDemo Example Sketch aus der Library irgendetwas aus?

Wenn Du kein Oszi hast, hier die Version für ganz arme :wink:

Folgendes Sketch liest fortlaufend die Zeitabstände von 500 Changes auf Interrupt 0 (Pin2) aus und spuckt sie seriell aus. Unter rc-switch raw data viewer kannst Du die ausgegebene Liste eintragen und bekommst das Ergebnis einigermaßen hübsch dargestellt. Sieht dann ungefähr so aus:

#define maxChanges 500

unsigned int changeCount;
unsigned int timings[maxChanges];
unsigned long lastTime;
int nStartValue;

void setup() {
  Serial.begin(9600);
 
  lastTime = micros();
  changeCount = 0;
 
  attachInterrupt(0, r, CHANGE);
}

void loop() {
 
}

void output() {

}

void r() {
  long time = micros();
  if (changeCount ==1) {
    nStartValue = digitalRead(2) ;
  }
  timings[changeCount++] = time - lastTime;
  lastTime = time;
  if (changeCount-1 >= maxChanges) {
    if (nStartValue == 0) {
      Serial.print(1); Serial.print(',');
    }
    for (int i = 1; i<changeCount-1; i++) {
      Serial.print(timings[i]);
      Serial.print(",");
    }
    Serial.println();
    Serial.println();
    changeCount = 0;
  }
}

Hi sui,

das wäre mal ein super Angebot von Dir. Es sind Schalter von Quigg. Sie heßne GT-7008AS und können codes lernen:

http://shop.zeitlos-vertrieb.de/Multimedia/Funksteckdosen/Funksteckdosenset-GT-7008A/

Ich habe die Signalfolgen aus der Mega32_Steckdosen.rar Datei von

http://www.mikrocontroller.net/topic/121567

mal in Arduino eingehackt. Dann habe ich das ganze mit dem 433 MHz Sender von Big C

http://www.conrad.de/ce/de/product/130428/SENDE-EMPFAeNGERMODULSET-433MHZ

gesendet. Wenn ich eine Quigg Steckdosen mit diesen beiden An/Aus Codes anlerne, dann kann ich eine damit schalten.

Ich habe aber noch drei weitere Dosen... Die habe ich nicht mit einem anderen Code belernen können, da ich die Systematik noch nicht kapiert habe. Daher wäre eine Erweiterung der Lib genial!

sui,

auf so ein Analysesketch habe ich schon eweig gewartet!!! Der hätte uns damals beim Reversen des 433 MHz Thermometers galube gut unterstützt :slight_smile:

Hier die Codes:

Dose 1 an:

Dose 1 aus:

Dose 2 an:

Dose 2 aus:

Jomelo:
Laut Dokumentation sind das Microsekunden

Arbeitsbereich dieser Funktion
Zitat: "10 microseconds to 3 minutes in length"

http://arduino.cc/en/Reference/PulseIn

Um mich Topicrelevant zu bendanken bedanke ich mich bei Dir, Jomelo, .......

uwefed:
PulseIn mißt aber nur den Positiven Impuls oder die Länge der Pause.
PulseIn ist nicht geeignet um die Puls und Pausen-Längen einer Sequenz von Impulsen und Pausen verschiedener Längen zu messen.
Da ist es einfacher den Eingang einer Soundkarte mit dem richtigen programm als Speicheroszilloskop zu mißbrauchen.

Viele Grüße Uwe

..... und natürlich auch bei Dir, Uwe! :slight_smile: Das war ja Ursprünglich meine Frage.

DE8MSH:
Hier die Codes:

2an und 2aus sehen absolut gleich aus :wink:

Ich wollte gerade schon sagen es sei Manchester Code, weil da nur zwei verschiedene Längen mit "1lang" so lang wie "2kurz" ist... aber irgendwie kommt das ohne Flanke bei den ?? nicht hin, oder?

Werd' nacher mal weiterknobeln...

Wenn der Coder/Decoder die Bausteine HX2262/HX2272 sind dann hätte ich da eine Idee.

Der HX2262 (und kompatible) arbeitet nicht mit einer binären Logik sondern mit einer tertiären. Die Eingänge können H,L und nicht beschaltet (float) sein, also 3 Zustände haben.
Meist verwendet man nur 2 Eingangspegel aber es sind 3 möglich.

laut http://www.princeton.com.tw/downloadprocess/downloadfile.asp?mydownload=PT2262_1.pdf werden die Bits aber andes decodiert:

Jedes Bit besteht aus 2 Impulsen. Die Periodendauer eines Bits (also 2 Impulse) ist 32 Oszilatorschwingungen des 2262 lang.

Die Zahl gibt die Zeit in Oszilatorperioden an:
Bit 0 besteht aus : 4H, 12L, 4H, 12L
Bit 1 besteht aus : 12H, 4L, 12H, 4L
Bit float besteht aus: 4H, 12L, 12H, 4L

Im Endefekt ist die Dauer der Impulse bzw Pausen 1 oder 3 mal 4 Oszillatoperioden lang (lang ist 3*kurz).
Das stimmt aber auch wieder nicht mit der Aufzeichnung zusammen.
Meine Idee bringt auch keinen Durchbruch.

Grüße Uwe

Hi Leute,

hier nochmal neue Daten:

2 an:

2 aus:

3 an:

3 aus:

Das 2x gleiche "2er" vorhin habe ich wohl doppelt geupped :wink:

@DE8MSH Kannst Du die Fernsteuerung / Steckdose öffnen und nachsehen welches IC darin ist?
Viele Grüße Uwe

uwefed:
Wenn der Coder/Decoder die Bausteine HX2262/HX2272 sind dann hätte ich da eine Idee.

Hi Uwe,

das dumme ist, dass in dem Geber kein großer IC gelötet ist, sondern alles in einer schwarzen Perle versteckt ist.

EDIT: Und die doesen bekomme ich auch nicht auf, da sie so dreieckige Schrauben haben :frowning:

Ja, das macht das etwas schwieriger.

Mir Geber meinst Du die Fernsteuerung?

Grüße Uwe

Ja, mit Geber meine ich immer die Fernbedienung :wink: Alter Radio- und Fernsehtechniker-Slang. Habe die Dose doch mit einem schmalen Schlitzschraubenzieher aufbekommen. Leider auch kein Chip drinnen. Nur eine Perle.

Hilft das weiter:

http://avr.börke.de/Funksteckdosen.htm

oder das:

http://ethersex.de/index.php/HowToRFM12_ASK#Beispiel_Tevion-Codes

Das letzte habe ich gerade lange gesucht und wiedergefunden. Ich glaube, dass ich las, dass die Quigg die Tevion sind.... Ich blicke durch diese ge"0"e, ge"1"e und ge"f"e nicht durch...

Das was ich aufnahm sieht ähnlich dem Bild hier

8< 8< 8< 8< 8<


8< 8< 8< 8< 8<

von der Seite http://ethersex.de/index.php/HowToRFM12_ASK#Beispiel_Tevion-Codes aus....

DE8MSH:
... Leider auch kein Chip drinnen. Nur eine Perle.

Wäre auch zu schön gewesen :wink: :wink:
Grüße Uwe

DE8MSH:
Hilft das weiter:

http://avr.börke.de/Funksteckdosen.htm

Nein das ist der 1-3 Längencode des 2262/2272

DE8MSH:
oder das:

http://ethersex.de/index.php/HowToRFM12_ASK#Beispiel_Tevion-Codes

Sieht schon besser aus.

Also kurz, egal ob H oder L ist 0 und lang H oder L ist 1

also wäre
2 An
0100 1101 0010 1010 1010 1010 1100 1011 0010 1101 0
2 aus:
0100 1101 0010 1010 1010 1010 1100 1010 1010 1100 1
3 an:
0100 1101 0010 1010 1010 1010 1101 0011 0010 1100 1
3 aus
0100 1101 0010 1010 1010 1010 1101 0010 1010 1101 0

Wobei die Farben purple Steckdose 2 ist und green Steckdose 3 ( könnten nocht einige startbits dabei sein). Rot ist aus und blau ist ein. Der Rest ein oder mehrere Paritätsbit?

Grüße Uwe

Hmmm... ich glaube ich hätte da eine Deutung.

  • Fängt immer mit (ziemlich lange) ~15000us Low + 600us High an (wohl zum synchronisieren)
  • 600us Low + 1200us High => 0
  • 1200us High + 600us Low => 1

Die ca. ersten 2/3 Bits sind bei allen drei gleich, wird wohl 'ne Art Gruppencode der Fernbedienung sein. Der Rest unterscheidet sich, wobei ungefähr alles bis zum letzten Bit der Gerätecode der einzelnen Steckdose und das letzte An/Aus sein könnte.

sui ich muß Dir widersprechen. Laut Reply #10 ist Deine Theorie falsch.
Grüße Uwe