Guten Tag, Ich habe eben einen Infrarotempfänger (TSOP 1738) an PB03 meines Attinys angeschlossen und noch eine LED an PB01. Den Infrarotempfänger habe ich mit seinem OUT Pin an PB03 rangesteckt und die Versorgungspannung entziehe ich aus meinem Netzteil 5V 450mA (womit ich auch die Attiny Platine betreibe). Ich habe noch an dem Infrarotempfänger nur einen 4.7 uF Kondensator an Masse und + dran gemacht. Und habe dieses Programm: $regfile = "attiny2313.dat" $crystal = 12000000 Config Rc5 = Pinb.3 Enable Interrupts Dim Address As Byte Dim Command As Byte Do Getrc5(address , Command) If Address < 255 Then Command = Command And &B10111111 If Address = 1 Then Toggle Portb.0 End If End If Loop drauf gepackt. Wenn ich jetzt mit meiner Fernbedienung irgendwas drücke, passiert nichts... die LED soll ja leuchten. Ich benutze einen 12 MHZ Quarz. Woran kann es liegen ? MfG, Tugrul Ö.
>Woran kann es liegen ?
Deine Fernbedienung liefert kein RC5-Code.
Hallo. Es ist eine Universalfernbedienung. Welche Fernbedienungen liefern den RC5 Code ? Danke
Tugrul Ö. wrote: > Hallo. > > Es ist eine Universalfernbedienung. Welche Fernbedienungen liefern den > RC5 Code ? Die Wenigsten... > > Danke ...
Hi ihr beiden, Gibt es den überhaupt eine Möglichkeit zu überprüfen ob irgendwas an Signal ankommt ? Wenn ja wie müsst ich das machen ? Danke.
Teste doch einfach, ob der IR-Empfänger überhaupt etwas empfängt. Einfach den Controller ohne den RC5-Schnickschnack auf den Eingang reagieren lassen.
Tugrul Ö. wrote: > Hi ihr beiden, > > Gibt es den überhaupt eine Möglichkeit zu überprüfen ob irgendwas an > Signal ankommt ? Wenn ja wie müsst ich das machen ? > Gib doch einfach die Werte adress und/oder command an einem Port aus. > Danke. ...
@Rahul, da liegt mein Problem. Ich würd das so machen: $regfile = "attiny2313.dat" $crystal = 12000000 Dim test As Byte Config Pinb.3 = Input Do test = Pinb.3 If test <> 0 Then Toggle Pinb.0 End If Loop Ich teste das mal jetzt !
So habs getestet, Jetzt leuchtet die LED durchgehend,aber schwach... wieso ? Bekommt der Infrarotempfänger die ganze Zeit ein Signal ? Von anderen Lichtquellen oder wie ? Manchmal leuchtet sie ganz hell und manchmal nicht so hell, wie in diesem Fall. Jetzt leuchtet sie andauernd aber nur schwach. Hmmm...
>aber schwach... wieso ?
Weil dein Auge zu träge ist, den ständigen Wechsel zwischen "an" und
"aus" zu bemerken.
Aber das erklärt noch nicht wieso sie schwach Leuchtet, nur wieso er es als "schwach" wahrnimmt.
> ich habe echt keine Ahnung und bin so sagen wir mal kurz > vorm durchdrehen.. Dagegen hilft: Sich mit den Grundlagen beschäftigen und sich nicht von der scheinbaren Einfachheit von Bascom blenden lassen. > auch wenn ich den Output stecker des TSOP 1738 von PB3 entferne, > leuchtet die LED schwach... Das bedeutet, dass dein Input Pin Signale auffängt. Wenn ein an sonsten unbeschalteter Eingang Signale einfängt, dann heist das mit 99% Sicherheit: Du hast keine Pullup Widerstände aktiviert. Wie gesagt: Leg erst mal Bascom beiseite, hol dir AVRStudio und arbeite damit mal das Tutorial durch. Danach verstehst du viel besser was in der Hardware abgeht. Und dann kannst du dein heiss geliebtes Bascom auch vernünftig benutzen. Bascom ist nicht schlecht. Dank vorgefertigter Module kriegt man schnell was auf die Reihe. Wenn man weiss was man tut und was in der Maschine abgeht. Wenn man das nicht weiss, dann gehts einem so wie dir.
Hallo, du hast mit meinem Namen geschrieben ? ^^. Wie aktiviere ich den die Pull Up wiederstände ? Ich werde mal AVRStudio durchnehmen... danke. MfG Tugrul Ö
Tugrul Ö. wrote: > Hallo, du hast mit meinem Namen geschrieben ? ^^. Das finde ich auch lustig... ;-) Ich war's aber nicht, obwohl der Text von mir sein könnte, ich denke nämlich genauso. > > Wie aktiviere ich den die Pull Up wiederstände ? Das steht alles groß und breit im Datenblatt des AVRs. > > Ich werde mal AVRStudio durchnehmen... danke. Mach das, fang aber klein an, sonst bist Du sofort überfordert. > > MfG > Tugrul Ö ...
Tugrul Ö. wrote: > Hallo, du hast mit meinem Namen geschrieben ? ^^. Uuups. Tut mir leid. Wie ist das den passiert? > > Wie aktiviere ich den die Pull Up wiederstände ? Da sind sie wieder. Oh diese Schmerzen. röchel, röchel, röchel Hand... röchel, röchel ...buch, röchel, röchel F1 - röchel Hilfe röchel
Hannes Lux wrote: > Tugrul Ö. wrote: >> Hallo, du hast mit meinem Namen geschrieben ? ^^. > > Das finde ich auch lustig... ;-) Ich war's aber nicht, obwohl der Text > von mir sein könnte, ich denke nämlich genauso. Ich wars. Ich hab seit ein paar Tagen Admin-Status. Bei jedem Posting sind da jetzt noch ein paar Dinge mehr die ich tun kann. Mein motorisches Gedächtnis muss sich erst daran gewöhnen, dass sich die 'Knöpfe' verschoben haben.
>Ich hab seit ein paar Tagen Admin-Status. Will ich auch! (Nee, eigentlich nicht.) >Mein motorisches Gedächtnis muss sich erst daran gewöhnen, dass sich >die 'Knöpfe' verschoben haben. Hoffentlich nur die des Forums...
Meine Fresse... im Datenblatt hab nichts gefunden !. SOWEIT ich weiß, wird der doch interne Pull UP wiederstand dann aktiviert wenn man den PIN auf Input gestellt hat oder nicht ?? Habe ich hier im Tutorial gelesen. Mein Pin ist doch auf Input.. muss ja sein, sonst kann der Attiny nicht die Daten des TSOP 1738 annehmen.
> interne Pull UP wiederstand dann > aktiviert wenn man den PIN auf Input gestellt hat Nein. Ist er nicht. Wenn der Pin auf Input gestellt ist, dann fungiert das Ausgaberegister des Ports als Schalter für die Pullup Widerstände.
Hi Also muss ich den anders aktivieren ? oder muss das hardwaremäßig gelöst werden ?
tue so als ob du ein HIGH an dem PORT ausgeben willst. PORTB |= (1<<PB3); (wie das in basic geht,keine ahnung)
Tugrul Ö. wrote: > Hi > > Also muss ich den anders aktivieren ? oder muss das hardwaremäßig gelöst > werden ? Lies das (vollständige) Datenblatt (nicht die Zusammenfassung für BWLer)! Wenn Du es nicht verstehst, dann lies es nochmal. Oder versuche es mit "Malen nach Zahlen"... ...
Na ja, das Datenblatt ist vielleicht etwas heftig für den Anfang. Die beiden Tutorials tuns auch. Vor allem in beiden immer den ersten Teil, in dem es um die Ports und das Anschliessen von Hardware daran geht. http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_Ports
Na ist doch wahr, versteht die primitivsten Zusammenhänge nicht, will aber 'ne Fernbedienung decodieren und fragt sich alles zusammen anstatt mal selbst die verfügbaren Quellen zu lesen. @Tugrul: Gut, Du bist Anfänger. Waren wir alle mal. Also fang (wie wir alle) mit den Grundlagen an und erarbeite Dir Dein Wissen ehrlich. Du versuchst, den zwölften Schritt vor dem ersten zu machen, das geht nicht, Du musst klein anfangen. Wie hat PeDa mal so schön bemerkt? - Du kannst einen Berg nicht in einem Schritt besteigen... Viel Erfolg, Hannes
OK ! DAS ZU lesen ist kein Problem, das Problem ist dieser Wille :P g
Tugrul Ö. wrote: > OK ! > > DAS ZU lesen ist kein Problem, das Problem ist dieser Wille :P *g* Kunst kommt aber von Können, käme es von Wollen, würde es Wulst heißen. Aber wenn man es kann, ist es ja keine Kunst mehr. ;-) ...
Hier eine kleine hilfe, gelesen muss jedoch selbst. http://www.roboternetz.de/wissen/index.php/Bascom Die Kapitel "Einen I/O Port umschalten" und "I/O-Port als Eingang" könnten interessant sein. Gruss
>>Also muss ich den anders aktivieren ? http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Pullup_Widerstand
Guten Abend nochmal, Ich habe jetzt ein wenig mehr gelesen und auch raus bekommen wie das mit dem PULL UP Widerstand funktioniert, ist alles auch einfach. Nur mein Problem mit dem Infrarotempfänger ist trotzdem da ^^. Ich habe die Spannungen gemessen und diese sind am Infrarotempfänger auch 5V, die Spannung ist sehr konstat also es schwankt überhaupt nicht. Ich habe mich dann über RC-5 etwas schlauer gemacht und erfahren das "Phillips" RC-5 benutzt, also deren Fernbedienungen. Ich habe zu Hause eine Phillips Fernbedienung genommen und drauf gedrückt, aber es kam kein Ereignis. Ich habe diesen Code benutzt: $regfile = "attiny2313.dat" $crystal = 12000000 Config Rc5 = Pinb.3 Enable Interrupts Dim Address As Byte Dim Command As Byte Do Getrc5(address , Command) If Address < 255 Then Command = Command And &B10111111 If Address = 1 Then Toggle Portb.0 End If End If Loop und dann wollte ich testen ob der IR Empfänger überhaupt irgendwas emfpängt und habe somit diesen Code versucht: $regfile = "attiny2313.dat" $crystal = 12000000 Config Pinb.3 = Input Signal Alias Pinb.3 Portb.3 = 1 'Der Pull Up Widerstand Dim Info As Byte Do Info = Signal If Info <> 0 Then Portb.0 = 1 Else Portb.0 = 0 End If Wait 2 Loop Bei diesem Programm, leuchtet die LED nur sehr schwach und mehr nicht. Hat jemand ne Idee warum das nicht klappt ? Also gehen wir mal davon aus: Das RC-5 Programm ist drauf und die Fernbedienung ist auch RC-5 fähig. Wie gesagt, hab einfach Out an PB03 dran gemacht und GND und + direkt an den Eingang für die Versorgungspannung der Attiny Platine. Danke im Voraus, so ich lese das tutorial weiter... MfG, Tugrul Ö.
Hallo Tugrul, 1. ist die Adresse Deiner Fernbedienung auch "1" ? 2. Toggle die LED mal auf ein oder mehrere "command" Gruss Otto
Otto wrote: > Hallo Tugrul, > > 1. ist die Adresse Deiner Fernbedienung auch "1" ? Im ersten Schritt sollte man die Adresse mal ignorieren... > 2. Toggle die LED mal auf ein oder mehrere "command" Oder toggle bei jeder Änderung von command. Dann im nächsten Schritt command an einem Port ausgeben und von LEDs anzeigen lassen (das übt dann das "binäre Ablesen" einer Zahl von LEDs). Dann (falls da überhaupt etwas ankommt) mal die Adresse ausgeben lassen. Und danach weißt Du mehr. Nämlich: - Macht das Ding überhaupt RC5? - Wenn ja, welche Adresse hat das Ding? - Welche commands liegen auf welchen Tasten > > Gruss Otto ...
Viiel einfacher: hängt die LED gegen Plus oder minus? Du hast PORTB garnicht als Ausgang definiert (von Portb.3 mal abgesehen) Wenn da steht: Config Pinb.3 = Input muss dann icht logischer Weise (ich kenne dieses BASCOM-Proramm auch nicht im Detail) auch Config Pinb. = Output oder sowas in der Art stehen?? /XlR. [EDIT] Nein - kA. Beschreibe das DDRB REgister mit dem Richtigen Wert und lass uns bitte nicht raten, wie BASCOM funktioniert
Hallo Hannes, > Dann im nächsten Schritt command an einem Port ausgeben und von LEDs > anzeigen lassen (das übt dann das "binäre Ablesen" einer Zahl von LEDs). > Dann (falls da überhaupt etwas ankommt) mal die Adresse ausgeben lassen. > Und danach weißt Du mehr. Nämlich: auch eine gute Idee, aber ich glaube, Tugrul hat nur eine LED dran.... Gruss Otto
Hallo ! Meinst das ich mehrere LEDs an einen Port anschliessen soll und durch das leuchten/blinken ablesen was da los ist oder wie ? Kann man das nicht in eine Variable speichern und mit PonyProg oder ähnliches diese Variable im µC auslesen ? g. Ich versuchs mal irgendwie... Danke !
Hallo Tugrul, > Also gehen wir mal davon aus: Das RC-5 Programm ist drauf und die > Fernbedienung ist auch RC-5 fähig. Das die FB von Philips ist, heißt auch nicht zwingend, dass sie "RC5" sendet.... Gruss Otto
genau.. Du solltest vielleicht mal ergründen, welcher IC in deiner Original-FB zum Fernseher eingebaut ist, dann sehen wir weiter
Hallo Kameraden ! Erstes Erfolgserlebnis: $regfile = "attiny2313.dat" $crystal = 12000000 Config Rc5 = Pinb.3 Config Portb.0 = Output Enable Interrupts Dim Address As Byte Dim Command As Byte Do Getrc5(address , Command) If Address < 255 Then Command = Command And &B10111111 Toggle Portb.0 End If Loop Phillips FB, LED geht aus und an. Nur bei jeder Taste, aber das kann ich ja dann noch einstellen. Ich weiß jetzt wenigstens das es überhaupt geht ! Danke !!
Naja... Aber es gibt ein größeres Problem. Nämlich die FB gehört Mama und damit steuert sie so eine Art Digital Receiver (türk. Premiere ^^) und wenn da Fußball läuft und die FB ist nicht da.... Kennt jemand andere RC5 fähige FB's ? Kann man eventuell eine bauen ?
Hab mir den Text nicht ganz durchgelesen, aber: ich habe mal FALSCH bezeichnete TSOP-Empfänger bekommen. Falsche Frequenz. Lange Fehlersuche. Ohne scope hätte ich es wohl nie herausbekommen.
Hallo Tugrul, gibt es nicht auch eine Atmel - Appnote für einen Sender ? Otto
Ja vielleicht bau ich mir die ! @Otto: Weiß ich nicht, ich werde aber mal nach schauen. Ich habe mal diesen Code jetzt drine und die LED bleibt manchmal an und geht micht mehr aus.. liegt das daran das alles so schnell abläuft ? wo müsste ich da eine Pause (wait) rein packen ? $regfile = "attiny2313.dat" $crystal = 12000000 Config Rc5 = Pinb.3 Config Portb.0 = Output Enable Interrupts Dim Address As Byte Dim Command As Byte Do Getrc5(address , Command) If Address < 255 Then Command = Command And &B10111111 Select Case Command Case 11 : Toggle Portb.0 Case 12 : Toggle Portb.0 Case 13 : Toggle Portb.0 Case 16 : Toggle Portb.0 Case 17 : Toggle Portb.0 Case 0 : Toggle Portb.0 Case 1 : Toggle Portb.0 Case 2 : Toggle Portb.0 Case 3 : Toggle Portb.0 Case 4 : Toggle Portb.0 Case 5 : Toggle Portb.0 End Select End If Loop
> Ich habe mal diesen Code jetzt drine und die LED bleibt manchmal an und > geht micht mehr aus.. liegt das daran das alles so schnell abläuft ? wo Aber Du weißt, was "toggle" bedeutet, oder? ...
Wenn die FB 2 gleiche Kommandos hintereinander sendet, hast Du 2 x "getoggelt" und damit wieder den Ausgangszustand Otto
Toggle ändert doch nur den zustand eines Ports. Wenn 1 dann 0 , oder wenn er 0 ist dann 1. Das ist doch auch richtig so ? Wenn ich die Taste drücke soll er den Port High machen und wenn ich nochmal drücke dann Low. Nur das kenn ich aus jahrelangem Programmieren mit WinSock in Visual Basic 6. Client und Server Prinzip. Man muss dem Interepretieren der Befehle etwas Zeit geben bzw. sie eventuell kurz Stoppen und alles ignorieren bis alles fertig durchgeführt wurde und dann erst wieder erlauben.
Die FB sendet solange Sequenzen, wie Du die Taste betätigst. Da das "Toggle"-Bit ausmaskiert ist, gibt es keine Unterscheidung, ob die selbe Taste 2x hintereinander betätigt oder festgehalten wurde..... Beispiel: LED ist an, Kommando "1" und nochmal "1" und die LED ist wieder an....
Hast du einenen einfachen, für dich auch sinnvollen, Lösungsvorschlag Otto ?
Füg noch eine Variable hinzu: OldCommand In der Schleife holst du das nächste Commando. Dieses vergleichst du jetzt mit OldCommand. Nur dann, wenn die beiden nicht gleich sind, machst du die toggle-Geschichte. Als letzte Aktion wird innerhalb der Schleife OldCommand noch auf Command gesetzt. Sinn der Sache: Ein Command von GetRC5 wird nur dann ausgewertet, wenn es unterschiedlich zum unmittelbar vorhergehenden Kommando ist. Dim Address As Byte Dim Command As Byte Dim OldCOmmand As Byte Do Getrc5(address , Command) If Address < 255 Then Command = Command And &B10111111 if OldCommand <> Command then Select Case Command Case 11 : Toggle Portb.0 ... End Select End If OldCommand = Command End if Loop
Gib "Command" auf der seriellen Schnittstelle aus. Pur, ohne "Command And &B10111111" Print Command wird wohl gehen, oder? Dann siehst DU ds ToggleBit deiner Fernbedienung, den Gerätecode und auch die Taste, welche gedrückt wurde. (Hoffe ich zumindest, das die 14 Bit hier alle drinn stehen) Ich kann, wie gesagt, kein Bascom. In der IR Routine von Peter geht das nachvollziehbar. Wenn Du die Fernbedienung drückst ändert sich das ToggleBit nur, wenn du die Taste auf der Ferbedienung erneut drückst. Hälts du den Knopf gerückt wird zwar das Command ständig wiederholt, aber das Togglebit ändert sich nicht. Erst bei erneutem Tastendruck wechselt es seinen Wert.(toggelt eben) Wenn Du deinen Fernseher ausschaltest, dürftest Du ansonst nur gaaaanz kurz drücken, sonst ginge er ständig an und aus. Bei Lautstärke, Helligkeit usw. wird dieses Bit nicht ausgewertet. Somit kann man mit gedrückter Taste lauter stellen, sender zappen usw... Ich weiss aber ncht, an welcher der "Commandmaske" Bascom dieses Togglebit versteckt. Mit "Command And &B10111111" blendest Du ja das 6. Bit aus. evtl. ist es dieses ja, kA. wie Bascom funktioniert.. /XlR.
Guten Abend die Herren und Damen. Vorweg möchte ich mich herzlich für die ausführliche Hilfe bedanken. Ich wollte noch hinzufügen, dass ich es mit meiner Universal FB geschafft habe. Ich habe mir gedacht, dass wenn man sie auf Phillips programmiert (diese Codes) dann müsste sie eventuell RC5 Code senden, was auch glücklicherweise der Fall war. Das zweite ist, dass auf dieser Seite: http://www.qsl.net/dg1xpz/elektronik/avr/rc5_empf.html sehr ausführlich erklärt wird wie man das macht. Nur ist in dem Source Code soweit ich weiß ein Fehler enthalten. Laut der Tabelle der Geräte ID's, ist die ID eines TV-Geräts 0. Im Source Code wird aber mit der If-Bedingung überprüft ob die Adresse den Wert 1 hat. Laut der Tabelle gibt es kein Gerät mit der ID 1. Zweiter Fehler ist, das im Source Code einmal Addresse und Adress benutzt wurde. Einmal English und Deutsch. Naja wie dem auch sei.. vielleicht schreib ich mal eine E Mail an die WebSite. MfG, Tugrul Ö.
Kannst dem Peter doch direkt 'ne Mail schreiben. DG1XPZ [ätt] qsl punkt net. Vorher aber noch mal genau nachsehen! Evtl. gibt es ja doch eine Geräteklasse 1 und evtl. sind die beiden Schlüsselwörter absichtlich so gewählt. Ich habe mich auch schon mal blamiert :-))) Jedenfalls freue ich mich, das nun alles klappt, wei Du es Dir vorstellst. Gruß XlR.[AxelR.]
Hallo Tugrul, es sind viele Adressen für verschiedene Geräte bei "RC5" reserviert. Leider weiß ich sie nicht mehr auswendig, aber es gibt z.B. Codes für: TV1, TV2, VCR1, VCR2 SAT usw. u. A. auch für exotisches wie "Bildplattenspieler" Gruss Otto
Ich zitiere mich selbst mal eben: > Mit "Command And &B10111111" blendest Du ja das 6. > Bit aus. evtl. ist es dieses ja, kA. wie Bascom funktioniert.. in der rc5_empf.bas steht das doch genau so drinn: >>Command = Command And &B10111111 'lösche Toggle-Bit
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.