PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Liniensensor für Lego rcx



Thorone
20.11.2009, 18:03
Hallo zusammen

ich hab letzt' meinen alten Lego-RCX Baustein wieder rausgekramt und irgendwie hat mich jetzt das Lego-roboter-bau fieber gepackt ^^ Nun wollte ich das ganze ein wenig anspruchsvoller gestalten und statt dem einen mitgelieferten Lichtsensor mit dem es ja relativ aufwendig ist ne Linie zu verfolgen, mir einen aus 6 CNY70 Reflexkopplern selbst bauen. Dies soll so ablaufen dass mit jeder sensor nur nen 1 bit wert ausgibt also sozusagen: dunkel: linie; hell: keine linie.
Dafür hab ich auch schon nen ganz geeigneten Schaltplan im internet gefunden:
http://www.kreatives-chaos.com/images/121.png
(Poti R3: 100k R2:10k)

Jetzt muss ich sozusagen nur noch aus dem "digitalen" Signal der schmitt-trigger wieder ein analoges machen das dann im Baustein wieder in ein digitales verwandelt werden kann. Dummer Umweg, ich weiß, aber ich hab bei dem Baustein nunmal keine anderen möglichkeiten.

Ich weiß dass das ganze irgendwie mit Widerständen und optokopplern (Denn die sensoren werden extern mit strom versorgt) aufgebaut werden kann, nur hab ich eben sowas noch nie wirklich gesehen und kann mir jetzt nichts konkretes drunter vorstellen. (vom berechnen der einzelnen widerstandswerte ganz zu schweigen)
Der eingang des RCX ist ein auf High(5V mit 10 kOhm pullup) liegender 10 Bit DA wandler also müsste man doch irgendwie durch gezieltes zu oder abschalten (eben durch die optokoppler) den Gesamtwiderstand zwischen GND und dem eingang des DA wandlers so regeln können dass mir am ende der DA wandler ein digitales Signal ausspuckt das mir sagt welche sensoren Gerade weiß und welche schwarz wahrnehmen...

Nun würd ich gern wissen ob das denn alles so funktioniert wie ich mir das vorgestellt hab und was sehr freuen würde: wenn jemand grad zufällig so nen schaltplan für diese oder zumindest ne ähnliche konstrunktion hätte.

justin
20.11.2009, 18:42
Ich würde versuchen, die sechs digitalen Ausgänge der Sensoren an ein R2R_Netzwerk anzuschließen. Wenn das genau genug wird repräsentieren dan die oberen 6 bit des Wertes die Sensoren.


Edit: Also so, wie auf dem Bild hier, nur statt den Schaltern die Ausgänge der Sensoren.

http://upload.wikimedia.org/wikipedia/commons/7/73/R2r-netzwerk.png

Thorone
20.11.2009, 19:42
also ich hab ja bei den sensoren ne andere VCC is später im stein... das muss man berücksichtigen... ich weiß eben nicht in wiefern der schaltplan bei mir dann sinn macht (es kann auch sein dass ichs grad nicht nachvollziehen kann was später wo angeschlossen ist...)
also die interne beschaltung des ports inst folgende
http://img94.imageshack.us/img94/9284/image2qz.jpg
Deshalb müsste ich schauen dass ich sozusagen nen spannungsabfall bekomme... und dann müssen die werte der Widerstände auf den pullup abgestimmt werden oder?

justin
20.11.2009, 20:03
Achso, die Referenzspannung ist intern festgelegt, oder wie ist das? Dann läufts wahrscheinlich nicht.

Edit:

Könnte doch gehen, wenn du da, wo "output" steht einen Elektrometerverstärker anschließt mit nem Verstärkungsfaktor, der entsprechend groß ist, sodass, wenn am Eingang die maximale Spannung (alle Sensoren an) anliegt, am Ausgang möglichst genau 5V anliegen.

Thorone
20.11.2009, 21:49
Ohjeh ^^ Elektrometerverstärker... da hören meine kenntnisse wohl auch schon auf...

hmm ich hab das mal schnell mit paint skizziert wie ich mir das gedacht hab. Nur hab ich keinerlei ahnung ob das so auch funktioniert...
Also die widerstände r1,r2,...,rn haben verschiedene werte die jeweils das doppelte des vorgängers sind so könnte ich doch einen eindeutigen widerstandswert für jedes anligende signal schaffen oder bin ich da auf dem holzweg?
Also z.B für 101101 als werte die die Schmitt trigger ausgeben 1 * 1 + 0 * 2 + 1*4 + 1*8 + 0*16 + 1* 32 = 45 kOhm oder ähnlich...
http://img121.imageshack.us/img121/3489/unbenanntib.png

Edit: ich merk grad dass GND für die optokoppler-LEDs auf dem bild fehlt... aber halb so wild ne?^^

justin
21.11.2009, 09:41
Geh mal auf Wikipedia -> Operationsverstärker. Da bei den Anwendungsbeispielen steht ein "nichtinvertierender Verstärker". Den mein ich.


Zu deinem Vorschlag: Ich kenn mich nicht so gut aus, aber prinzipiell dürfte der gehen. Allerdings haben Phototransistoren, wenn ich mich nicht irre nen recht großen Widerstand, sodass das mit dem berechnen recht schwierig werden dürfte. Außerdem gibts da wieder das selbe Problem, dass die Spannung nicht ganz auf 5V kommt, man also vermutlich nicht einfach jedem Bit des gelesenen Wertes einen Sensor zuordnen kann. Ist der interne Pullup überhaupt genau genug? Ich würd den garnicht nutzen und das ganze eben wieder mit nem Elektrometerverstärker verstärken. Aber das ist dann schon wieder fast das selbe, wie mit dem R2R Netzwerk, nur wesentlich komplizierter zu rechnen.

Richard
21.11.2009, 10:47
Hallo zusammen

ich hab letzt' meinen alten Lego-RCX Baustein wieder rausgekramt und irgendwie hat mich jetzt das Lego-roboter-bau fieber gepackt ^^ Nun wollte ich das ganze ein wenig anspruchsvoller gestalten und statt dem einen mitgelieferten Lichtsensor mit dem es ja relativ aufwendig ist ne Linie zu verfolgen, mir einen aus 6 CNY70 Reflexkopplern selbst bauen. Dies soll so ablaufen dass mit jeder sensor nur nen 1 bit wert ausgibt also sozusagen: dunkel: linie; hell: keine linie.
Dafür hab ich auch schon nen ganz geeigneten Schaltplan im internet gefunden:
http://www.kreatives-chaos.com/images/121.png
(Poti R3: 100k R2:10k)

Jetzt muss ich sozusagen nur noch aus dem "digitalen" Signal der schmitt-trigger wieder ein analoges machen das dann im Baustein wieder in ein digitales verwandelt werden kann. Dummer Umweg,

Hmm, warum List Du die Digitalen Ausgänge der Schmittrigger nicht
einfach parallel mit nen Port ein und läßt den ADC einfach weg? OK.
da muß denn Softwaremäßig etwas geändert werden...

Oder Du nimmst einfach einen DAC Baustein, ist einfacher.

Gruß Richard

justin
21.11.2009, 12:06
Ich denke mal, es sind nicht genug Ports frei, um jedem Sensor nen eigenen zu spendieren. Und ein DAC Baustein ist nicht wirklich einfacher, als ein r2r Netzwerk.

Richard
21.11.2009, 13:40
Ich denke mal, es sind nicht genug Ports frei, um jedem Sensor nen eigenen zu spendieren. Und ein DAC Baustein ist nicht wirklich einfacher, als ein r2r Netzwerk.

Kommt auf die auflösung an, wenn man ne Europlatine voo R´s
packen will muß man lange Löten, da ist ein DAC schneller aufgebaut.

Gruß Richard

Thorone
21.11.2009, 18:17
letztendlich hab ich aber doch mit nem DAC immer noch das selbe problem... ich muss ja (siehe schaltplan des ports) den AD-Wandler-pin über nen widerstand mir ground verbinden dass so die spannung am AD wandler den gewünschten wert erreicht... ich denke mal so wie ich das gezeichnet hab müsste es doch gehen... leider so hab ich das gefühl wird das dann alles andere als linear... und ich hab keinerlei ahnung welche werte die widerstänmde haben müssten...

justin
21.11.2009, 18:26
leider so hab ich das gefühl wird das dann alles andere als linear

