Verfügbare Informationen zu "Universalfernbedienung mit Bascom"
Qualität des Beitrags: 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 15 Jahren, 8 Monaten, 29 Tagen, 3 Stunden, 1 Minute
Alle Beiträge und Antworten zu "Universalfernbedienung mit Bascom"
Re: Universalfernbedienung mit Bascom
Kay - 22.05.2007, 13:35Universalfernbedienung 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)
