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.
Für VB gibt es hier hilfe auch für RS232. Ist es noch VB5/6 oder NET (5/6 ist RS leichter) gruß hans
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
Respekt! Wenn ich den Weg vom ersten Posting bis zum letzten Posting ansehe, bist du in der kurzen Zeit ein gutes Stück weit gekommen. Weiter so.
Hallo, kann man in VB auch den Print Befehl des AVRS auswerten? Wenn ja gibt es da eine Vorprogrammierung habe nichts über die suche gefunden Ingo
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.