Eben, also nutzt man den Pullup besser nicht und nimmt nen DAC oder ein r2r Netzwerk. Der ADC misst doch nur die Spannung, dem ist es ganz egal, ob du die nun über nen Spannungsteiler mit dem Pullup oder anders erzweugt hast.

Thorone
22.11.2009, 14:25
das problem ist eben der dumme lego baustein hat halt den pullup integriert... das heißt ich kann den weder abschlalten noch sonstwie außer kraft setzen... jetzt frage ich mich halt grad ob man die widerstände so wählen könnte dass das ganze linear wird... und ich muss auch nicht aug 5 volt kommen 4 reichen auch aus das muss man später eben dann nur entsprechend umrechnen

justin
22.11.2009, 14:28
Ist doch ganz egal, ob der nen Pullup hat, oder nicht. Sowohl Elektrometerverstärker, als auch DAC haben eigentlich immer niederohmige Ausgänge, sodass der Pullup wenig bis garnichts ausmachen wird.

Thorone
22.11.2009, 16:13
Achso das ist dann also so dass in den DAC auch strom "hineinfließen" kann wenn am ausgangspin eine höhere spannung anliegt als die spannung die er selbst erzeugt? na dann bietet sich das ja wirklich an einen DAC zu nehmen zumal der lötaufwand und der platzbedarf dann wesentlich geringer wird als mit diversen widerstandsnetzwerken o.ä.

justin
22.11.2009, 16:46
Achso das ist dann also so dass in den DAC auch strom "hineinfließen" kann wenn am ausgangspin eine höhere spannung anliegt als die spannung die er selbst erzeugt?

Ich weiß nicht, ob es bei DACs anders ist, aber normaler Weise ja. Selbst wenn dem nicht so sein sollte, brauchst du dann ja bloß nen Spannungsfolger dahinter zu packen und es funktioniert mit Sicherheit.

Richard
22.11.2009, 17:06
Ein/Dein ADC hat Pullups? Das währe das Gleiche als wenn Dein
Voltmeter Pullups hätte! Wie soll man dann damit Spannung massen
wenn immer Betriebspannung anliegt? Dann müßte Dein ADC bei
unbeschalteten Eingängen immer volle Spannung anzeigen, das kann
sogar passieren weil der Eingang ziemlich Hochohmig ist.

Der hat sicher nicht einen Pullup. Der DAC gibt eine Spannung aus
und diese kann ein ADC wie jede andere Spannung auch messen.


Gruß Richard

justin
22.11.2009, 18:11
Es kann durchaus sein, dass der ADC Pullups hat, so kann man z.B. sehr gut lichtempfindliche Widerstände oder Potis anschließen, mit nur zwei Pins, GND und dem ADC-Eingang.

Thorone
22.11.2009, 18:17
eben ja die spannung fällt ab sobald ein endlicher widerstand angeschlossen wird und erzeugt so werte zwischen 0 (beim verbinden mit masse) oder 1023 beim kompletten trennen von gnd

Thorone
23.11.2009, 15:18
was mir jetzt gerade noch eingefallen ist: wie siehts denn bei der ganzen sache mit der galvanischen trennung aus? immerhin muss ich ja den sensor mit ner anderen zelle versorgen als die die zum beispiel den pullup speist... muss ich da nicht irgendetgwas beachten?

justin
23.11.2009, 15:29
Kommst du denn nicht an die 5V vom rcx drann? Für die Sensoren selbst dürfte das völlig unproblematisch sein, aber der DAC kriegt dann nicht genau die selbe Referenz, wie der ADC des rcx. Das könnte aufgrund der sicherlich leicht unterschiedlichen Spannungen zu Problemen führen. Es wär also gut, wenn du zumindest die Referenzspannung für den DAC vom rcx hättest und als Versorgungsspannung für den Rest eine etwas höhere. Die Massen müssen natürlich verbunden werden.

Thorone
23.11.2009, 16:24
naja ich denk mal intern wird ne spannungsstabilisierung drin sein und wenn ich selbst eine verwerde dürfte das doch maximal 0,1 volt abweichen oder? die frage ist wie groß der fehler dann letztendlich ist... logisch ich hab schon einige toleranzen weil ich 6 bin auf 10 bit abbilden will und da ja dann ein kleiner fehler auch rausgerechnet werden kann... nur ob das genug toleranz ist um solche fehler zu unterbinden... und an die 5 volt drankommen... das wird nicht gehen...

