- Labornetzteil AliExpress         
Ergebnis 1 bis 3 von 3

Thema: Infrarotübertragung (protokoll?)

  1. #1

    Infrarotübertragung (protokoll?)

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Ich möchte eine Infrarotübertragung aufbauen. Die Empfänger der beiden Schaltungen sind Empfängermodule für 33kHz.
    Was für ein Protokoll verwende ich am besten, damit ich beim Empfänger sehe ob eine 1 oder eine 0 gesendet wurde?

    [edit]
    um meine Frage etwas zu Präzisieren:
    Ich habe auf der Sprut-Homepage den Code für die RC-5 Fernbedienung gefunden. Der Codeschnipsel für das Senden der Bits:
    Code:
    ; Senden einer 0 (on-off)
    TxNull
            call    LichtAn         ;2T
            call    LichtAus        ;2T
            return                  ;2T
    
    ;****************************************************************************
    ; Senden einer 1 (off-on) 
    TxEins
            call    LichtAus
            call    LichtAn
            return
    Wie kann ich nun den Unterschied herausfinden?
    Bsp:
    ich will 11001100 Senden:
    -> ab - an, ab - an, an - ab, an - ab, ...
    Hier wird es ziehmlich schwierig, den Unterschied herauszufinden

    Gibt es also ein Anderes Einfaches Protokoll, oder wie machen die Empfänger der Fernbedienungen die Unterscheidung?

    mfg

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    41
    Beiträge
    506
    Wenn du zu niemandem kompatibel sein musst, kannst du dir dein Protokoll so überlegen, wie es dir am geschicktesten erscheint.

    Bei deinem Beispiel wirst du im wesentlichen eine Flankenerkennung machen, d.h. du tastest ab und vergleichst den Wert davor mit dem aktuellen Wert. Das ganze musst du aber im richtigen Takt machen und optimalerweise aufsynchronisieren.
    Alternativ könntest du das Signal direkt codieren und mit Start- und Stopsequenzen schaffen, d.h. an ist ne Eins, aus ne Null - wenn du ein Byte übertragen willst, schickst du z.B. über 2 Zeitabschnitte eine Eins-Signal, daram kann der Empfänger feststellen, dass du etwas senden willst, dann schickst du deine Daten, und nach dem Byte nochmal zwei Einsen, damit du erkennst, dass die Daten vorbei sind.
    Du kannst auch die Start- und Stopbits weglassen, läufst aber dann Gefahr, dass irgendwas da rein stört und dann so tut als wäre es ein Bit.

    Was auch sehr einfach ist: du verwendest zwei unterschiedlich lange An-Zeiten für 0 und 1, d.h. wenn du eine 0 übertragen willst, lässt du das Teil 5ms an und schaltest danach für 5ms aus. Wenn du eine 1 übertragen willst, lässt du dein IR-Modul für 10ms an und schaltest es danach für 5ms aus.
    Auch hier helfen dir Start- und Stopsequenzen Übertragunssicherheit zu gewinnen.

    Auf die Weise kannst du dir noch beliebige andere Verfahren ausdenken.

    Das einzige, was du wirklich beachten musst, ist, wie deine Module angesteuert werden: die IR-Dioden könntest du mit einem PIC direkt schalten und könntest dann auch direkt übertragen - da du aber schreibst, dass deine Module bei 33kHz arbeiten, dürften die schon etwas an Elektronik enthalten, die die wesentliche Übertragung erledigt. Einfach mal ins Datenblatt schaun (oder statt der Module direkt die IR-Diode und nen Fototransistor verwenden).

    MfG
    Stefan

  3. #3
    Also das mit den 33kHz hab ich schon hinbekommen. Das mach ich mit dem Timer0 welchen ich dann Ein- und Ausschalten kann.
    Das mit den Unterschiedlichen An-Zeiten werde ich mal versuchen. Wird wohl das einfachste sein.
    Ein kleines Problem ist nur noch, dass der Sendende PIC ein Digitales signal bekommt, und wenn er dann für jedes Bit das er bekommt 3 oder mehr Signale senden muss, die Kommunikation gebremst wird. Aber denke das genügt mal für den Anfang, das Optimieren kommt später

    Vielen Dank

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress