www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lichtschranken mit TSOP17xx, TSAL6200 und ATmega16.


Autor: Martin J. (martin_j)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich beschäftige mich erst seit Kurzem wieder mit Mikrocontrollern und 
Elektronik. Ich habe dazu einige Grundlagen vor vielen Jahren während 
meiner Ausbildung erlernt.

Folgendes Problem soll gelöst werden.

Acht kurze Strecken (20cm) sollen mittels Lichtschranken überwacht 
werden. Immer wenn jemand eine der Strecken mit der Hand durchkreuzt, 
soll die Nummer der Lichtschranke an einen angeschlossenen Rechner per 
serieller Schnittstelle übermittelt werden. Das system muss bei 
Temperaturen zwischen 5 und 40 Grad Celsius stabil laufen.

Folgende Dinge habe ich schon geschafft.

ATmega16 mit 8MHz externen Takt ist auf Steckbrett aufgebaut. Dieser 
kann programmiert werden. Ich nutze dazu AVR Studio 4 und WINAVR. Ich 
programmiere also in C. Als Lichtschranken-Ersatz sind momentan Taster 
angeschlossen und die Übermittlung an den Rechner funktioniert.

Kommen wir nun zum eigentlichen Problem.

Die Lichtschranken müssen die Taster ersetzen. Damit Fremdlichteinflüsse 
vermieden werden, soll gepulstes Licht verwendet werden. Als Empfänger 
bieten sich dadurch die TSOP17xx Bausteine an. Diese können direkt an 
den µC angeschlossen werden. Mein Problem ist aber die Signalerzeugung 
für die Senderdiode (TSAL6200).

Wie kann ich das benötigte Signal mit dem ATmega16 erzeugen? Das Signal 
muss z.B. beim TSOP1738 38kHz betragen und nach 10 bis 70 cycles für 
min. 14 cycles unterbrochen werden.

Ich habe schon einige Tutorials und Anleitungen zu Timern und PWM 
gelesen, aber noch nichts passendes dabei gefunden. Freue mich auf eure 
Anregungen.

Viele Grüße,
Martin

Autor: ajkaner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin

Denke ein TSOP1738 ist nicht gerade der beste Kandidat zum bau einer 
Lichtschranke. Der IS471F-SH ist dafür spetziell gemacht. Einziger 
Nachteil ist sein Preis von 5€

Autor: Martin J. (martin_j)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo AJKANER,

danke für den Tipp. Der Preis ist nicht das Problem, zumal die Dinger 
für
ca. 2,50EUR zu beschaffen sind. Hat jemand damit Erfahrungen gemacht?

Die Strecke zwischen Diode und Empfänger ist ca.20cm lang und die Hand 
kann sehr dicht am Empfänger die Strecke unterbrechen.... unter 
http://www.hc08.eu/de/articles.php?article_id=3 habe ich gefunden, dass 
dies ein Problem sein kann, da die Gegenstände 7 bis 10 CM entfernt sein 
sollen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine relativ einfache Möglichkeit ist es immer, den Empfänger mit einer 
Blende zu versehen, so dass er nach Möglichkeit nur den Sender sieht. Zb 
ein Einbau in ein Röhrchen gewährleistet dies meistens schon.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich habe schon einige Tutorials und Anleitungen zu Timern und PWM
> gelesen, aber noch nichts passendes dabei gefunden.

38kHz liegt noch im machbaren Bereich bei 8Mhz.
Du nimmst den Timer 1 und den Modus 14 oder 15, bei dem du den Top-Wert 
vorgeben kannst. Die 8-Bit Timer haben leider keinen derartigen Modus.

8000000 / 38000 = 210

Also Top Wert auf 210, den OCR Wert auf die Hälfte davon und du hast 
deine 38kHz.

Autor: pata (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein TSOP spricht bei 38 kHz innerhalb von 7 Impulsen von off nach on an 
und innerhalb von 15 Impulsen von on nach off. Das sind bei 38 kHz 180 
bzw. 390 µsec. Du musst dir halt im klaren darüber sein, ob eine solche 
Verzögerung für Deine Anwendung tragbar ist.

Autor: Martin J. (martin_j)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die 38kHz bekomm ich also recht leicht erzeugt. Muss ich denn beim 
TSOP17xx eine Sendepause haben oder gehen die auch bei "Dauerbeschuss" 
mit 38kHz? Wie könnte ich die Sendepause einrichten und den 
Schaltvorgang erst dann erkennen wenn die Pause mehrfah 
vorbeigeschritten ist? Die Verzögerung bis ca. 250ms ist bei der 
Anwendung kein Problem.

Ich werde mir heute Abend auf jedenfall mal einige IS471F-SH und 
TSOP17xx bei Conrad holen (Haben einen in Dresden) und morgen beides 
ausprobieren.

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise sind die TSOPs nicht für Dauerbeschuss, wollen also eine 
Sendepause.
Wenn 250msec ok sind, dann würde ich es mit 10msec senden, 90 msec Pause 
probieren, das entspricht in etwa den gängigen IR 
Fernbedienugsprotokollen (und dafür sind die TSOPs ausgelegt).

Autor: Martin J. (martin_j)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bernhard,

kann ich denn die Sendepause auf Empfängerseite irgendwie wieder 
wegbekommen (Kondensatore oder so)? Ich bräuchte ja ein stabielen 5V / 
0V Pegel..... Wenn ich das senden einfach unterbreche, ist auch der 
Pegel unterbrochen und der ATmega würde reagieren.

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ATmega kann doch wohl auswerten, ob die Unterbrechung > 100msec 
ist...

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man ins Datenblat schaut braucht man minimal:
- 10 Zyklen Burst (max. 70), dann
- 14 Zyklen Pause.

Bei mehr als 1.8msec Burst sollte die Pause auch mindestens so lange wie 
der Burst sein.

Bis zu 1800 short Bursts pro sekunde (was immer das genau bedeuted).

Autor: Martin J. (martin_j)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard M. schrieb:
> Der ATmega kann doch wohl auswerten, ob die Unterbrechung > 100msec
> ist...

Wie würde ich das machen? Hab doch noch nicht soooooo viel Programmiert 
mit Microcontrollern..... Danke für eure hilfe.....

Autor: Martin J. (martin_j)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe gestern mit drei Lichtschranken, bestehend aus IS471F-SH  und 
IR Diode, das System getestet. Scheint soweit erstmal alles zu 
Fuktionieren.

Vielen Dank für den Tipp.

Martin

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.