achja noch ne andere frage.... wenn ich den DAC verwende brauche ich dann noch den schmitt trigger?

Richard
23.11.2009, 17:29
ich habe soeben das Bscopm ADC.bas Demo geladen, compiliert
und im Simulator laufen lassen ohne etwas an den ADC Eingängen anzuschließen. Dabei wir NULL V ausgegeben. Was ja bei einen
internen Pullup nicht Möglich währe. Dann habe ich einen Mega 16
mit diesen Programm gefüttert und mit einem Voltmeter die ADC
Eingänge gegen GND gemessen = 0 V. Es gibt keinen Pullup!

Es gibt aber nicht 2 sondern 3 Eingangssuztände.

1: Pullup
2: Pulldown
3: Offen (hochohmig)

Nennt sich dann Tristate. Wenn der Pin als normaler Eingang
prorammiert ist, kann man je nach Bedürfniss diesen Pin mit einen
Pullup verbinden. Schaltet man den Pullup aus, ist dieser Eingang
hochohmig und genau das passiert wen der Pin als ADC benutzt
wird automatisch. Beim ADC ist ein interner DAC der hochgezählt wird.
Dessen Spannung wird mit er Eingangsspannung verglichen und
bei übereinstimmung wird der Zählerwert vom DAC als Eingangs
Spannung ausgegeben.

Gruß Richard

justin
23.11.2009, 17:57
Dir ist schon klar, dass es nicht um Atmegas geht, sondern um den LEGO rcx?

Edit: Scheinbar nein, auf dem rcx ist noch nicht mal ein Atmega drauf, sonder ein Hitachi H8.

Edit2:
Zitat aus Wikipedia:

Für viele Bastler, die eigene Sensoren entwickeln wollen, ist es interessant, den vom RCX ausgegebenen Sensorwert (0..1023) interpretieren zu können. Dieser Wert ergibt sich aus der am Sensoreingang anliegenden Spannung. Ohne Sensor beträgt diese 5 V, fällt aber ab, sobald ein Sensor mit einem endlichen Widerstand angeschlossen wird.

Richard
23.11.2009, 18:48
Dir ist schon klar, dass es nicht um Atmegas geht, sondern um den LEGO rcx?

Edit: Scheinbar nein, auf dem rcx ist noch nicht mal ein Atmega drauf, sonder ein Hitachi H8.



Jetzt schon, da muss ich mich halt geschlagen geben. Da währe die echte
Innenbeschaltung mal interessiant. Wenn der Eingang über Pullup an
5 V hängt und der bekommt jetzt z.B. 2,5 V zugeführt, dann sollte die 5 V
die 2,5 V "Hochziehen" zumindest beeinflussen?

Gruß Richard

justin
23.11.2009, 18:59
Ich versteh ehrlich gesagt nicht ganz, was du meinst. Also wenn 2,5 V von z.B. nem Spannungsfolger oder auch ner Batterie anliegen, dürfte der Pullup wie gesagt so ziemlich garnichts ausmachen.

Richard
23.11.2009, 19:46
Ich versteh ehrlich gesagt nicht ganz, was du meinst. Also wenn 2,5 V von z.B. nem Spannungsfolger oder auch ner Batterie anliegen, dürfte der Pullup wie gesagt so ziemlich garnichts ausmachen.

