Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] IR-Steuerung
Sahaquiel
14.01.2004, 20:12
Es hat zwar nichts mit Robotern zu tun, aber ich hoffe ihr könnt mir trotzdem helfen!
Ich finde nirgends Schaltungen oder Schaltpläne für einfache IR-Sender und Empfänger.
Ich bräuchte eine Schaltung um eine Beamerhalterung ferngesteuert zu drehen und zu schwenken.
Da es sich um mein Maturaprojekt handelt, sollte ich alles selbst bauen (so will es mein Begleitlehrer, doch er hat selbst keinen Blassen Schimmer davon)
Hat jemand von euch Schaltpläne von einer solchen Steuerung herumliegen, oder weiß wo ich welche bekomme?
MfG Chris
Hallo!
Selber bauen ist da wohl angesagt.
Du brauchst zwei Microcontroller (da tuns z.b. ganz einfache Atmel ATTiny). Dann schreibst du in den einen den Sender rein und in den anderen den Empfänger.
An den Sender hängst du eine Infrarot LED (evtl. mit Transistor zur Verstärkung). Über diese werden die Daten übertragen. Das Infrarot Signal wird mit 38 kHz moduliert (um Übertragungsfehler durch Fremdlicht zu verhindern)
An den Emfänger kannst du z.B. den TSOP 1738 hängen - der decodiert dir das gepulste Signal (mit 38 kHz) und liefert schöne TTL Signale. Dann musst du nur mit einem Microconroller die Signale wieder entschlüsseln und dann die entsprechenden Aktionen einleiten (z.B. über eine H Brücke einen Motor ansteuern).
Anstelle der uC kannst du evtl auch passende ICs verwenden. Aber mit uC ist dann (fast) alles selber gemacht. und um den Stromverbrauch der Sender zu minimieren kannst du den Controller immer nach dem senden in den Sleep Zustand schicken und über den externen Interrupt dann wieder bei Bedarf aufwecken. Dazu einfach alle Tasten an den Interrupt Eingang anschließen und nicht vergessen alle mit einer Diode zu versehen (sonst sind immer alle gleichzeitig gedrückt).
Als Übertragungsprotokol kannst du RC5 verwenden. Das verwendet Philips für ihre Entertainment Produkte. Bei Google findest du da eine genaue Erklärung (da ist auch die Pulsung mit 38kHz nochmals spezifiziert).
Falls du noch Fragen hast kannst du gerne posten.
Viele Grüße
Steffen
Hi.
Ich suche eine Möglichkeit das SIgnal einer NICHT RC5-tauglichen FB auszuwerten um einen Motor anzusteuern.
Es brauch im Grunde nur 2 auswertbare Signale.
Da ich aber Basic nicht kann und auch keine Funktions-referenz zu Basic finde, habe ich keinen blassen schimmer, wie ich ein IR-Signal speichern kann und bei wiederempfangen des gleichen signals eine akton auszuführen.
Kann mir da jemand helfen?
PS: weitere Details zum ganzen auf www.ravers-home.de/pk1/
Gottfreak
28.06.2004, 16:56
Kannst du nur kein Basic und suchst einen Compiler für eine andere Sprache für den Controller(was willst du denn zum Speichern und Wiedererkennen genau für einen nehmen?) der Wahl(sonst würde die eine reine Referenz sicher nicht groß helfen.)?
Wenn dem so ist: Welche Sprache soll's denn sein?
Was weisst du denn über die FB? Das Signal ist nicht RC5-kompatibel. Ist wenigstens die Frequenz bekannt(ohne die zu kennen wird schon das Empfangen schwierig.)?
Frage(n) an Gast (Steffen):
1. Muss dafür der uC so hoch getaktet sein, oder reicht es, wenn ein Oszilator das regelt??
2. Ist C-control zu lahm dafür, oder meinst du, das könnte gehen?
3. Wie sähe so ein Programm, oder das Signal aus, wie wird am Empfänger das Modulieren o.ä. eingeleitet???, oder reicht es nicht allein über die Länge (zeitliche) des gesendeten Signal rückschlüsse auch das Siganl zu machen.
Gottfreak
29.06.2004, 15:26
bin zwar nich Steffen...
1. Muss dafür der uC so hoch getaktet sein, oder reicht es, wenn ein Oszilator das regelt??
Das geht auch mit 'nem externen Oszillator.
2. Ist C-control zu lahm dafür, oder meinst du, das könnte gehen?
Die Frequenz selber erzeugen geht damit wohl nicht. Mit 'nem externen Oszillator könnte es gehen. Am besten dann in Assembler. AVRs sind für den Zweck aber wohl besser geeignet(kleiner, billiger und die können problemlos die 36kHz oder was du nehmen willst erzeugen und dabei noch das Signal codieren. Und das kann man da wohl sogar in Basic umsetzen.).
3. Wie sähe so ein Programm, oder das Signal aus, wie wird am Empfänger das Modulieren o.ä. eingeleitet???, oder reicht es nicht allein über die Länge (zeitliche) des gesendeten Signal rückschlüsse auch das Siganl zu machen.
Das Modulieren braucht eigentlich nicht eingeleitet zu werden. Ein externer Oszillator kann so aufgebaut sein, dass er immer läuft(aus Sparsamkeitsgründen kann man ihm aber auch den Saft abdrehen. Dann schwingt er, wenn der Strom wieder da ist, gleich wieder an.). Ein interner kann ein Timer-Interrupt sein, den man ggf. abstellen kann.
Das eigentliche Signal besteht dann aus einem periodischen Ein-und Ausschalten des modulierten Dauersignals(bei nur zwei zu unterscheidenden Signalen etwa
1ms-An, 5ms-Pause, 1ms-An
oder
2ms-An, 2ms-Pause, 2ms-An.
Das sollte sich dann gut unterscheiden lassen. Die jeweilige Folge wird einfach solange wiederholt, wie der Knopf gedrückt ist.).
Du könntest auch zwei Modulationsfrequenzen nehmen und dann zwei TSOP(erkennen modulierte Infrarotsignale, <1EUR teuer) zum Empfangen nehmen, die direkt den Motortreiber ansprechen. Das würde den Empfängercontroller sparen.
Die reine Länge eines Dauersignals ist etwas störanfällig(auch Glühbirnen machen z.B. Infrarot.).
Danke erstmal für die Ausführliche Antwort?
1. Wie kriege ich den einen Oszilator gebaut? gibts irgenwo nen schaltplan?
2. Soll dann am empfänger die Zeitlänge des Signale gemessen werden, und wenn wie mit ner schleife, die so lange zählt, bis das Signal abbricht, oder wie??
Ja, mitlerweile habe ich das schon genau so versucht, also mit nem NE555 als Oszilator, habe zwar keinen TSOp, aber was vergleichbeare genommen.
Mein 1. Test war einfach mal Sender 1 sec an, 1 sec aus....
das hat auch gut geklappt, und wenn ich dann sowas mache, 100 ms an, 200 aus, 100 an, klappt das auch, allerdings krieg ich das beim Empfänger nicht hin, der Spuckt immer nur Müll aus.
Habs erstmal mit nem C-control versucht, deshalb auch die 100 msec und nicht die 10 oder 2.
Ich weiß nciht genau, wie so ein Empfangsprogramm aussehen soll, ich habs jetzt mal so gemacht:
Sender wartet auch Signal
wenn Signal:start einer Zählerschleife (misst länge des 1 Highpegels)
wenn das Signal erlischt, start Zählerschliefe für LOW-Pegel
Wenn Siganl wieder da, starte Zählschleife für 2. Highpegel
wenn High erlischt, starte eine Prüfung des Signald, z.B.:
ob der 1 High doppelt so lang wie der 2. ist, oder so... Sogar mit Toleranzgrenzen...
Aber er spukt nur Mist aus!
Ich hoffe du verstehst meine "Möchtegern-Quelltext", hab bämlich in CCPLus geschrieben, weil ich nciht mit allen Basic-Befehlen vertraut bin, und ich wollte nicht, dass es schon daran scheitert, obwohl man sagen muss, das CCPlus Dinge oft falsch interpretiert, was echt nervt.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.