www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lichtschranke & falscher Interrupt


Autor: max manzenberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

Ich habe ein Problem und verzweifle langsam daran.

Kurze Beschreibung:
Ein Servomotor treibt eine Linearführung an. Damit der Schlitten der
Linearführung links und rechts nicht anstoßen kann, benutze ich 2
Lichtschranken um vorher den Motor zu stoppen.

So zumindest das Kozept.

Die Pulse der Lichtschranken gehen auf 2 External Interruptfähige
Ports. Ich verwende ein Phytec Minimodul mit einem C167CR.
Die Lichtschranke gehen auf Port 2^14 und 2^15.

Die entsprechenden Register sind gesetzt, es wird auf fallende Flanke
detektiert. Es wird auch ein Interrupt ausgelöst, wenn der Schlitten
von den Lichtschranken erkannt wird. (Fallende Flanke) Nur leider wird
auch ein Interrupt ausgelöst, wenn der Schlitten wieder aus dem Bereich
der Lichtschranke rausfährt.
Also bei der steigenden Flanke.

Dass es nicht zu Missverständnissen kommt. Solange der Schlitten vor
der Lichtschranke steht bleibt das Signal Low. Während nichts davor ist
High. Dementsprechend fällt es beim Reinfahren von High auf Low, beim
Rausfahren umgekehrt.

Wenn ich direkt am Pin 2^14 mit dem Oszi messe kann ich aber keinen
Puls der ein Auslösen des Interrupts herbeiführen könnte erkennen.

Komisch ist auch noch, dass der fehlerhafte Interrupt nicht immer
ausgelöst wird, das passiert nur hin und wieder.

Gleiches passiert auch wenn ich auf die steigende Flanke erkennen
lasse. Er reagiert auch auf die fallende.

Auf beide Flanken wird zuverlässig reagiert.

Woran könnte das liegen?

Ich bin echt am Ende mit meinem Latein.

Vielen Dank!
Gruß
Max

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt IMHO gepulste Lichtschranken, die Umgebungslicht ausfiltern,
indem sie mit einer festgelegten Frequenz arbeiten.
Wenn die Schaltung der Lichtschranken nicht sauber aufgebaut ist, kann
es sein, daß im Grenzbereich (wenn die Lichtschranke nur zum Teil
verdeckt ist) die Frequenz der Lichtschranke aufs Ausgangssignal
durchschlägt. Ein solcher "Fehler" hat mich schon Stunden
gekostet...
Geh mal mit dem Oszi an den Ausgang der Lichtschranke und fahre den
Schlitten auf eine Position, in der die Lichtschranke gerade so kippt.

Autor: max manzenberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Leider habe ich kein besonders ausführliches Datenblatt der
Lichtschranke zur Verfügung, daher weiss ich nicht wie sie Arbeitet,

Die Lichtschranken arbeiten allerdings mit einer Verorgungsspannung von
24V und geben eben ein sollches Signal zwischen 24V und 0V aus.
Dieses Signal gebe ich auf eine Emitterschaltung mit Kollektor und
einem RCvon 10k an 5V. Nach dem Widerstand greife ich das Signal für
den µC ab.

Ich dachte mir auch schon, dass im Umschaltbereich der Hacken liegt.
Allerdings haben diese Lichtschranken eine große Hysterese. Wenn Sie
mal "Ein" detektiert haben, bleiben sie das auch. Man muss schon
wieder ein gutes Stück zurückfahren damit Sie wieder "Aus"
detektieren.

Wie ich auch schon sagte, sind die Signale absolut sauber. Sprich keine
Schwinger oder Spitzen drauf. Auch keine kurzen Pulse die sowas auslösen
könnten.

Trotzde danke

Gruß
Max

Autor: edi.edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wieviele impulse werden erzeugt waehrend die lichtschranke geoeffnet
/geschlossen wird ? hast du nicht an etwas Hysterese gedacht?   oder
wie waere es mit einem monoflop um eindeutige signale zu erhalten?
ed

Autor: max manzenberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wie ich schon geschrieben habe:

Solange der Schlitten vor der Lichtschranke steht bleibt das Signal
Low. Während nichts davor ist High. Dementsprechend fällt es beim
Reinfahren von High auf Low, beim Rausfahren umgekehrt.

Es werden keine Pulse erzeugt. Wenn die Lichtschranke geschlossen wird,
fällt das Signal auf Low und bleibt da solange etwas vor der
Lichtschranke ist. Genauso umgekehrt!

Kein Hin und Hergehüpfe, dann wäre es ja klar.

Gruß
Max

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.