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 Ö.
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...
> 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.
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 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
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
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 Ö.
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
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.
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?
...
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....
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