Guten Abend,
ich habe eine Frage zu der angehängten Schaltung, kann diese so
funktionieren?
Der Controller ist ein "ATMEL AT89S8253".
Der T1 ist ein IR-Empfänger und ich möchte ein Optisches Signal über die
LED erzeugen und ein Signal an den Controller weiter geben.
Leider sind alle 4 Ports voll belegt und habe auch leider keine
Möglichkeit es zu testen.
(Der Portpin ist auf Logisch "0" gesetzt)
Ich bedanke mich für eure schnellen Antworten =)
Gruß Phylus
R2 um den Pin sicher auf VCC zu ziehen, R1 als Vorwiderstand zur LED.
Der IR-Empfänger ist sicher einer mit integrierer Elektronik und
Open-Collector-Ausgang?
Thomas schrieb:> Soll der Port ein Ein- oder ein Ausgang sein?
Wahrscheinlich beides. In meiner Konfiguration blitzt die LED bei
IR-Empfang ein wenig herum, wenn der Portpin vom µC auf Masse gezogen
wird, ist die LED an, aber natürlich kein Empfang möglich.
mfg mf
Thomas schrieb:> Was heißt das? Soll der Port ein Ein- oder ein Ausgang sein?
Das steht doch da:
Phylus schrieb:> (Der Portpin ist auf Logisch "0" gesetzt)
Das ist damit ein Ausgang. Bei einem 8051 kann man die Portrichtung
nicht wie beim AVR umschalten, sondern man setzt den Port auf "1", wenn
man ihn als Eingang benutzen will.
Und bei "0" ist das Geraffel dahinter sowieso ohne Funktion.
Mini Float schrieb:> Der IR-Empfänger ist sicher einer mit integrierer Elektronik und> Open-Collector-Ausgang?
Muss er auch sein. Der muss in der Lage sein, den Pullup des Ports auf
"0" zu ziehen. Sonst wird das nichts mit 'nem 8051.
Jedenfalls wenn man den Zustand damit einlesen will. Aber wozu soll der
Port sonst gut sein?
mfg.
Ähm, da is ein Opto-Element, das Sende und Empfangsdiode in einem ist,
er heißt "CNY70"
http://www.strippenstrolch.de/grafiken/cny70-2.gif
Also ohne Elektronik....
Ach mist hab ausversehn auf die 0 getippt ^^ ich meine "1" es ist ein
Eingang.
Es ist mein AbschlussProjekt in meiner Ausbildung zum
Systemelektroniker.
Ich baue einen "LieferRoboter" der "Ware" von 5 Stationen untereinander
Transportieren kann, die LED ist auf dem Bedienpult und zeigt an welchen
Stationen "Ware" auf der Rampe ist und das Signal, was in den Controller
geht soll Programmintern überprüfen ob Ziel und Roboter beladen sind und
dann einen Fehler ausgeben, da die Rampe ja schon beladen ist.
Die Kommunikation zwischen Roboter uns Station erfolgt über die oben
genannten "CNY70" genau wie die Erkennung des Ladezustandes der
Stationen und des Roboters.
Phylus schrieb:> Ähm, da is ein Opto-Element, das Sende und Empfangsdiode in einem ist,> er heißt "CNY70"
So wie deine Schaltung jetzt ist, muß der Opto den Pullup des Ports und
den dazu parallelgeschalteten R1 runterziehen. Das wird er
wahrscheinlich nicht schaffen. Damit bringst du den Eingang in einen
undefinierten Zustand.
Du solltest mit dem Opto einen Transistor schalten und mit dessen
Kollektor schaltest du den Port. Also im Prinzip da, wo die LED jetzt
sitzt kommt der Port ran. Ohne R2 und ohne 5V.
Evtl. reicht es auch, bei deiner Schaltung nur den R1 wegzulassen.
mfg.
@Thomas Eckmann:
also so wie auf dem Bild was angehängt ist?
Das Opto-Element kann über den Transistor soweit ich das weiß um die
20mA durchlassen, der Port beim 8051 kann so was um die 0.8mA oder 0,9mA
ausgeben.
(4,7kohm is als Vorwiderstand passend)
Phylus schrieb:> also so wie auf dem Bild was angehängt ist?
Ja genau. Beim 8051 schaltet man den Port als Eingang auf High und zieht
ihn einfach Masse.
Phylus schrieb:> Das Opto-Element kann über den Transistor soweit ich das weiß um die> 20mA durchlassen
Aber nur bei optimaler Beleuchtung tut er das auch.
mfg.
Der Interne PulUp kann den Strom für R1 Liefern (schon sehr oft so
gemacht und auch so beigebracht bekommen)
(Nur das Port0 keine PullUp / PullDown bei dem Controller)
Ich weiß das bei dem Controller PullUp oder PullDown 5,6 kohm sein muss
und der Vorwiderstand für einen Transistor 4,7 kohm.
> Der Portpin ist auf Logisch "0" gesetzt
Na hoffentlich nicht.
> Funktioniert diese Schaltung so?
Die Frage ist, was bezweckt wird.
In deiner ersten Schaltung kann der uC nicht einlesen,
was der CNY70 erzeugt,
denn die Spannung am PortPin kann nut "fast bei 0V"
und "um die 0.7V" betragen, beides ist logisch low
für den Controller.
> CNY70
Ein Dutzend Beiträge bevor solche Info mal kommt.
> Oder du sparst dir den zweiten Transistor
Dann leuchtet allerdings die LED gerade im anderen Moment.
> also so wie auf dem Bild was angehängt ist?
Auch bei der Schaltung kann der PortPin nie erfahren,
was der CNY70 gesehen hat, weil die einzige Quelle für
HIGH (5V, logisch 1) über den internen PullUp des
PortPins kommen könnte, der mit ca. 90k so viel gösser
ist als die 4k7, daß die Spannung am PortPin nie über
1V gehen würde, was immer noch logisch 0 ist.
Wir wissen nicht, was deine Shcaltun leisten können muß,
haben aber erahnt daß:
- sie erkennen soll wann der CNY70 logsich low liefert
- wenn der port auf Ausgang statt auf Eingang egschaltet
wird, er die LED leuchten lassen können soll (in
deiner Ursprungsschaltung durch Ausgabe von logisch high)
wenn der CNY70 nicht dazwischenfunkt.
- die LED leuchet auch, wenn der CNY70 logisch high liefert ???
Gerade letzteres erscheint zweifelhaft, denn dann leuchtet
die LED wenn der CNY70 nichts reflektiertes sieht.
MiniFloats Schaltung erscheint sinnvoller,
wenn die LED leuchten soll, wenn der CNY was erkennt
(und der uC bekommt das mit wenn sein Port auf Eingang
geschaltet ist)
und programmtechnisch die LED auch zum leuchten gebracht
werden kann -egal ob der CNY70 was sieht- wenn der POrt
Pin auf Ausgang geschaltet wird und logisch 0 ausgegeben
wird.
R2 könnte man bei MiniFloats Schaltung übrigens weglassen,
weil der AT89S8253 einen ausreichenden internen pull up hat.
Der CNY70 wird mit 1.6mA verwendet, was problemlos wischne
1mA und 50mA liegt. Die LED wird ebenfalls mit 1.5mA
betriebe wie in deiner Ursprungsschaltung, ich hoffe mal,
du hast deren Helligkeit bei dem niedrigen Strom ausprobiert
und sie erschien dir hell genug.
Ja, die LED Leuchtet mit ihren eigentlichen 20mA genau so hell wie mit 2
mA, nur das es mit 2mA Stromsparender ist =)
(Mich hatte der R2 in Mini Floats Schaltung ein wenig verwirrt)
Ja, ich hatte auch nen kleinen Denkfehler drin, da ich die Schaltung
erst anders machen wollte, aber euch vielen Dank =)
Ich wünsche euch noch nen schönen Abend.
Phylus schrieb:> Mich hatte der R2 in Mini Floats Schaltung ein wenig verwirrt
Tut mir leid. Es gab da ein paar AT89Sx Typen, die hatten an einem Port
gar keinen Pullup. Ohne den käme man - bei vernachlässigbar kleinem
Spannungsabfall über dem LED-Vorwiderstand - auf eine "High-Spannung"
von VCC - U_led. Die Spannung an der LED U_led würde zwar nicht die
Flussspannung aus dem Datenblatt erreichen(die gibt es so ja eigentlich
gar nicht), aber durch den nicht vermeidbaren Stromfluss - auch durch
den gesperrten Transistor- schon kein garantierbar sicheres High.
mfg mf