Hallo,
Soll als Projekt Arbeit einen Fernbedienungsterster bauen mit dem der
Code auch gleichzeitig ausgelesen und über ein USB oder RS232 Kabel an
ein selbst geschriebenes Programm in Visual Basic geschickt wird. Das
Programm soll auch den ausgelesenen Code wieder senden können um damin
zum Beispiel ein TV zu steuern. Als Vorgabe habe ich einen AVR 8, die IR
Diode SFH5110-36 und das Programm Bascom.
Der Prüfer hat mir auch folgenden Code per E-Mail geschickt ist dieser
komplett oder fehlen da noch Befehle?
$regfile = "m8def.dat" 'zu jedem Modell passende Datei
$crystal = 8000000 'Quarz (Resonator) Frequenz
$PROG &HFF,&HAE,&HD9,&H00 'FuseBit auf Extern. Quarz
$baud = 9600 'gewünschte Baudrate vorgeben
Config Rc5 = Pind.5 'an PD5 ist die IR-Diode angeschl.
Enable Interrupts
Print "Waiting for RC5..."
Dim Address As Byte , Command As Byte
Print "Waiting for RC5..."
'If the pins is used for other input just unremark the next line
'Config Pind.2 = Input
Getrc5(Address , Command)
'we check for the TV address and that is 0
Do
'now check if a key on the remote is pressed
'Note that at startup all pins are set for INPUT
'so we dont set the direction here
'If the pins is used for other input just unremark the next line
'Config Pind.2 = Input
Getrc5(Address , Command)
'we check for the TV address and that is 0
If Address = 0 Then
'clear the toggle bit
'the toggle bit toggles on each new received command
'toggle bit is bit 7. Extended RC5 bit is in bit 6
Command = Command And &B01111111
Print Address ; " " ; Command
End If
Loop
End
Bitte um schnelle Hilfe mein AVR Aufbau im Anhang
1/ Das gezeigte Programm ist für einen Atmega8 und kann einen RC5
IR-FB-Code einlesen (Getrc5) und an einen über RS232 angeschlossene PC
senden (Print).
2/ Es fehlt das VB Gegenprogramm, welches auf dem PC die adten vom µC
entgegennimmt, verarbeitet oder neue Codes vom Benutzer entgegennimmt
und an den µC zurücksendet.
3/ Es fehlt die Anpassung für den Atmega16 in dem Schaltplan und es
fehlen in dem gezeigten Programm die Programmteile, die Daten von dem BG
Programm entgegennehmen, in RC5 IR-FB-Befehle umwandeln und an den TV
schicken.
4/ Ist der Schaltplan so zwingend vorgegeben oder kannst du auch eine
weniger aufwändige Hardware einsetzen? Existiert die Hardware schon oder
musst du die auch bauen?
5/ Die Frage von Compiler Error ist berechtigt. Deine Frage lässt
vermuten, dass du bisher wenig mit µCs praktisch gemacht hast.
Entweder landest du einen Glückstreffer bei der Suche im Netz (ich denke
so ein Projekt gibt es, oder jemand schreibt es dir). Damit wirst du auf
die Nase fallen, wenn der Prüfer nachbohrt.
Oder du könntest es selber in paar Wochen schaffen, wenn du dich
Fulltime dahinter klemmst. Der Weg bedeutet mehr Arbeit, aber dem
Gespräch mit dem Prüfer kannst du dann entspannt entgegensehen.
Hallo,
also folgende Probleme
1. Es ist nicht meine Prüfung sondern die Prüfung eines Kollegen
(Gesellenprüfung)
2. Wir müssen dieses AVR Kit in der Zwischenprüfung zusammenbauen und
bekommen das gewertet. Der Traum des Prüfers ist dann natürlich das der
Prüfling das zusammengebaute AVR Kit in der Abschlussprüfung wieder
verwendet.
3. Er hat noch 3 Wochen Zeit in der er aber Urlaub hat
4. Nach Möglichkeit sollte dieser Aufbau verwendet werden.
5. Ob ein Atmega 8 oder 16 weiß ich nicht da mein Kollege leider sein
AVR Kit noch nicht bekommen hat jeder hat das Kit nach der Prüfung
mitnehmen dürfen nur seins hat nicht funkioniert und konnte wohl auch
auf die schnelle nicht zum laufen gebracht werden. Somit hat der Prüfer
ihm versprochen das Teil zum laufen zu bringen und ihm zu schicken (1,5
Jahre her)
Nun meine Frage wenn ich die Diode an das Kit anschließe die Software
rein Flashe läuft dann das teil und sendet mir wenigstens den Code auf
den PC in das Bascom Terminal oder passiert vorerst überhaupt nichts?
Und muss ich diese Diode Verwenden oder kann ich auch eine andere
verwenden???
Und noch eine Frage:
reicht es im Code von $regfile = "m8def.dat"
auf $regfile = "m16def.dat" um zu schreiben um das Programm auf dem 16er
laufen zu lassen???
Also wenn dein Kollege DAS schaffen will, ist der Urlaub unbedingt zum
Arbeiten am Projekt zu nutzen und er muss sich zu 200% da rein hängen.
Es wird schon kritisch, kurzfristig ein funktionierendes Board inkl.
IR-Empfänger und IR-Sender herzustellen. Würde der Prüfer wegen der
besonderen Situation ein angespecktes Board oder einen Steckboardaufbau
akzeptieren?
Der IR-Empfänger in dem Schaltplan ist mit IR-RC5 markiert und heisst
SFH51110. Er ist an PD4 des Atmega16 angeschlossen. Es gibt auch
Berichte im Netz, dass dieser IR-Empfänger mit BASCOM mal funktioniert
hat.
Das gezeigte Programm erwartet die "IR-Diode" an PD5 (siehe Zeile Config
Rc5 = Pind.5 'an PD5 ist die IR-Diode angeschl.). Da muss die Sofware
auf die Hardware angepasst werden. Die "IR-Diode" ist eigentlich der
IR-Empfänger, nicht verwechseln mit der IR-Sendediode, die ihr später
braucht, um IR-Signale vom µC zum TV zu senden.
Das gezeigte Programm erinnert stark an den Beispielcode im BASCOM AVR
Manual beim Befehl getrc5 (http://avrhelp.mcselec.com/getrc5.htm).
Ersatzbauteile für die SFH5110 sind dort auch genannt.
Wenn µC und PC über RS232 verbunden sind, sollte man auf dem PC auch die
Print Ausgabe vom µC in einem Terminalprogramm bekommen. Wenn nix kommt,
aber die Hardware OK ist, dann empfängt der µC vielleicht kein Kommando
auf Adresse 0 (die Source nimmt an TV hat Adresse 0). In dem Fall die
if-Abfrage auskommentieren und die Anweisungen im if immer ausführen.
Okay werde das Programm einfach mal auf den AVR flashen. Der Prüfer hat
ihm mehrmals verspochen das Board in der Grundausführung (siehe
Schaltplan) bis Donnerstag mit zu bringen... (mal gespannt obs was
wird). Habe eine Diode die nach meinem Chef angeblich genau die selbe
ist (darauf verlassen kann ich mich nicht) da unser Chef hin und wieder
mal etwas übereifrig ist die Diode lautet TFMS5300 sie sollte so ähnlich
sein. Wie deffiniere ich denn die Diode? Kann sie senden und empfangen
oder nur empfangen?? Kann ich das was das Terminal empfängt auch für die
Abfage aus dem Visual Basic Programm nutzen??
Vielen Dank für die Hilfe
TFMS5300 ist auch ein IR-Empfänger. Senden kannst du damit nicht.
Datenblatt von beiden (TFMS5300 und SFH5110) suchen und vergleichen.
Zum Senden brauchst du die IR-LED (IR-Diode) aus dem Schaltplan an der
Stelle IR-SENDER. Ich kann den Namen unter dem Bauteilsymbol im
greulichen Foto nicht lesen.
Das VB Programm kann die Daten aus dem Terminalprogramm nicht nutzen.
Das VB Programm muss selbst von RS232 Empfangen und Senden. Das
Terminalprogramm kann dir helfen was (die Funktion der Hardware und des
µC Programms) zu sehen, ohne eine Zeile VB programmiert zu haben.
Hoffentlich sieht später dein VB Programm dann das gleiche bzw. das ist
ein Teilziel.
Hallo,
mein Kollege lernt den selben Beruf wie ich
Informationselektroniker fachrichtung Geräte und Systeme. Ich bin im 3.
Lehrjahr und befasse mich auch mit dem AVR allerdings eher in Richtung
Netzwerk. Habe aber auch selbst noch nicht so viel Erfahrung vielen Dank
für eure Hilfe werde jetzt erst mal das Kit mit dem Empfänger meines
Chefs bestücken und mal gucken was passiert
Ingo
Hallo,
ganz großer Fehler die Software einfach so auf zu flashen. Jetzt hab ich
mir den internen Oszillator ausgeschaltet und nen externen hab ich
nicht.....
Hallo,
habe jetzt mal genauer hingeschaut und als erstes festgestellt das die
Diode die mein Chef mir gegeben hat eine andere Pin belegung hat... Habe
an die Beinchen jetzt Kabel angelötet und diese auf den Bausatz
gesteckt. Muss ich einen externen ´Quarz nehmen? Habe jetzt erst mal
den Teil im Code geändert so das der interne Oszillator schwingt. Mein
Ergebniss er gibt mir nen text aus das er auf RC5 wartet wenn ich ne FB
davor halte passiert aber nichts
1. Welche FBs senden RC5? 2. Brauch in unbedingt diesen Quarz?
Habe eine Kameleon FB davor gehalten (one for all)
Entgegen der weit verbreiteten Gerüchte gibt es heute kaum noch
Fernbedienungen die RC5 nutzen (< 3%). Die OneforAll wird aber auch
RC5 Codes senden können - einfach einen Philips oder Löwe Fernseher
einstellen.
Von einem universellen FB Tester ist das Ding dann aber noch 97%
entfernt.
Gruß, Marcus
Hallo,
habe meinen ATmega wider zum lebenerweckt wusste nicht das das so
einfach ist einfach einen quarz von xtal1 auf xtal2 stecken und lebt...
colle sache.
Nun eine frage habe einen quarz der aber nur mit 60000 schwingt kann ich
diesen auch nutzen???
Habe einen Atmega 32 auf das Kit gesteckt. Dieser schwingt mít 8mhz
internem Oszillator damit müsste das programm doch laufen oder nicht??
Oder muss ich unbedingt einen externen Quarz drann hängen hab einfach
die definition für die lock fuse bits gelöscht und den quarz geht das??
> lock fuse bits
Was sind denn das für Dinger? Ich kenne Lock bits und ich kenne
Fuses.
> quarz der aber nur mit 60000 schwingt
60000 Fehlt da ein . ? Der Wert ist nämlich ziemlich ungewöhnlich.
Wenn es 6.0000 MHz sind, musst du in dem BASCOM AVR Manual nachsehen, ob
die RC5 Routinen dort damit zurecht kommen, oder ob die den höheren Takt
von 8 MHz (oder mehr) unbedingt brauchen. Wenn 6 MHz gehen, musst du die
Zeile mit dem $crystal = 8000000 anpassen.
Du kannst bei deinem Atmega8 oder Atmega16 genauso 8 MHz mit dem
internen RC-Oszillator einstellen, wie bei dem Atmega32. Der Atmega32
wäre mir in dem jetzigen Experimentierstadium zu teuer.
Der interne RC-Oszillator ist nicht so genau wie ein Quarz und ist
temperaturempfindlicher. Vielleicht steht auch was im BASCOM AVR Manual
dazu, ob interner RC-Oszilaltor genommen werden kann oder ob ein Quarz
her muss.
ABER: Ein Quarz ist sowieso zu empfehlen, weil du eine RS232 Übertragung
machst. Du kannst ja mal in der Artikelsammlung oder hier im Forum
lesen, was die Meinung zu RS232 Übertragung ohne Quarz ist...
Hey,
also bestelle ich einen Quarz der auf
$crystal = 8000000 => 8MHZ schingt und eine IR Diode die der
entspricht die der Prüfer genommen hat. Habe mal so aus neugierde im
Bascom geschaut er hat den Code fast 1 zu 1 übernommen bis das er am
Anfang ein paar Kleinigkeiten geändert hat. Dann müsste doch das ganze
funktionieren oder? Aber noch eine Weitere Frage mit welchen Befehlen
arbeitet dann denn das Programm das ich noch unter Visual Basic
schreiben muss? Kann ich das über RS232 machen oder kann das auch über
den USB Port arbeiten? Denke mal es ist einfacher über den RS232 Port zu
gehe?!
Kannst du machen, wobei... wenn ich schon einen IR-Empfänger vom Chef
bekomme und die Pinbelegung aus dem Datenblatt finde, dann würde ich
diesen IR-Empfänger auch einsetzen und an die Hardware anpassen (kleines
handgelötetes Strippenwerk/Platinchen mit dem die Pinbelegung des
TFMS5300 auf die Pinbelegung des SFH5110 gebracht wird). Allein der Ehre
und der Nutzung der knappen Zeit wegen ;-)
RS232 ist einfacher als richtiges USB. In deinem Projekt hast du aber
kein richtiges USB, sonderen einen eingebauten USB auf Serial
Konvertermodus. Damit arbeitest du in beiden Fällen auf dem PC immer mit
einer echten oder virtuellen COM (RS232) Schnittstelle. Das VB Programm
ist in beiden Fällen fast identisch. Der Unterschied ist die Bezeichnung
der Schnittstelle also z.B. ob COM1 benutzt wird oder COM4.
Hallo,
habe bei Reichelt die Original Diode einen 8 mhz quarz einen 8 mhz
Quarzoszillator und noch ein paar Kleinigkeiten bestellt da ich eh noch
was für meine Prüfung in einem Jahr gebraucht hab. Somit kann ich schon
mal auschließen das mir die Diode ans Bein Pi**t . Brauche ja eh den
Quarz oder den oszillator von daher egal. Dann greife ich am besten das
Signal am RS232 ab. Habt ihr schon Erfahrung gemacht wie lange der
ATMEGA an einer Batterie hält? Wäre dann ja Sinnvoll den Tester auf
einer 9 Volt Batterie zu betreiben das man am Display (mit denen hab ich
schon genug Erfahrung gemacht und kenne mich ein wenig aus) schon mal
erkennt ob überhaupt was gesendet wird und dann als Zusatz für z.B. die
Werkstatt dann noch den RS232 Adapter drann mache umd FBs im Rechner zu
speichern somit wäre der Mobile Einsatz gewährleistet.
Die 9V Batterie würde ich nicht nehmen.
Die Auswahl der Sapnnung wird durch das LCD und den IR-Empfänger und den
IR-Sender bestimmt. Da sind 5V passend.
Also müsste man zuerst die 9V auf 5V runterbringen (mehr Hardware) und
je nach Hardware kostbare Energie verheizen (Linearregler). Ausserdem
stecken in den 9V Batterien nicht soviele mAh drin.
Ich würde eher einen 4x1,2V AA NiMH Akkupack nehmen und bei 4,8V
arbeiten. Die fehlenden 0,2V halten sind vielleicht für LCD / IR nicht
schlimm (Datenblatt min. Werte bei den elektr. Spezifikationen lesen).
Wenn die fehlenden 0,2V gebracht werden müssen, gibt es einen Artikel
(Versorgung aus einer Zelle) wie man einen Step-up Regler einsetzen
kann. Ist IMHO aber was für die Zeit nach den 3 Wochen.
Hallo,
aber auf dem Sog. AVR Kit ist doch ein kleines Netzteil drauf. Das
müsste die Schwankungen aushalten oder nicht? Uns hat man in der Prüfung
gesagt man kann alle Spannungen von 5-24 Volt darauf geben. Bisher habe
ich das ganze immer mit ca 12 Volt betrieben da es genau aus meinem
Labor Netzteil kommt. Falls das zu viel war war es ein Fehler meiner
Seite. Werde dann für das fertige Projekt einen Sockel für die Batterien
bestellen und anlöten. Kann ich eigentlich aus dem Netzteil des ganzen
auch eine Ladespannung nehmen dann könnte man Akkus einbauen und diese
Aufladen?!
Viele Grüße
$regfile = "m8def.dat" 'zu jedem Modell passende Datei
$crystal = 8000000 'Quarz (Resonator) Frequenz
$PROG &HFF,&HAE,&HD9,&H00 'FuseBit auf Extern. Quarz
$baud = 9600 'gewünschte Baudrate vorgeben
Config Rc5 = Pind.4 'an PD5 ist die IR-Diode angeschl.
Enable Interrupts
Print "Waiting for RC5..."
Dim Address As Byte , Command As Byte
Print "Waiting for RC5..."
'If the pins is used for other input just unremark the next line
'Config Pind.2 = Input
Getrc5(Address , Command)
'we check for the TV address and that is 0
Do
'now check if a key on the remote is pressed
'Note that at startup all pins are set for INPUT
'so we dont set the direction here
'If the pins is used for other input just unremark the next line
'Config Pind.2 = Input
Getrc5(Address , Command)
'we check for the TV address and that is 0
If Address = 0 Then
'clear the toggle bit
'the toggle bit toggles on each new received command
'toggle bit is bit 7. Extended RC5 bit is in bit 6
Command = Command And &B01111111
Print Address ; " " ; Command
End If
Loop
End
Hallo,
so lautet der Quellcode mein Problem es kommt im RS232 Terminal nichts
an wenn ich eine FB davor halte. Habe genau diese Diode die Diode hat
auch Kontakt zum Atmega (ohmisch gemessen). Muss ich sonst noch was
abändern die Diode hängt wie im Schaltplan angegeben an PD4. Nicht wie
im Programm ganz am Anfang vorgegeben an PD5. Muss ich sonst noch was
ändern mein ATmega ist auch ein Atmega 16 kein 8er. Bitte um schnelle
HIlfe!!! Es hängt ein Quarz an XTAL1 und 2 von 8 MHZ
Vielen Dank
Ingo
Erstmal muß ganz oben "m16def.dat" hinein. Zumindest die Ausschrift:
"Waiting for RC5" muß auf dem Terminal erscheinen, sonst ist die
Kommunikation von Kontroller und Terminalprogramm nicht in Ordnung.
Wenn Du einen Oszillographen besitzt, sieh Dir erstmal an, ob überhaupt
ein Signal an der Empfangsdiode ankommt.
Wenn das funktioniert, kann es immer noch sein, daß Deine Fernbedienung
gar kein RC5-Signal liefert, oder daß nicht die Adresse 0 (Fernsehgerät)
gewählt wurde. Um das zu testen, kommentiere mal die Zeile
"If Address = 0 Then"
aus, damit auf alle Geräteadressen reagiert wird.
MfG Paul
Hallo,
heute war der Prüfer in der Schule und was soll ich sagen es funst !!!
Bloß hat nicht er den Fehler gefunden sondern ich nach langem hin und
her geklicke. Also deine Idee Paul war gar nicht so falsch ich hab
einfach einprogrammiert If Address < 255 then
und habe die Interrupts die ich bei mir auf dem PC remarkt hatte wieder
frei gegeben und dann hat das ganze gefunst. Mittlerweile gibt der AVR
auch das empfangene Signal auf dem LCD Display aus und hat sogar einen
Eigenen Start Modus ( Begrüßung). Werde noch Ein kleines Menü oder eine
kleine Anleitung einprogrammieren damit der "dolle" Anwender auch weiß
wie´s geht. Kann man eigentlich auch Symbole im Display selbst
erstellen? Hab so ein 2 Zeilen Display und in Bascom kann man ja ein
Symbol erstellen aber wie flasht er mir das auf den AVR bzw. wie rufe
ich das ab? Wie gesagt wenn es fertig ist sollte die Sache auch ihre
Daten auf den PC speichern und eventuell auch wieder senden können. Den
ganzen Quellcode als komplettes gibts morgen Abend
Vielen Dank für eure Nerven die ihr mir geopfert habt und für eure
Hilfe.
Ingo