mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Doppellichtschranke mit ATmega8 und TSOP1736


Autor: Thorben S. (thorben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe vor eine IR-Doppellichtschranke zu bauen, welche erkennen soll, 
in welcher Richtung die Lichtschranke durchschritten wurde.
Die Schaltung soll später einmal (erweitert um DCF-Uhr und Datenlogger) 
zur Protokollierung der Ein- und Ausflüge in einem Nistkasten dienen. 
Das heißt bei jeder Unterbrechung, sollen Datum, Uhrzeit und Richtung 
erfasst und gespeichert werden. Das ganze soll möglichst Batteriebetrieb 
funktionieren.

Zunächst einmal geht es mir aber hauptsächlich um die Lichtschranke. 
Diese könnte man mit einer IR-LED und dem TSOP1738 als Empfänger 
realisieren. Als Mikrocontroller soll zunächst ein ATmega8 zum Einsatz 
kommen. Die Programmierung erfolg mit Bascom.

Ursprünglich dachte ich, die einfachste Möglichkeit sei folgendes:

Sender:
Die IR-LED wird an PB1/OC1A des ATmega8 angeschlossen.
Timer1 erzeugt die benötigte Frequenz von 36 kHz (ohne Unterbrechung).

Empfäger:
Die Ausgänge der beiden TSOP1736 werden direkt an Ports des ATmega8 
angeschlossen.
Die Software übernimmt die gesamte Auswertung

Jetzt lese ich aber im Datenblatt des TSOP1736, dass der Empfänger nicht 
ununterbrochen mit der Trägerfrequenz bestrahlt werden darf. Laut 
Hersteller soll jeweils nach 10 bis 70 Impulsen eine Pause folgen 
("After each burst which is between 10 cycles and 70 cycles a gap time 
of at least 14 cycles is neccessary.").

Das macht die Sache aufwendiger. Das Sender-Signal kann nun nicht mehr 
vom Timer1 selbständig erzeugt werden (oder doch?).
Und auch die Auswertung erfordert eine viel höhere CPU-Belastung.

Ist diese Einhaltung der Pausen wirklich notwendig?
Andererseits bedeutet der ununterbrochene Berieb der IR-LED ja auch 
einen erhöhten Stromverbrauch.
Macht es Sinn die Signalerzeugung und die Auswertung komplett vom uC 
durchführen zu lassen oder sollte man lieber eigene Schaltungen dafür 
aufbauen?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Macht es Sinn die Signalerzeugung und die Auswertung komplett vom uC
durchführen zu lassen oder sollte man lieber eigene Schaltungen dafür
aufbauen?

JA. Der hat bei dem Beispiel eh nicht viel zutun. Und das oben 
beschriebene Problem mit der Lücke, ist ja auch mit dem Timer machbar. 
Ich würde folgendes empfehlen:
Timer läuft auf 36kHz im PWM-Mode mit 25% (oder kleiner) Tastverhältnis. 
Somit kannst du die LED mit mehr Strom pulsen (nat. nur soviel wie nötig 
für die Lichtschranke)
Die 10..70 Impulse beziehen sich meines WIssens auf eine Anwendung einer 
IR-Fernbedienung (Fernseher o.so) und NICHT auf die 36kHz-Impulse. Also 
kannst du nach zB 1Sekunde eine Pause einlegen. (Inwieweit das ein 
Problem beim Vögelzählen ist weiß ich nixht)

Die Auswertung der Empfänger kann über Interrupt erfolgen, (evtl sogar 
ICP).
Somit kann ein zweiter (?) Timer als Zeitbasis dienen. Dieser könnte 
Seknunden, Minuten, Hunderstel... liefern...

Autor: Thorben S. (thorben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antwort!
Wenn ich dich richtig verstehe, muss ich in meinem Anwendungsfall keine 
Pausen/Lücken berücksichtigen, sondern kann den Empfänger ununterbrochen 
mit 36 kHz bestrahlen. Die Frequenz lässt sich mit einem Timer erzeugen 
und durch Einstellen eines geringeren Tastverhältnisses lässt sich der 
Stromverbrauch des Senders verringern. Ist das so richtig?
Welches Tastverhältnis benötigt denn der TSOP1736, um fehlerfrei zu 
arbeiten?
> Timer läuft auf 36kHz im PWM-Mode mit 25% (oder kleiner) Tastverhältnis.
> Somit kannst du die LED mit mehr Strom pulsen
Was meinst du damit? Dass die LED bei kleinerem Tastverhältnis einen 
höheren Strom verkraftet als bei einem größeren?




Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die 10..70 Impulse beziehen sich meines WIssens auf eine Anwendung einer
>IR-Fernbedienung (Fernseher o.so) und NICHT auf die 36kHz-Impulse.

Dann stimmt dein Wissen nicht mit dem Datenblatt überein:
"After each burst which ist between 10 cycles and 70 cycles a gap time 
of at least 14 cycles is necessary."
und
"For each burst which is longer than 1.8ms a corresponding gap time is 
necessary at some time in the data stream. This gap time should have at 
least same length as the burst."

http://www.vishay.com/docs/82030/82030.pdf

>Was meinst du damit? Dass die LED bei kleinerem Tastverhältnis einen
>höheren Strom verkraftet als bei einem größeren?

Ja. das ist richtig. Es kann aber sein, dass der TSOP damit Probleme 
bekommt...

Das einfachste ist doch, den Timer konstant mit der Frequenz laufen zu 
lassen und den OC-Pin an dem die LED hängt nach einer gewissen Anzahl 
von Durchläufen auszuschalten und nach der Pause wieder einzuschalten.
Diese Pause muß man natürlich bei der Lichtschrankenabfrage 
berücksichtigen.
Ich würde übrigens vorschlagen, den TSOP1740 zu verwenden, da man aus 
dessen Betriebsfrequenz auch eine Zeitbasis für die Uhr erzeugen 
kann...(nein, man braucht keine externe RTC! Zumindest nicht bei dieser 
Anwendung, da der Controller sowieso die ganze Zeit läuft.)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Sensoren haben ne AGC, damit sie sich auf wechselnde Entfernungen 
und Umgebungslicht einpegeln können.

Dazu ist aber dieses Pulsen/Pause Spielchen notwendig, damit sich die 
AGC mit der Triggerschwelle genau dazwischen einpegelt.


Peter

Autor: Thorben S. (thorben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das einfachste ist doch, den Timer konstant mit der Frequenz laufen zu
> lassen und den OC-Pin an dem die LED hängt nach einer gewissen Anzahl
> von Durchläufen auszuschalten und nach der Pause wieder einzuschalten.
Wie würde man dieses Ein- un Ausschalten denn bewerkstelligen?

> Ich würde übrigens vorschlagen, den TSOP1740 zu verwenden, da man aus
> dessen Betriebsfrequenz auch eine Zeitbasis für die Uhr erzeugen kann...
Könntest du das etwas genauer erklären? Meinst du, dass der zur 
Erzeugung der Senderfrequenz verwendete Timer dann auch das Zeitsignal 
liefern kann, oder dass dann ein Quarz verwendet werden kann, der sowohl 
für die Erzeugung des Sendersignals mit dem einen Timer als auch für die 
Erzeugung des Sekundentakts mit dem zweiten Timer gut geeignet ist?
Was für einen Quarz würde man denn sinvollerweise einsetzen?

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie würde man dieses Ein- un Ausschalten denn bewerkstelligen?
über die COMxy-Bits in einem der Timer-Control-Register.

>Könntest du das etwas genauer erklären?
40kHz ergibt eine Periodendauer von 25µs. Daraus könnte man ohne grosses 
Rumgerechne eine sekundentaugliche Zeitbasis basteln.

Naja, eigentlich ist egal. Bei der einen Frequenz zählt man 36.000 
Durchläufe und bei der anderen 40.000, um auf eine Sekunde zu kommen -
passt beides in eine 16-Bit-Variable.

Autor: Thorben S. (thorben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
vielen Dank für eure Antworten. Ihr habt mir damit schon ein gutes Stück 
weitergeholfen.
Ich denke, eine solche Doppellichtschranke sollte ich nun aufgebaut 
kriegen. Wo ich mir noch nicht so sicher bin, ist, ob die Schaltung für 
meine späteren Zwecke (Datenlogger für Nistkasten) gut geeignet ist. 
Insbesondere denke ich da an den Stromverbrauch der Schaltung, die ja 
mit einer Batterie betrieben werden soll.

Zu den einzelnen Komponenten habe ich mir da folgende Gedanken gemacht:

Mikrocontroller:
Der ATmega8 ist sicher nicht optimal geeignet. Er verbraucht relativ 
viel Strom und ist für meine Zwecke vielleich auch überdimensioniert. 
Bisher habe ich nur mit dem M8 gearbeitet. Ich gehe aber davon aus, dass 
im Endeffekt ein kleinerer AVR, der vielleicht auch bei einer geringeren 
Spannung arbeitet, zum Einsatz kommt.

TSOP:
Die benötigten 5V könnten für Batteriebetrieb ungünstig sein. Der wegen 
der AGC nötige Pulsbetrieb verhindert, dass man den AVR so lange in den 
Sleep-Modus schicken kann, bis eine Unterbrechung des Lichstrahls 
erfolgt. Das gleiche gilt für die benötigte Trägerfrequenz, die nicht 
ganz ohne CPU-Belastung erzeugt werden kann (Sehe ich das richtig?).

IR-LED:
Der Stromverbrauch der LED lässt sich über drei Parameter verringern:
- über das Tastverhältnis der Trägerfrequenz (welches Tastverhältnis 
erwartet der TSOP?)
- über das Tastverhältnis der Signale (Bursts/Gaps)
- über die Stromstärke, mit der sie betrieben wird?

Sind meine Überlegungen richtig? Was könnte man ändern? Was für Bauteile 
wären besser geeignet?

Wäre toll wenn ihr mir nochmal auf die Sprünge helfen könntet.

Autor: Thorben S. (thorben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hat niemand einen Tipp für mich?

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem wird eher die Hardware sein. Theoretisch ist das ja alles 
wunderbar, aber versuche erst einmal eine normale serielle Übertragung 
bei Tageslicht oder direkter Sonneneinstrahlung zu realisieren. Ohne 
Filterscheiben und Abschattungen (matt-schwarz) wird das nix werden!
- Können Vögel eigentlich im Infrarotbereich sehen? Vielleicht stört 
sie's ja? ;-)

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vieleicht waere es auch möglich das du eine Phototransistor nimmst.
Wenn die Helligkeit Sprunghaft sich ändert ist ein Objekt 
vorbeigeflogen.
Den AVR kannst du dabei in den Sleep schicken und wenn eine ADC wandlung 
fertig ist weckt er sich automatisch wieder auf, dazu noch ein Timer im 
1s takt.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gib den Viechern Stechkarten und montier' eine Stechuhr! :-))
Im Ernst, Infrarot ist da wohl nicht grade die preisgekrönte Sau! Du 
könntest da ganze auch über zwei kleine gespannte (gleich lange) Drähte 
oberhalb und unterhalb (oder rechts und links) machen und den einen mit 
ein paar MHz beaufschlagen. mit dem Anderen wird gemessen und die 
Feldstärke ausgewertet. Bei uns im Geschäft funktioniert ein 
Objektschutz-Zaun auf diese Weise. Ist natürlich 'n bische aufwändiger, 
aber dafür zuverlässig und witterungsunabhängig.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.