Hmmm, Der z.B. Lichtsensor ist doch (über die gemeinsame Masse)
Massebezogen. Dann fließt vom Höheren Ptential ein Strom zum Niedrieren
also aus dem Einmgang des Adc raus, der wird quasie zum Ausgang. Wenn
der Lichtsensor mit einem Spannungsteiler arbeitet wird diese Strom durch
den Spannungsteiler R gegen GND abfließen wodurch über diesem eine
höhere Spannung abfällt. Wenn der Sensor ohnme Spannungsteier diereck
am ADC angeschlossen ist fliest der "Ausgangssrtrom wegen der höheren
Spannung "Rückwartz" duch den Sensor, dessen Versorgung zur
gemeinsamen Masse. Ich mag das ja falsch sehen und bin Lehrnwillig.
Aber ohne die wirkliche Beschaltung der Hardware sehe ich da kaum
eine Cance. :-(

Ein Wicki kann jeder bearbeiten.....hat das von euch mal einer nachgemessen?

Gruß Richard

wawa
28.11.2009, 18:12
@Thorone, hast du den Schaltplan vom RCX? Das ist doch der "ALTE". Hat der keinen ADC Input? Fuer den neuen Baustein habe ich schon Loesungen im Netz gesehen. Da wird einfach ein OP-AMP hintergeschaltet. Du must da nicht solche Klimmzuege machen, das geht relativ einfach.
Ich suche mal nach dem Plan. Die LEGO Leute haben nur ein paar Sicherheitsschaltungen eingebaut, damit ein Motor, wenn er falsch gesteckt wird - keinen anderen Port rueckwaerts erschiesst.

gruss wawa

wawa
28.11.2009, 20:19
@Thorone, ich habe einen Lichtsensor gefunden, welcher diskret aufgebaut ist und mit einem NPN Transistor den 10kohm gegen Masse zieht. Das muss er auch tun, denn der RCX schaltet zyklisch die 9V auf diesen Pin. In einer Pause schaltet er die 9V ab und misst dann ueber den ADC den analogen Wert. Daher muss deine Schaltung rueckwaerts 9V aushalten!!
Du koenntest einen positiven OP_AMP mit nachfolgendem NPN Transistor so beschalten, dass der Helligkeitswert den 10kohm gegen Masse zieht.
Ich kann dir nur den Tip geben mal zu suchen. Es gibt im Netz bestimmt einige Loesungen dazu. Wenn du noch Fragen hast - melde dich einfach. Ich suche mal einen Link zu solch einer Loesung.
gruss wawa

justin
28.11.2009, 20:29
Das ist ja schon klar, es ist halt nur so, dass er an diesen einen Pin 6 Sensoren anschließen will und diese natürlich einzeln auslesen.

wawa
28.11.2009, 20:44
wenn das so ist, bleibt ihm nichts anderes uebrig als fuer JEDEN Helligkeitswert den 10kohm unterschiedlich gegen Masse zu schalten. Dazu muss er dann 6 Transistoren mit unterschiedlichen R's parallel schalten. Stufe 1 = R1, Stufe 2 = R1||R2 und so weiter.
Er muss jede Sufe natuerlich mit einem Poti abgleichen.
Finde ich aber ziemlich aufwendig
gruss wawa

wawa
28.11.2009, 21:00
und was ich vergessen hatte - es sind 2 hoch 6 Kombinationen. Da hat Justin recht, er braucht ein R2R Netzwerk mit z.B. 4053 als analoger Umschalter zwischen Plus und Masse. Und den Ausgang muss er mit einem OP buffern - so dass er gegen den 10k ankommt und rueckwaerts nicht erschossen wird.
gruss wawa

justin
28.11.2009, 21:24
Also, wenn ich das richtig verstanden habe, liegen fast die ganze Zeit 9V auf diesem Pin und nur, wenn der rcx den Wert misst, werden die ganz kurz weggenommen, sodass man mit nem etwas stärkeren Kondensator die Schaltung darüber mit Strom versorgen kann. Hab ich das richtig verstanden? Das ist ja praktisch, dann kannst du dir die zusätzliche Batterie sparen. Aber ein DAC mit Spannungsfolger dahinter dürfte ja auch weiterhin gehen, wenn man den Ausgang des OPs über nen entsprechend dimensionierten Widerstand an seinen invertierenden Eingang und an den Eingang des RCX legt.

wawa
29.11.2009, 12:32
Ja, das was ich gefunden habe sagt - fuer 3ms 9V, dann 0,1ms Pause zum Messen. Es liegt aber am Stecker noch eine Dauerspannung an. So ca. 4,3V, strombegrenzt.

wawa
29.11.2009, 15:12
@Thorone
Ich habe mal gerechnet und an den Ausgang des Inverters einen Trs. geschaltet, der einen R gegen Masse zieht. Wenn du nun 6 Ausgaenge hast, brauchst du sechs Trs. Stufen mit 6 verschiedenen Widerstaenden. Die sind so bemessen, dass der Strom binaer gewichtet wird. Der erste hat 10k, der zweite 30k, der dritte 70k, der vierte 150k, der fuenfte 310k und der sechste 630k. Dann hast du fuer jede Kombination einen Spannungswert der zu den anderen einen Abstand von ca. 78mV hat.
Wenn du Fragen hast, bitte melden.
gruss wawa

Thorone
30.11.2009, 07:14
hehe cool danke für die vielen antworten ;)

