Universalfernbedienung mit Bascom

www.comwebnet.de
Verfügbare Informationen zu "Universalfernbedienung mit Bascom"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Kay - avrnix
  • Forum: www.comwebnet.de
  • Forenbeschreibung: AVR Mikrocontroller und Elektronik - Forum - www.comwebnet.de
  • aus dem Unterforum: Fragen zur Softwareprogrammierung
  • Antworten: 33
  • Forum gestartet am: Mittwoch 25.10.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Universalfernbedienung mit Bascom
  • Letzte Antwort: vor 16 Jahren, 9 Monaten, 16 Tagen, 9 Stunden, 55 Minuten
  • Alle Beiträge und Antworten zu "Universalfernbedienung mit Bascom"

    Re: Universalfernbedienung mit Bascom

    Kay - 22.05.2007, 13:35

    Universalfernbedienung mit Bascom
    Hallo,

    ich habe mit Hilfe von Bascom schon RC5 gesendet und empfangen. Jetzt stehe ich vor dem Problem, dass ich Codes von anderen Herstellern senden muss. Also ich habe ne Fernbedienung von NEC und YAMAHA. Da muss ich jeweils ON und OFF senden können. Gibt es ne Möglichkeit, diese Codes zu empfangen und zu speichern und dann wieder zu senden ?

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 22.05.2007, 20:35


    Hallo Kay, klar müsste das gehen. Kannst du überhaupt ein Signal empfnagen ? Die haben doch meist noch ein Träger.

    Was macht dein Touchpanel?

    :D



    Re: Universalfernbedienung mit Bascom

    Kay - 23.05.2007, 19:40


    jaja, das mit dem touchpanel ist so ne sache. finde kein richtiges dafür. hab jetzt nen palm. der hat ne serielle unten dran. daran kommt ein kleiner Attiny und das funkmodul. ist auch net schlecht.

    ja empfangen kann ich. Also die Fernbedienungen die ich habe/brauche, haben einen Träger von 36khz. Also habe ich den TSOP1736 genommen. Aber in Bascom kann ich ja nur sagen Getrc5 , Getrc6 usw....
    Ich weiß ja aber noch garnicht, was für ein Code das ist.

    Weißt Du was ich meine ?

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 23.05.2007, 20:33


    http://www.sprut.de/electronic/ir/rc5.htm

    Für den RC5 Code einfach mal den Link klicken

    Es gibt auch von Sony :?: noch den RC6 Code

    Was für Probs haste den mit den Touchpanel nur die Grösse kann es doch nicht sein oder die Ansteuerung ?



    Re: Universalfernbedienung mit Bascom

    Kay - 23.05.2007, 23:29


    ich weiß, wie ich RC5 usw empfangen kann. Auch RC6 ist kein problem. Ich will die Funktionen in Bascom dafür nicht verwenden. Ich muss folgendes tun:

    ich bekomme eine wildfremde Fernbedienung. Darauf drücke ich die Taste ON. Der AVR soll das signal empfangen und speichern. Drücke ich beim AVR auf ne Taste , soll dieses Signal "ON" gesendet werden.

    Touchpanel:
    ich hätte halt gern ein Touchpanel mit Koordinaten. Also keine Felder. in dieser größe finde ich leider keins.



    Re: Universalfernbedienung mit Bascom

    avrnix - 24.05.2007, 08:54


    Also das du einen lernfähigen AVR machst das geht, das Signal empfangen und dann im EEPROM speichern. Das Problem ist allerdings wie erkenne ich den Anfang und Ende ( kann ja bei anderen Fernbedienung anders sein obwohl die meisten mit SOny , RC5 und RC6 arbeitetn) der daten erkennen.

    Ergo muss du Bspl. ON taste mehr mals einlesen und vergleichen ist der Vergleich erfolgreich, ab ins EEPROM. Mit dieser Referenztabelle kannst du dann die Codes senden. Vorher ist zu checken mit welchen Träger die Fernbedienung arbeiten, kann ja auch sich sehr unterscheiden.

    Ich hoffe das es ist jetzt etwas klarer geworden.

    Träger ermitteln und Filtern -> Nutzdaten einlesen und vergleichen ist der vergleich OK -> ins EEPROM als Tabelle = Vergleichliste.

    Es reicht doch Felder im Touchpanel zuhaben, sonst kann man das nicht bezahlen , meine sind recht teuer.



    Re: Universalfernbedienung mit Bascom

    Kay - 06.06.2007, 13:25


    wie lese ich das Signal aber ein ? mit timer und interrupt ? Ich habe gelesen, das die meisten empfänger ( tsop1736 ) ziemlich breitbandig seien können. ich muss es halt mal probieren. wenn es nicht klappt, melde ich mich nochmal ( wenn es klappt natürlich auch :D )

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 06.06.2007, 14:10


    Vielleicht wenn du die Zeichen Widerholst und dann die Zeit misst.

    und mit der Referenz vergleichst wann eine Widerholung der Information kommt.

    Das kann ja noch aufregend werden :shock:

    :roll:



    Re: Universalfernbedienung mit Bascom

    Kay - 15.06.2007, 23:02


    ich kann ja bei getrc5 jeden beliebigen Port angeben. Wenn ich aber kein RC5 verwende, muss ich doch auf einen interupt und den auf Falling/Rising konfigurieren oder ?

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 16.06.2007, 09:11


    Kay hat folgendes geschrieben: ich kann ja bei getrc5 jeden beliebigen Port angeben. Wenn ich aber kein RC5 verwende, muss ich doch auf einen interupt und den auf Falling/Rising konfigurieren oder ?

    mfg Kay

    Das ist richtig was du sagst, da du das Protokoll nicht kennst bleibt dir nur ein Vergleich der Signale um festzustellen ob es die gleiche Taste ist.

    Oder du suchst dir die Protokolle aus RC5, RC6, Sony usw raus und schaust dir an wie viele Bits Übertragen werden, du hättest dann somit einen Rahmen. Weil die meisten Fernbedienung arbeiten nach diesen Protokollen.



    Re: Universalfernbedienung mit Bascom

    Kay - 20.06.2007, 22:30


    hi,

    habe jetzt mal geschaut, welchen Code meine Fernbedienung sendet. Es ist ein CommonIR/NEC code. Hier sieht man das komplette Protokoll:

    http://www.ustr.net/infrared/nec.shtml

    ich müsste dann nur hingehen, meinen Empfänger an INT0 hängen und der Beschreibung auf der Homepage folgen. Ich werds einfach mal probieren. Kann nicht mehr wie schiefgehen :-)

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 21.06.2007, 08:39


    Wenn das Protokoll gekannt ist ist es ja einfacher , entsprechend herauszufinden, welche Codierung genommen wird.

    Da du nur feststellen muss Welcher Code benutzt wird.
    Meist ist der Code irgenwo definiert.

    Über den INT0 ist schnmal eine gute Möglichkeit eine Anforderung festzustellen.



    Re: Universalfernbedienung mit Bascom

    Kay - 21.06.2007, 12:10


    ich weiss ja, welchen Code meine Fernbedienung benutzt : NEC

    ich muss es jetzt einfach mal probieren. Hätte nur noch eine Frage:

    auf der Website steht :

    Code:
    The following procedure to detect and identify the code, will work
    with ANY microcontroller / microprocessor.

    1)  Set Var1 = 128,  Var2 = 0,  Var2 = 0,  Var4 = 0

    2)  Start by waiting the signal to go DOWN - This will be the START Bit.

    3)  Wait for the signal to go UP - This should take about 9ms to happens.

    4)  You are in the Sync Time.
         This should take about 4.3ms if DATA Frame or 2.25ms if REPEAT frame.

    5)  Wait for the signal to go DOWN

    6)  Here you are in the IR active time, bit start pulse.
         Wait for the signal to go UP.

    7)  Here you are in the silence period, where it will decide if the bit is 0 or 1.
         Now Wait 800 microseconds.

    8)  Measure the Signal Level.

         If the level is DOWN, then the Transmitted Bit is Zero, since the previous
         bit already  finished and the new bit already started. Then you should do:
         -  Set Carry Bit Zero
         -  Rotate Right Var1
         -  Rotate Right Var2
         -  Rotate Right Var3
         -  Rotate Right Var4
         -  Check Carry Bit - If On then Goto End.  If Off then Go back to step [6]

         If the level is UP, then the Transmitted Bit is ONE, since the previous
         bit didn't finished yet and you are in the 3T time. Then you should do:
         -  Set Carry Bit ONE
         -  Rotate Right Var1
         -  Rotate Right Var2
         -  Rotate Right Var3
         -  Rotate Right Var4
         -  Check Carry Bit - If On then Goto End.  If Off then Go back to step [5]
     
    By doing this sequence, you only need a timming routine of 800
    microseconds, and don't need to measure individual bits.

    At the END, you could Exclusive OR Var1 with Var2, then Var3 with Var4,
    as they are complement of each other, each Exclusive Or should end up
    with a result of $FF, what means no error on the transmission.


    Was bedeutet da "Rotate Right Var1" ?

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 21.06.2007, 12:36


    Kay hat folgendes geschrieben:
    Was bedeutet da "Rotate Right Var1" ?

    mfg Kay

    Hallo Kay - Rotate Right Var1 heisst das die Variable Var1 ein Bit nach recht geschoben wird, das entspricht einer Divistion durch 2.
    Statt Rotate nehmt man es auch shift nach rechts

    0010 -> 2 1x nach rechts shiften ( 2/2) =1 -> 0001=1

    verstanden ?



    Re: Universalfernbedienung mit Bascom

    Kay - 21.06.2007, 12:55


    jop danke verstanden



    Re: Universalfernbedienung mit Bascom

    Kay - 25.06.2007, 22:30


    hi,

    hab jetzt mal die Taste "Up" an meiner Fernbedienung mit der Soundkarte aufgezeichnet. Wie kann ich dieses Signal wieder über einen AVR ausgeben ? ( ir diode ist natürlich vorhanden )

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 26.06.2007, 08:38


    Im Bascom z.B. INT0 auf Falling Rise aktivieren und einlesen. Vielleicht noch das Syn-Bit rausnehmen und in einen Byte speichern.

    Was für eine Codierung hat es den NRZ,Menchetser Codierung , soll heissen was bedeutet eine 1 was eine 0? Es gibt noch syn Bits etc.

    Die müssen ja weg, oder zwei Bytes nehmen ( am Anfang ) und entsprechend die Bit per shifting durch schieben.



    Re: Universalfernbedienung mit Bascom

    Kay - 26.06.2007, 13:06


    danke für die Antwort. um das ganze mal zu vereinfachen, will ich erst mal probieren, dieses Signal nachzubauen ! Die genauen Zeiten zwischen High & Low kann ich ja nachmessen. Nur da stellt sich dann schon wieder ne frage. Wenn ich die IR - Led an z.B. Porta.0 hänge, dann kann ich ja wunderbar diesen pin auf High und low setzen. Nur wie komme ich auf die Trägerfrequenz von 36kHz ??

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 26.06.2007, 13:23


    Über einen PWM der 36KHz hat ( bzw deinen Fernbediennung entspricht ).

    Hast du ein Bild vom Träger ? ist das auch Digital oder ist das ein Sinus?

    Timer oder PWM -> Digital
    36KHz Oszilator -> Analog

    :roll:

    Untersuche mal den Träger wenns Digital ist, den Impuls- Pausen verhältnis und bilde das nach.



    Re: Universalfernbedienung mit Bascom

    Kay - 26.06.2007, 13:32


    hab leider kein bild vom träger. wenn ich auf die taste drücke, erhalte ich nur das bild, das ich gepostet habe. ich muss es einfach mal probieren. danke dir.

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 26.06.2007, 13:51


    Ich schätze mal das es keinen Träger (?) gibt.

    :shock:



    Re: Universalfernbedienung mit Bascom

    Kay - 27.06.2007, 12:22


    das kann natürlich auch sein. ich hab mit ir noch nie was gemacht. jetzt muss ich aber. hab jetzt ne gute Seite gefunden zu meinem protokoll:

    http://www.sbprojects.com/knowledge/ir/nec.htm

    da ich ja aber die werte habe, müsste ich das ganze ja nur "einfach" nachbauen. z.B.

    set portb.0
    waitms 9
    reset portb.0
    waitus 450
    usw....

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 27.06.2007, 13:00


    Hallo Kay,

    dann braucht du nur die Zeit messen ob es 1,1 ms wenn es doppelt solange dauert =1 ist sonst 0 ist.

    Also Timer nehmen und vergleichen ob die Zeit < = 2 ms .

    Sollte machbar sein.

    mfg
    AVRnix



    Re: Universalfernbedienung mit Bascom

    Kay - 27.06.2007, 13:15


    hallo avrnix,

    ich glaube wir reden aneinander vorbei. ich habe dieses signal ja mit der Soundkarte gemessen. ich kann mit dem programm auch die zeiten zwischen den einzelnen High/Low messen. ich will mit meinem AVR erstmal nur senden . und zwar genau dieses signal, das ich gemessen habe.

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 27.06.2007, 15:56


    Sorry ich dachte du wolltest das aufnehmen , habe das jetzt im falsch verstanden.

    Das sollte dann kein Problem sein, die Bits zu senden :-)

    Den Träger machst du dann über den Timer wie oben gesprochen. Im deinen Fall 38KHz.



    Re: Universalfernbedienung mit Bascom

    Kay - 27.06.2007, 18:19


    hi,

    ich habe gelesen, das irgendjemand das ganze mit dem befehl Sound Port.... gemacht hat. verstehe ich zwar nicht ,aber egal. Ich komm momentan nur nicht ganz klar, was Du mit dem Timer meinst. Könntest Du mir das bitte etwas genauer erklären ?

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 27.06.2007, 19:21


    Hallo Kay,

    Mit dem Timer erstellst den Trägerfrequenz.

    Mit dem Soundbefehl kannst du eine bestimmte Frequenz erzeugen ( läuft bestimmt auch über so ein Timer )

    Das must du mal ausprobieren, könnte auch gehen.

    Sonst probiere es mal ohne einen Träger einzusetzen.



    Re: Universalfernbedienung mit Bascom

    Kay - 27.06.2007, 20:23


    also ohne einen Träger funkioniert das ganze garnicht. Wie erstelle ich denn mit Hilfe des Timers die Trägerfrequenz von 36 kHz ?

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 27.06.2007, 20:35


    Arten PWM Timer Counter:
    http://www.roboternetz.de/wissen/index.php/Timer/Counter_%28Avr%29

    Beispiel:
    http://www.roboternetz.de/wissen/index.php/Bascom_und_Timer


    Hier hast du erstmal Infos zur Berechnung und der Einstellung zum Timer.

    www.rowalt.de wäre auch noch ein Tip



    Re: Universalfernbedienung mit Bascom

    Kay - 27.06.2007, 20:51


    danke für die links. hab auch mal bei Bascom in den AN´s geschaut. da sendet einer Sony Codes mittels Timer. Soweit so gut. nur meine Amplitude stimmt nicht wirklich.

    mfg Kay



    Re: Universalfernbedienung mit Bascom

    avrnix - 27.06.2007, 21:47


    Wechle Amplitude stimmt nicht ( Träger oder deine Übertragung) ?

    Notfalls einen Transistor zum IR schalten. Die IR Diode können gut und gerne 100 mA fliessen.

    Das schafft kein Ausgang vom AVR.

    Welche Amplidute braucht du den ?

    AVRNix



    Re: Universalfernbedienung mit Bascom

    Kay - 28.06.2007, 13:28


    in der hilfe von bascom gibt es einen plan für einen IR-Booster mit Transistor. ich werde den mal nachbauen



    Re: Universalfernbedienung mit Bascom

    Kay - 29.06.2007, 22:38


    Hi,

    juhu es klappt. kann meine dbox An / Aus schalten per IR. Danke Dir für deine Hilfe. Es kommt aber auch schon die nächste frage:

    Ich habe bei bascom in den AN´s ein beispiel gefunden. Dieses habe ich für meine Bedürfnisse abgeändert. Geht auch. Das ganze läuft mit Timer1 auf meinem Mega32. Jetzt will ich das ganze aber auf Timer2 laufen lassen und da verliesen sie mich schon wieder. hier mal mein code :

    Code:
    $regfile = "m32def.dat"
    $crystal = 7372800


    Const T_oc1 = 124

    Const Carrier_on = &B01000000
    Const Carrier_off = &B11000000

    Const Ir_repeat = 3


    Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1
    Timer1 = 0
    Compare1a = T_oc1

    Tccr1a = Carrier_off
    Config Portd.5 = Output
    Portd.5 = 1
    Ir Alias Tccr1a

    Config Porta.0 = Output
    Led Alias Porta.0
    Taste1 Alias Pinc.1
    Taste2 Alias Pinc.0
    Config Portc = Input
    Config Debounce = 30
    Dim I As Byte


    '---[ main program loop ]----------------------------------------------------

    Main:
    Debounce Taste2 , 0 , Anaus , Sub
    Goto Main


    '### Code für An/Aus ###
    '-----------------------
    Anaus:
    Waitms 100
    Toggle Led
    Waitms 100
    Toggle Led

    Waitms 100
    Toggle Led
    Waitms 100
    Toggle Led
    Waitms 100

    Ir = Carrier_on
     Waitus 400
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 720
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 514
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 267
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 267
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off


     Waitms 50


     Ir = Carrier_on
     Waitus 400
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 720
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 514
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 267
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 267
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off


     Waitms 50

     Ir = Carrier_on
     Waitus 400
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 270
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 720
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 288
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 514
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 411
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 267
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

     Waitus 267
     Ir = Carrier_on
     Waitus 205
     Ir = Carrier_off

    Return


    was muss ich ändern, damit das ganze auch mit Timer2 läuft ?

    mfg Kay



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum www.comwebnet.de

    8Bit Wandlung - Erhöhung der Samplerate - gepostet von avrnix am Mittwoch 14.11.2007
    probs mit schrift - gepostet von merlin63 am Dienstag 11.09.2007
    Linux - TCP over ttyS0 Thema - gepostet von avrnix am Samstag 03.03.2007



    Ähnliche Beiträge wie "Universalfernbedienung mit Bascom"

    BASCOM Picture Converter - avrnix (Sonntag 29.10.2006)
    universalfernbedienung... - persil (Donnerstag 15.12.2005)
    LIB für S65 Bascom (?) - avrnix (Sonntag 30.09.2007)
    rfm12 Bascom und Interrupt - stevensen (Dienstag 06.11.2007)
    BASCOM AVR Buch ONline - rowalt.de - avrnix (Dienstag 08.05.2007)
    Checksumme unter Bascom - Wigbert (Samstag 18.08.2007)