Forum: Mikrocontroller und Digitale Elektronik Lichtschranke & falscher Interrupt


von max manzenberger (Gast)


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

von thkais (Gast)


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.

von max manzenberger (Gast)


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

von edi.edi (Gast)


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

von max manzenberger (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.