also soviel ich weiß kann man da bei den sensoren zwei verschiedene modi einstellen also einmal aktiv dann kann man über nen kondensator den sensor mit strom versorgen wie schon hier erläutert und im passiven modus wird einfach die ganze zeit mit dem ADC gemessen.

was mich jetzt noch interessiert wäre welches konzept jetzt hier besser ist. also klar das mit dem DAC wäre ganz bestimmt weniger lötaufwand etc zudem kommt es glaub billiger als 6 widerstände mit ner sehr geringen toleranz (wobei ich eben auch nicht weiß ob das wirklich nötig ist dass man da 0,1%ige nimmt)
aber ich weiß halt nicht was ein spannungsfolger is zum beispiel und ob man den wirklich braucht ^^ was ich toll fände wär mal ein schaltplan.

bisher hab ich gedacht das könnte man jetzt einfach so machen dass man den DAC einfach an den eingang packt, schmitt-trigger davor und dann die schaltung mit dem reflexkoppler (vom ersten post) 6 mal... aber so einfach wirds wohl nicht sein...oder?

justin
30.11.2009, 14:37
Das Problem mit den Widerständen seh ich halt darin, dass man nicht bis auf 5V kommt und somit wahrscheinlich nicht jedem Bit einen Sensor zuweisen kann, sondern das dann wieder noch auf komplizierte Weise rausrechnen muss. Wie gesagt, die Versorung ist ja scheinbar kein großes Problem, die kommt ja vom RCX, einzig die Referenzspannung für den RCX halte ich für ein Problem. Ich weiß nicht, ob man das so genau hinkriegt, ohne die selbe Referenz zu benutzen. Wenn nicht, wäre das mit dem mit Widerständen gegen Masse ziehen und den Wert der einzelnen Sensoren daraus berechnen wohl das einzig mögliche.

Thorone
30.11.2009, 15:26
naja so genau muss es ja denke ich nicht sein weil ich ja nur 64 möglichkeiten auf 1024 bit abbilden will macht da ein kleiner fehler eher weniger. Den sensor will ich übrigens aus ner externen quelle versorgen weil ich diese eh noch zusätzlich brauche und das dann den schaltungsaufwand mit dem kondensator etc reduziert. jetzt frage ich mich nur dass wenn ich den dalschen modus nehm und da dann auf einmal am ausgang des DAC 9V anliegen brät das den dann nicht irgendwie?

justin
30.11.2009, 16:18
Du meinst 64 Möglichkeiten auf 10bit, nehm ich an. Aber das ist ja eigantlich auch egal, auch wenns nur 6bit wären, könnt mans ja im Grunde genauso erfassen. Bei 6bit auf 5V hat man pro Möglichkeit immerhin nur 78mV. Wenn der NXT ne halbwegs vernüftige Referenzspannung hat, dürfte das durchaus gehen. Mit den 9V was kapput machen kannst du dir schon, wenn du zum Beispiel nen Spannungsfolger nimmst ohne den Strom zu begrenzen, zum Beispiel durch ne Widerstand hinter dem Output. Aber das dürfte wenig problematisch sein. Einfach zur Sicherheit einplanen, dass da mal 9V anliegen könnten. dürfte normalerweise keine großen Probleme machen.

Thorone
01.12.2009, 10:42
ja klar ich mein natürlich 10 bit... zudem sind dann die zwei LSB's am DAC noch frei und je nachdam ob ich die mit jumpern auf masse oder +5 leg kann ich da auch noch ein bisschen rumtarieren...
Brauche ich denn diesen spannungsfolger? ich weiß noch nicht so recht was dieses ding eig macht ^^das muss ich mnir auf wikipedia mal ansehn

justin
01.12.2009, 15:42
Also, den Spannungsfolger hinter dem DAC würd ich deshalb nehmen, weil, falls der DAC doch nicht gegen Masse ziehen kann, der Spannungsfolger das auf jeden Fall kann. Und wenn du noch nen Widerstand hinter den Ausgang des OPs packst, kann auch nichts passieren, wenn doch mal 9V an dem Pin anliegen. Es ist halt nur so, dass der Spannungsfolger ne negative Versorgungsspannung braucht, um den Ausgang tatsächlich bis auf GND ziehen zu können.

