Hallo zusammen,
Folgende aufgabenstellung habe ich mir selbst auferlegt:
Bei einer infrarolichtschranke mit einer mit ca 7khz getakteten IR-LED
stehe ich auf empfängerseite vor der Herausforderung möglichst schnell
zu erkenne wann die Schranke unterbrochen wurde. Aktuelle habe ich das
mit einem Kondensator gelöst den ich auf empfängerseite auflade und
langsam entlade wenn kein hoher Pegel von der IR Photodiode kommt,
dahinter sitzt ein Schmitt-Trigger der ab dem unterschreiten eines
gewissen Ladezustands auslöst und somit meinem pic mitteilt, dass die
Schranke (lange genig) unterbrochen wurde.
Laut Oszilloskop ist das halbwegs fix aber es Vergehen eben schon eine
paar Takte bis der kondensator genug entladen ist.
Natürlich kann ich den Kondensator und den entladewiderstand noch etwas
umdimensionieren um so noch schneller auslösen zu können, aber ich frage
mich ob ich überhaupt den richtigen Ansatz verfolgen.
Hab auch schon überlegt ggf mit einem zweiten Timer ic bei jedem high
Pegel auf empfängerseite eine One Shot Timer zu starten der in der Länge
genau der Amplitude (ich meine die länge einer high und einer low phase)
oder ewas länger entspricht und somit die low-Phase überbrückt. Kommt
nun der nächste High Pulse an überbrücke ich wieder usw. Bleibt jedoch
auch nur ein einziger High Pulse aus, geht der Timer auf low und ich
habe eine Flanke für den pic.
Ich möchte übrigens bewusst diese Logik außerhalb des pics haben und
nicht mit dessen internen komparatoren oder Timern arbeiten, da der pic
schon genug Rechenaufgaben hat und durch diverse Interrupts schon oft
genug "gestört" wird :)
Bin für denkanregungen oder links dankbar, hab selbst nix gefunden,
wobei mir auch nicht ganz klar ist wonach ich suchen sollte
(Begrifflichkeit für diesen anwendungsfall)
Danke & Gruß
Paul
Nimm doch einfach ein "nachtriggerbares Monoflop",
gib den Takt auf dessen flankengesteuerten Eingang.
On-Zeit des Monos etwas größer als die Periodendauer deines
Signals wählen und gut ist.
Fällt der Takt aus, hängt, zu langsam fällt das Mono ab.
Zu schnellen Takt kannst Du dadurch abblocken, daß Du mit einem
2. Mono das nicht nachtriggerbar ist, den Takteingang für eine
Zeit kürzer als die Periodendauer des Signals sperrst.
Könnte sein daß beide Funktionen in einem 6-Haxer PIC relisierbar
sind.
Ich würde mit der Taktfrequenz auf etwa 40kHz hochgehen und einen
fertigen TSOP-Empfänger verwenden. Der hat schon alle möglichen
Massnahmen gegen Störungen und Fremdlicht drin.
Wow, danke euch allen für die schnellen Antworten.
Hort sich alles besser an als das was ich machen wollte (bzw der link
ist ja genau das was ich vorhatte mit dem ne555.
Zu dem letzten Vorschlag mit dem TSOP: grundsätzlich hab ich von denen
auch schon zwei geordert und werde bei gelegenheit auch damit spielen,
aber bekomme ich da nicht auch noch ein gefaltetes Signal raus (in dem
fall dann eben 40 kHz)? Oder war der Beitrag nur als Ergänzung gedacht
um störunanfälliger zu arbeiten?
Vielen Dank für eure Hilfe
Gruß
Paul
nee, der TSOP liefert dir eine "Gleichspannung".
Allerdings kann man ihn nicht dauerbefeuern, sondern muss das Signal
takten.
Er filtert dir das 40kHz-Trägersignal heraus und liefert dir den Takt,
mit dem dieses Signal moduliert wird.
Du musst also deine IR-Sende-LED mit 40kHz takten und diesen Takt noch
mal (langsamer) takten...
Paul schrieb:> aber bekomme ich da nicht auch noch ein gefaltetes Signal raus (in dem> fall dann eben 40 kHz)?
Nein.
Die gängigen Typen sind für 36 oder 38 KHz. Die LED wird dann
entsprechend getaktet und der Empfänger filtert jeden Dreck, der da noch
so rumblinkt raus. Am Ausgang bekommst du High, wenn er die Frequenz
empfängt und Low wenn nicht.
mfg.
Danke euch, besonders das mit dem "nicht dauerbefeuern" habe ich
schonmal irgendwo gelesen, weshalb ich davon ausgegangen bin das der
TSOP für mich nicht die Lösung sei.
Wenn ich euch richtig verstehe Takte ich also die LED mit 40khz (oder
für welchen bereich auch immer der TSOP nun spezifisch gedacht ist, ich
glaube ich habe hier welche für 38khz rumfliegen) und Takte diese
Frequenz dann nochmal mit z.b. Meinen 7 kHz (hier ist aber dauerfeuer
ok, oder?).
Dann Sollte ich hinter dem TSOP wieder ein sauberes 7khz Signal
empfangen welches ich dann schön an den ge-retriggerten Monoflop
durchreiche um jeden Aussetzer durch Unterbrechung des IR-Lichtstrahls
zu detektieren und der Drops ist gelutscht.
Korrekt wiedergegeben?
Danke & Gruß
Paul
Paul schrieb:> und Takte diese> Frequenz dann nochmal mit z.b. Meinen 7 kHz (hier ist aber dauerfeuer> ok, oder?).
Ahh.. wozu noch mal die 7kHz?
Du hast auf der Senderseite die LED mit 40kHz und auf der Empfängerseite
direkt ein 1 - 0 Signal wenn die Lichtschranke unterbrochen wurde. Den
Ausgang kannste direkt an den PIC anschließen
Paul schrieb:> Ich möchte übrigens bewusst diese Logik außerhalb des pics haben und> nicht mit dessen internen komparatoren oder Timern arbeiten, da der pic> schon genug Rechenaufgaben hat und durch diverse Interrupts schon oft> genug "gestört" wird :)
Ooch Nöö.
Der MC langweilt sich bei solchen kleinen Aufgaben tierisch.
Timer gehen auch nicht verloren. Ein Timerinterrupt kann viele Aufgaben
zugleich erledigen (Tasten entprellen, LED-Matrix multiplexen, Uhrzeit
zählen und und und).
Den TSOP würde ich auch empfehlen, damit kann man Fremdlicht optimal
unterdrücken.
Die LED (38kHz, Tastverhältnis 25%) steuert dann praktischer Weise ein
PWM-Ausgang des MC an.
Je nach Typ des TSOP sind die minimalen und maximalen Impulslängen
einzuhalten, 7kHz Modulation geht auf keinen Fall.
Die Modulation kann (sollte sogar) völlig zufällig erfolgen (Jitter
erwünscht). Der MC weiß ja immer, wann er die LED an- oder ausgeschaltet
hat.
Damit es es unmöglich, daß jemand die Frequenz mißt und Deine
Lichtschranke durch einen anderen Sender lahmlegt.
Peter
Düsendieb schrieb:> Paul schrieb:>> und Takte diese>> Frequenz dann nochmal mit z.b. Meinen 7 kHz (hier ist aber dauerfeuer>> ok, oder?).> Ahh.. wozu noch mal die 7kHz?> Du hast auf der Senderseite die LED mit 40kHz und auf der Empfängerseite> direkt ein 1 - 0 Signal wenn die Lichtschranke unterbrochen wurde. Den> Ausgang kannste direkt an den PIC anschließen
Die 7 khz waren, weil der TSOP kein Dauersignal mag (so lese ich das
auch aus dem Datenblatt:
"Some examples of disturbance signals which are suppressed are:
...
• Continuous signals at 38 kHz or at any frequency"
einer der Vorredner hat das ja auch bestätigt:
STK500-Besitzer schrieb:> nee, der TSOP liefert dir eine "Gleichspannung".> Allerdings kann man ihn nicht dauerbefeuern, sondern muss das Signal> takten.> Er filtert dir das 40kHz-Trägersignal heraus und liefert dir den Takt,> mit dem dieses Signal moduliert wird.> Du musst also deine IR-Sende-LED mit 40kHz takten und diesen Takt noch> mal (langsamer) takten...
Scheint aber das hier nicht alle dieser Auffassung sind.
Zu dem Thema Manipulation und zufälliger Modulation:
Peter Dannegger schrieb:> Die Modulation kann (sollte sogar) völlig zufällig erfolgen (Jitter> erwünscht). Der MC weiß ja immer, wann er die LED an- oder ausgeschaltet> hat.> Damit es es unmöglich, daß jemand die Frequenz mißt und Deine> Lichtschranke durch einen anderen Sender lahmlegt.
Danke für deinen input Peter. Sicherlich sehr sinnvoll im
Sicherheitsbereich, jedoch baue ich die Lichtschranke nur für eine
Geschwindigkeitsmessung mit zwei Lichtstrahlen. Zudem wird die Frequenz
(die 38 Khz) von einem externen Timerbaustein (LMC555) generiert und der
PIC ist demnach auch hiervon nicht betroffen.
Ich habe im Datenblatt des TSOP jedoch folgendes gefunden:
After each burst of length 10 to 70 cycles
a minimum gap time is required of >= 10 cycles
worauf sich, wie ich vermute, deine Aussage bezieht
Peter Dannegger schrieb:> Je nach Typ des TSOP sind die minimalen und maximalen Impulslängen>> einzuhalten, 7kHz Modulation geht auf keinen Fall.
Wenn ich das alles nun also richtig interpretiere muss in der
aufmodulierten Frequenz nach max 70 Takten/Amplituden der Trägerfrequenz
(38Khz)für mindestens 10 Takte eine Pause erfolgen.
Ein weiterer Verweis im Datenblatt besagt "Minimum burst length 10
cycles/burst". Demnach könnte ich doch kontinuierlich im modulierten
Signal zehn Takte senden, dann 10 Takte ruhe, dann zehn Takte senden
usw.
Bei den 38khz wäre also die aufmodulierte Frequenz genau mit 1/10tel zu
wählen, also 3,8 khz mit einem Tastverhältnis von 50% oder wird das so
nix?
Besser wäre natürlich ca 60 Takte senden, dann ca 15 Takte Ruhe um
genauer in der Spezifikation (10 to 70 cycles burst lenght, >= 10 cyles
pause) zu bleiben. Könnte also das Tastverhältnis vom modulierten Signal
einfach auf 80/20 oder ähnliches zu stellen.
erhellt mich, ich bin bestimmt kurz davor es zu verstehen :-)
Danke Euch
[falls es jemanden interessiert ich nutze einen TSOP312xx von Vishay,
aber mir geht es ja darum die Materie zu verstehen und nicht das ihr das
Datenblatt für mich wälzt]
ach, wundert euch nicht wenn ich mal von 38khz mal von 40 khz
Trägerfrequenz gesprochen habe, war mich nicht ganz sicher welchen TSOP
ich habe, eigentlich ist es sogar ein 30 Khz Teil, aber das ist ja für
das Verständnis erstmal Wurst
Paul schrieb:> eigentlich ist es sogar ein 30 Khz Teil,
Ich würde sogar bewusst eine von 38kHz abweichende Frequenz wählen,
um die Störmöglichkeiten zu verringern.
Gruss
Harald