PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Funkmodul / Steckdose mit bascom



Typer
24.12.2011, 12:52
Hi,
ich habe ein Funk-Steckdosen-Set von ELV. Von diesem habe ich den Handsender demontiert und
das Sendemodul an einen Atmega 168 angeschlossen. Nun lassen sich mein Funksteckdosen von ELV
mit dieser Platine per Taste bzw per Timer schalten. (Geht alles einwandfrei)

Nun zu meiner Frage:
Ich möchte mit einem Empfänger + Atmega noch andere Dinge schalten als die fertigen Funksteckdosen.
leider habe ich keine Ahnung wie ich mein gesendetes Signal wieder in nützliche Daten umwandeln kann.

Hier mal ein Auszug meines selbst gebauten Senders:


'##### Funk-Settings #####
'-------------------------

Const Fdelay = 325 ' 325 oder 345 funktioniert (Sendepausen)

Dim Zähler1 As Byte
Dim Zähler2 As Byte
Dim Zähler3 As Byte

Dim Funkcode As String * 12
Dim One_str As String * 1

'Gruppen
Const Gruppe_a = "1fff"
Const Gruppe_b = "f1ff"
Const Gruppe_c = "ff1f"
Const Gruppe_d = "fff1"

'Steckdosen + Konstante (00)
Const Steckdose_1 = "1ff000"
Const Steckdose_2 = "F1f000"
Const Steckdose_3 = "Fff100"

Const Dose_ein = "10"
Const Dose_aus = "01"

'Funkpin B.5 an Sendemodul (Masse verbinden)
Config Portb.5 = Output
Funkpin Alias Portd.4
Funkcode = ""

...

For Zähler1 = 1 To 8
Funkcode = Gruppe_a + Steckdose_1 + Dose_ein
Gosub Sendecodes
Next Zähler1

...

'##### Sende Signal #####
'---------------------
Sendecodes:
For Zähler2 = 1 To 3
For Zähler3 = 1 To 12
One_str = Mid(funkcode , Zähler3 , 1)
Select Case One_str
Case "0"
Gosub Sende_null
Case "f"
Gosub Sende_float
Case "1"
Gosub Sende_eins
End Select
Next Zähler3
Gosub Sende_sync
Next Zähler2
Return


Sende_float:
Funkpin = 1
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
' die nächsten 4 Takte
Funkpin = 1
Waitus Fdelay
Funkpin = 1
Waitus Fdelay
Funkpin = 1
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Return


Sende_null:
Funkpin = 1
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
' die nächsten 4 Takte
Funkpin = 1
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Return


Sende_sync:
'laenge gesamt 32 Takte
Funkpin = 1
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Waitus Fdelay
Return

Sende_eins:
Funkpin = 1
Waitus Fdelay
Funkpin = 1
Waitus Fdelay
Funkpin = 1
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
' die nächsten 4 Takte
Funkpin = 1
Waitus Fdelay
Funkpin = 1
Waitus Fdelay
Funkpin = 1
Waitus Fdelay
Funkpin = 0
Waitus Fdelay
Return


Mit diesem "Funkcode" schaltet sich nun Steckdose1 der Gruppe A ein

Ich versuche nun schon länger ein geeignetes Gegenstück mit Bascom zu programmieren, leider ohne Erfolg.
Wie würde denn in etwa der Code im Empfänger aussehen.

habe versucht mit einem Timer zeitabstände der Signale zu messen und so auszuwerten. Hab ich aber nicht hin bekommen.

Wäre sehr dankbar wenn mir jemand unter die Arme greifen könnte. (bitte in Bascom)

Vielen Dank und noch frohe Weihnachten und schöne Festtage.

Typer
26.12.2011, 08:08
hhhmmm, weiß keiner Rat oder einen Tipp?

Chrisl77
28.12.2011, 12:52
Hallo,
ich kenne mich leider nur mit C aus.
Ich versuche auch gerade die Funksteckdose anzusteuern.
Bis jetzt habe ich den Datenframe der laut Protokoll vorgegeben ist programmiert....

Aber ich verstehe nicht so richtig wie ich der Steckdose den Hauscode und die Adresse zuweisen soll.
Muss ich dafür die Programmiertaste an der Steckdose drücken und einfach den ganzen Frame + Befehl(steckdose ein) 1x senden..
Oder gibt es da eine andere Abfolge?

Könntest du diesen Schritt evtl. kurz für dummis:) nocheinmal erklären?

Wie meinst du das eigl deine Sendedaten in nützliches umwandeln?
Etwas genauer.....

Typer
28.12.2011, 17:45
HI,

1. Welches Funkset hast du? Meine Steckdosen haben keinen Schalter/Taster
2. Ich hab an meinem Handsender einfach ein Ozi (geht glaube auch mit einer Soundkarte) angeschlossen und den Sendecode aufgemalt (auf Papier) und das mit allen Tasten, dann sieht man welches Bit sich ändert und so hatte ich dann die Code für Gruppe, Steckdose und an/aus

3. Ich meine damit den Datenimpuls der vom Handsender gesendet wird möchte ich mit einem µC wieder in Bits und Bytes umwandeln damit ich damit etwas anfangen kann.

Chrisl77
28.12.2011, 18:09
ich habe die FS20 ST3 steckdose und einen 868MHz sender, den ich ebenfalls über einen µC ansteure...
übrigens gibt es hier das Protokoll für die Funksteckdosen von ELV...
http://fhz4linux.info/tiki-index.php?page=FS20+Protocol