Edit: Ohne Versorgungsspannung dürfte es gehen, wenn man mit dem OP nen NPN Transistor ansteuert, der den Ausgang nach Masse zieht. Allerdings, wenn da mal 9V anliegen, dürfte der Transistor ruckzuck hinüber sein. Man könnte natürlich noch nen zweiten OP nehmen, der, wenn die Spannung am Ausgang <5V ist die Basis des Transistors auf Masse zieht, sodass garkein Strom mehr fließt. Ich glaub, das mit den Widerständen richtung Masse ist doch einfacher. Wenn man die alle minimal kleiner wählt kommt man doch noch auf den höchsten Wert. Da hatte ich irgenwie ein Brett vorm Kopf. Tut mir Leid.

Thorone
02.12.2009, 07:11
und das mache ich dann mit optokopplern so wie ich es im schaltplan geizeigt hab? um wie viel fällt dann da die spannung denn ab wenn die durchgeschaltet sind? das dürfte ja eigentlich nur minimal wie beim transistor sein oder?
und was meinst du mit minimal kleiner wählen? und brauche ich die hochpräzisionwiderstände oder reichen da ganz normal 5%ige?

wawa
03.12.2009, 20:45
@Justin, entschuldige - aber
ich verstehe eure Diskussion nicht. Wenn Thorone seine Schaltung nimmt mit dem 40106 und einen BSS138 mit 1k Gatewiderstand dahinterschaltet. Die Source gegen Masse. An den Drain den Widerstand der an den 10k im RCX fuehrt. Den zieht er dann gegen Masse. Dies dann noch weitere 5 mal aufbauen, mit den 5 anderen Widerstaenden. Er bekommt dann von 5V alle 78mV einen Spannungswert, je nach Kombination seiner empfangenen Lichtwerte.
Wenn ihr wollt kann ich ja mal in der XLS Tabelle die Toleranz eingeben. Mal sehen was raus kommt.
mfg wawa

Thorone
04.12.2009, 11:46
du meinst dann also alle widerstände paralel schalten oder wie? ich kann mir das grad noch nicht ganz so vorstellen wie du das meinst wenn die paralel geschaltet sind kommen dann nicht auch wete raus die alles andere als linear sind ?

hast du nicht grad irgendwie nen schaltplan?

wawa
04.12.2009, 21:15
ja Thorone, alle an den einen Punkt - an dem im RCX der 10k haengt. Der erste zieht dann einen Strom gegen Masse, der zweite einen anderen, usw. Ich hab das in einem Tabellenkalkulationsprogramm geprueft. Die liegen alle im Abstand von 78mV. Probier es doch einfach aus. Schalte einen 10k an 5V und dann 6 verschiedene mit je einem Schalter gegen Masse. Die Werte hab ich oben angegeben. Und messe mit einem Digitalvoltmeter die Spannung an dem 10k Knotenpunkt gegen Masse.
viel Vergnuegen
gruss wawa

justin
05.12.2009, 21:17
Ich meinte halt nur, dass der NXT nen Wert 78 mV über GND wahrscheinlich nicht zuverlässig als GND erkennt. Aber stimmt, das kann man zur Not ja auch noch feinjustieren, indem man zu den anderen noch nen Widerstand mit irgendwas über 1MOhm parralel schaltet. Ja, da hatte wie gesagt irgendwie ein Brett vorm Kopf. Das ist natürlich eindeutig das einfachste.

wawa
05.12.2009, 21:50
ach Justin, da braucht NICHTS feinjustiert zu werden! Wir erkennen Bruchteile von mV an GND, das ist kein Problem wenn der GND stimmt. Man muss wissen wo er herkommt!!! oder ihn genau so verlegen wie es notwendig ist. Keinen Fremdstrom drueber fliessen lassen.
78mV sind ein Scheunentor fuer einen 10bit Wandler, wenn der GND stimmt.

justin
06.12.2009, 10:14
Natürlich geht das mit nem 10bit Wandler und späterem rausrechen der Sensorwerte sowieso, aber es wär doch viel einfacher, wenn die oberen 6bit jeweils einen Sensor repräsentieren und da sind 78 mV halt schon sehr knapp. Oder vertu ich mich da schonwieder?