Forum: Mikrocontroller und Digitale Elektronik Fernbedienungs Test


von Ingo (Gast)


Angehängte Dateien:

Lesenswert?

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

von Compiler Error (Gast)


Lesenswert?

Wann ist denn der Abgabetermin?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Ingo (Gast)


Lesenswert?

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

von Ingo (Gast)


Lesenswert?

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

von Compiler Error (Gast)


Lesenswert?

Im Prinzip ja.
Aber der M16 hat einige Ports mehr als der M8.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Ingo (Gast)


Lesenswert?

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

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von hans (Gast)


Lesenswert?

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

von M. W. (hobbyloet)


Angehängte Dateien:

Lesenswert?

Das Programm im Anhang, hat mir sehr geholfen.

von Ingo (Gast)


Lesenswert?

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

von Ingo (Gast)


Lesenswert?

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

von INgo (Gast)


Lesenswert?

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)

von Marcus M. (marcus67)


Lesenswert?

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

von INgo (Gast)


Lesenswert?

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

von INgo (Gast)


Lesenswert?

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

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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

von Ingo (Gast)


Lesenswert?

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?!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Ingo (Gast)


Lesenswert?

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.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Ingo (Gast)


Lesenswert?

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

von Ingo (Gast)


Lesenswert?

$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

von Paul Baumann (Gast)


Lesenswert?

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

von Ingo (Gast)


Lesenswert?

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

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Ingo (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.