Bit Banging "eigenes" Protokoll / Timing

Hallo zusammen, ich möchte die Funkfernbedienung 433Mhz meiner Terrassenbeleuchtung gern mit einem Arduino nachbilden.

Analyse des Signals ist fertig und hat ergeben, dass “0” und “1” über unterschiedliche Tastverhältnisse codiert werden,

also 0 = kurz High, lang Low (ca. 0,5ms High, 1,5ms Low)
1 = lang High, kurz low (andersherum)

Für jeden Tastendruck wird dann jeweils 12x wiederholt eine spezifische Sequenz gesendet:

  • Zuerst eine “0”,
  • dann ein “Break” (etwa 10ms Low)
  • dann eine Folge von 28x “0” oder “1”, s.o.

(eine “logische” Interpretation dieser Daten steht noch aus, ist aber meiner Meinung auch erstmal zweitrangig).

Sender 433 Mhz ist bestellt, aber ich kann ja schonmal anfangen :wink: Nur: Wie bilde ich das Timing des Protokolls nun ab? Bit Banging ist ja vermutlich das richtige Stichwort, aber wie gehe ich das in diesem konkreten Fall an? Gibt es dafür eine gängige Bibliothek, oder macht man sowas eher simples lieber “händisch”?

Kleine Nebenbedingung, Thema “Interrupts”: Der Arduino soll später mal per UART oder SPI mit einem Raspberry kommunizieren.

Viele Grüße
Zoidberg

Die Libraries RCSwitch und RadioHead sind dir schon begegnet?

Hallo
passen die verwendeten Modulationsarten zueinander ?

Ich gucks mir nachher mal detailiert an, nur vllt schnell vorweg, damit es nicht in eine falsche Richtung geht: Ich suche eher eine Bitbanging- als eine 433Mhz-Library :wink: Ich betrachte es wirklich als “unbekanntes” Protokoll. Den Overhead brauche ich also vermutlich nicht. Oder war es eher als Referenz gemeint, weil auch da irgendwo Bit Banging drinsteckt?

Hallo,
eine einfache Lösung besteht aus einem struct.

struct BITBANGING {
byte bit[länge derBitfolge];
unsigned long bitDauer[länge derBitfolge];
};
BITBANGING  bitBang{
{1,1,1,0,1,1 usw.... },
{50,50,50,50 usw....},
};

und das ganz dann durch einen Timer laufen lassen.

Dann mache Dir zuerst Gedanken über die Empfangsseite, die ist zeitkritischer als die Sendeseite.

Schade, dass dich meine Antwort nicht befriedigt…
Wobei ich mich dann schon frage, ob das jetzt ein Problem mit der Frage, oder der Antwort ist…

Aber egal, du machst ja sowieso was du willst!
Viel Erfolg!

Locker bleiben, ich habe doch geschrieben, dass ich sie mir erst später richtig ansehen kann. Außerdem habe ich doch zu deiner Antwort eine Gegenfrage nachgeschoben. Und zu guter Letzt wollte ich auch einfach nochmal nochmal betonen, dass eher Bit banging im allgemeinen mein “Problem” ist, um den Fokus nicht missverständlich zu sehr auf Funk zu legen.

Ja, es ist immer ein Problem wenn man ausgetretene Pfade ohne Grund verläßt. Aber wenn der Weg das Ziel ist…

Was ist denn deiner Meinung nach der konkrete Pfad, und warum bist du dir sicher, dass die von dir genannten Bibliotheken auf jeden Fall im Einklang mit meinem beliebigen Protokoll liegen?