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
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
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.
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
> 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.
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
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.
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
>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...
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
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
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
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
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.
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
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.