Forum: Mikrocontroller und Digitale Elektronik auswertung einer reflexlichtschranke mit einem avr


von slotmichl (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich habe ein paar SFH9201 geschenkt bekommen. Es handelt sich
dabei um reflexlichtschranken von osram.
(Schaltbild im Anhang: Vcc=5V, Ic=1mA, Rl=1kOhm)

Nun dachte ich mir anfangs das es sich hierbei um einen
Schalter handelt. (weil ich tarnsistoren nur als solche kenne)
also Licht an = aus, Licht aus = an. Dem ist aber leider nicht so.

Es ist so das je nach Entfernung zum reflektor=zurueckgeworfenem
licht der strom variert.

Wie laesst sich sowas denn zur einfachen Verabeitung mit einem
mikrocontroller denn in ein/aus wandeln? Ich moechte naemlich
lieber ein paar ports auf High oder Low abfragen als mich mit
den tuecken der adwandlung beschaeftigen.

Danke fuer alle Anregungen

Gruesse
 slotmichl

von blockiert (Gast)


Lesenswert?

Welche Spannungen nimmt denn der Output an? Miß doch mal.. Vielleicht 
reicht es ja, damit der Controller high und low erkennt?

von Helmut R. (heru01)


Lesenswert?

Du hast leider nicht geschrieben welcher µC.
Wenn Du z.B. Atmel nimmst, hast Du bei vielen einen Analogkomparator 
dabei.
(z.B. AtTiny45)
Wie Du die Lichtschranke anschließt und zum Laufen bekommst, siehe 
Application Notes.

Du brauchst lediglich Widerstände dazu, um einen Schsaltpunkt 
festzulegen und den Tiny45 + bisschen SW.

Viel Spass

Gruß
Helmut

von Pepe (Gast)


Angehängte Dateien:

Lesenswert?

Solltest Du nur einen digitalen Eingang zur Verfügung haben,
kannst Du obige OP-Schaltung.
Handelt sich dabei um eine Schmitt-Trigger-Schaltung.
Die Schaltschwelle Uein liegt bei ca. 2,1 V bei VCC = 5V.
Uaus ist fast der gleiche Wert.
Falls Du einen andere Schaltschwelle brauchst: Ich glaub da gibts
auf Wikipedia ne Formel zum berechnen der Schwellen.

Die Schwelle reicht so für ca. 1-2mm Abstand und gutem Kontrast aus.
Solltest Du größeren Abstand haben, verschiebt sich auch der Pegel.
Bei ca. 5mm Abstand brauch ich eine Schaltschwelle von ca. 3.4V
damit ich ON/OFF sauber trennen kann.

Gruß,
Pepe.

von slotmichl (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Danke fuer die Infos.

blockiert:
 Die Spannung liegt laut Datenblatt bei 100mA. Hab mal das passende
 Bild aus dem Datenblatt kopiert und angehaengt.

Helmut Ru:
 Ich haette einen Atmega16 oder einen Atmega169@16Mhz, 5V
 zur Verfuegung. Der Analogkomperatopr ist mir zu kompliziert,
 deshalb moechte ich gerne die gpios verwenden.

Pepe:
 Danke fuer den Tip mit dem Schmitttrigger. Das von dir Angehaengte
 Schaltbild sieht fuer mich zwar sehr Aufwendig aus, aber wenns nciht
 anders geht dann muss es eben so sein.
 Werde mich mal bezueglich Schmitttrigger Schlau machen.

Gruesse
 slotmichl

von STK500-Besitzer (Gast)


Lesenswert?

> Die Spannung liegt laut Datenblatt bei 100mA. Hab mal das passende
> Bild aus dem Datenblatt kopiert und angehaengt.

1. Spannung wird in Volt und nicht in Ampere gemessen. Ampere ist die 
Maßeinheit des elektrischen Stroms.
2. die 100 in deinem Bild sind Prozent, auch keine Ampere.

von slotmichl (Gast)


Lesenswert?

Hi,

Der gute alte Fehlerteufel war wiedermal hier.

blockiert: 5V. Nur wenn ich den reflektor direkt auf
 den Sensor lege veraendert sich die Spannung.
 Schade, waer sonst ja alles geritzt.

STK500-Besitzer: Danke fuer den Hinweis. War wohl doch ein wenig
 zu frueh gepostet. Hier nun die Daten aus dem Datenblatt:

Kollektor-Emitterstrom IceMin 0.25 mA, IceTyp 0.70mA
bei IF = 10mA, Ic=85 microA, 90% reflexion, 1mm Abstand.

Gruesse
 slotmichl

von starwatcher (Gast)


Lesenswert?

Ich würde dir auch die Lösung mit dem Schmitt-Trigger empfehlen.
Alternativ könntest du aber auch einen Operationsverstärker als 
Komparator nutzen, wäre zwar nicht so elegant (und ohen Hysterese), ist 
aber vom Aufbau her einfacher.

An den einen Eingang des OPV (Operationsverstärker) schließt du das 
output-Signal deiner Lichtschranke (so wie es auf der Grafik in deinem 
ersten Beitrag gezeigt ist inkl. des wes Widerstandes) an. An den 
anderen Eingang des OPV schließt du den Mittelabgriff eines Potis, 
welches du zwischen GND und VCC geschaltet hast, an. Mit diesem Poti 
kannst du dann die Schaltschwelle einstellen.
Deinen OPV betreibst du an GND und +5 V (unsymetrische 
Versongungsspannung).

Ich hoffe du verstehst meine Beschreibung.

von slotmichl (Gast)


Lesenswert?

starwatcher: Dieser Opamp klingt sehr Interessant. Ein paar 10kOhm Potis
 habe ich hier sogar noch herumliegen. werd mich mla ein wenig schlau
 machen was so ein Opamp an "rundherum beschaltung" benoetig.

Gruesse
 slotmichl

von STK500-Besitzer (Gast)


Lesenswert?

>Dieser Opamp klingt sehr Interessant.

Hmm... AD-Wandler als problematisch bezeichnen, aber etwas mit OPs 
anfangen wollen...
Ich würde da eher zum AD-Wandler tendieren, da man sich einerseits ein 
paar Bauteile spart und somit ein paar Fehlerquellen eliminert, 
andererseits braucht man den AD-Wandler eh irgendwann...

von slotmichl (Gast)


Lesenswert?

stk500-Besitzer: Tjo, so ist das eben. Der eine Loetet lieber ein 
bisschen
 mehr. Der andre Programmiert drum herum. Ich loete lieber etwas mehr
 und frage dafuer via SOftware nurmehr High und Low ab.

starwatcher: Wuerde zb. ein 741er fuer die Aufgabe geeignet sein?

Gruesse
 slotmichl

von STK500-Besitzer (Gast)


Lesenswert?

>Wuerde zb. ein 741er fuer die Aufgabe geeignet sein?

Ja, aber den sollte es nur noch im Museum geben.

von slotmichl (Gast)


Lesenswert?

stk500-Besitzer: hehe, ok wie waers mit nem LM 3900 N ?
 Den gibts auch bei Conrad um die Ecke und er hat gleich 4 Opamps
 in einem Gehaeuse verbaut.

Gruesse
 slotmichl

von spess53 (Gast)


Lesenswert?

Hi

Ich würde erst mal einem 74HC14 (6-fach Schmittrigger/Inverter) testen.
Wenn dich die Invertierung stört kannst du das durch die Beschaltung des 
OK (RL an Emitter/Kollektor an VCC) wieder rückgängig machen.
Die Empfindlichkeit von Reflexkoppler ist stark von der reflektierenden 
Fläche abhängig. Gute Erfahrungen habe ich mit CD-Material gemacht.

MfG Spess

von STK500-Besitzer (Gast)


Lesenswert?

Wozu einen externen Schmitt-Trigger, wenn die AVR-Eingänge schon sowas 
haben?

von slotmichl (Gast)


Lesenswert?

hallo,

spess53: Schade das ich dein posting erst eben gelesen habe. Haette
 mir noch ein paar 74HC14 vom elo laden mitgenommen zumal die 
beschaltung
 dann doch nicht so wild ausfaellt. Das von  Pepe bereitgestellte 
Schema:
 http://www.mikrocontroller.net/attachment/48014/sfh9201.jpg hat mich 
ein
 wenig vom Schmitttriggern abgeschreckt weshalb ich den Operations-
 verstaerker 741 gekauft habe.

STK500-Besitzer: Hast du ein Programm bei der Hand das 8 ports eines
 atmegas ausliesst und das byte auf einfache weise(10101010) zum dump 
auf die
 serielle schnittstelle(he)  zur verfuegung stellt?

 Ich hab keine ahnung wie das mit dem Comperator des avr funktionieren
 koennte  oder wie das Programm dann aussieht, auch was das fuers timing
 bedeutet kann ich mir nicht ausmalen.
 Ich kann Portregister high und low schalten, ich kann erkennen ob ein 
input
 pin high oder low ist und das ganze dann ueber der USART des avr 
ausgeben.
 ich kann ein wenig loeten und simple schaltungen nachbauen, weshalb ich
 eine hardware loesung einer softwareloesung vorziehe.

Gruesse
 slotmichl

von STK500-Besitzer (Gast)


Lesenswert?

Wenn es wirklich nur darum geht, den Inhalt eines zusammenhängenden 
Ports per USART zu verschicken geht das ganz einfach so:

Nachdem man das USART initialisiert hat (steht im Datenblatt 
beschrienben), nimmt man das PIN-Register und schreibt es ins UDR (z.B. 
PortB):

UDR = PINB;

Der Rest um diesen Teil ist auch im Datenblatt beschrieben.

von slotmichl (Gast)


Lesenswert?

Hallo STK500-Besitzer,

Danke, wie bereits gesagt stellt das versenden von einfachen
is high is low informationen ueber den usart fuer mich kein
problem dar.

Auch das alle Funktionen des Avr im Datenblatt beschrieben sind ist
mir Klar. Habe mich wohl ein wenig unklar ausgedrueckt als ich dich
fragte ob du, da du ja den comperator mal erwaehnt hast und sehr
ueberzeiugt von der avr_only variante bist, bereit bist
ein Programm das 8Ports via adc und/oder comperator auszulesen vermag
zur verfuegung zu stellen.

Ich werde soetwas wie bereigts einige male erwaehnt nicht programmieren.

Gruesse
 slotmichl

von blockiert (Gast)


Lesenswert?

probier es mal im Dunkeln.

von Florian D. (Gast)


Lesenswert?

hallo,

also wenn die schaltung aus dem datenblatt so in dem bauteil drin 
steckt, dann ist das ja nix anderes als ein lichtabhängiger 
spannungsteiler. im dunkeln bzw. ohne lichtreflexion sperrt der 
phototransistor, output ist auf vcc. bei lichtreflexion, wenn stark 
genug, leitet der phototransistor und zieht den output auf gnd. schon 
hast dein digitales signal. die empfindlichkeit des empfängers kann man 
mit RL einstellen -> großer widerstand -> sehr empfindlich.
von den dingern habe ich schon etliche selbst aufgebaut. ich habe sie 
immer mit dem adc ausgewertet, weil ich da mehr freiraum hatte. aber bei 
richtiger dimensionierung des RL dürfte da auch über einen normalen 
digitalen io kein problem sein.

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.