Forum: Mikrocontroller und Digitale Elektronik "Machbarkeits-Studie" I2C/ULN2803/Modelbahn-Weichen


von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

Hallo liebes Forum,

immer wieder komme ich über Suchmaschinen hier her, aber diesmal komme 
ich so nicht weiter...

Kommen wir gleich zur Sache, es geht um folgendes:

Wie im Betreff schon angedeutet, sollen mehrere Weichen über ein I2C-Bus 
gesteuert werden.

Als Master kommt ein ausgedienter Industrie-Touch-PC (PentiumII) zum 
Einsatz,

welcher einfach über so eine Art "Gleisbild", den(die) 9555 
ansteuert(n).

Müsste ja ansich "machbar" sein, stelle ich mir jedenfalls so vor....

Jetzt kommt´s: Wer den im Anhang befindlichen "Schatplan" schon 
angesehen

hat, wird sich fragen, was hat der mit "D1/D2" vor...

Genau das ist die Frage der "Machbarkeit":

Kann ich im "laufenden" Betrieb, einen Pin des 9555 mal als Ausgang und

dann wieder als Eingang "konfigurieren" ?

Sinn der Übung sollte der "Rückmeldung" der jeweiligen Weiche dienen, 
ohne

dazu ein extra "Pin" zu opfern...

Meine Idee dahinter:

Oben im Plan oben ist schematisch der "Weichenantrieb" dargestellt, zwei
Spulen, zwei Schalter. Wie Abgebildet sollte es jedoch nie sein, aber 
ich wusste nicht, wie man in Eagle einen Schalter als "geschlossen" 
einzeichnet. Der grüne Balken soll den Stell-Hebel darstellen, welcher 
hin und her (Stellung geradeaus/abbiegen) der Weiche ausführt.
Angenommen, S2 ist geschlossen, so müsste doch theoretisch an IC1-I/O1 
ein GND zu messen sein, oder? Im Gegenzug, an IC1-I/O2 nix , oder?

Kann man dieses GND "auswerten" lassen ?

Und was passiert, wenn IC1 den Befehl bekommt, IC1-I/O1 high zu 
schalten?

Kann das so funktionieren ?


Ich hoffe dass mir jemand hier helfen kann, praktisch "bevor" ich da

irgendwas "in Rauch aufgehen lasse"...


Danke schon jetzt
Stefan

von oszi40 (Gast)


Lesenswert?

Diese Variante gefällt mir nicht so recht, da in ungünstigen Fällen die 
induktiven Abschaltspannungen irgendwie auf Deine "Eingänge" 
zurückschlagen könnten.

von Peter B. (pbuenger)


Lesenswert?

Der ULN2803 ist doch ein Lowside-Switch, oder? Dann müssen Deine Weichen 
gegen 12V geschaltet sein und nicht gegen GND.

Peter

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

ok, und so ?


Hat der ULN2803 eine "Schwellenspannung"?

Wenn man den Widerstand so gross wählt, dass "zwischen" den IC´s eine 
"Rückmeldespannung" unterhalb der Schaltschwelle von IC2, aber "Messbar" 
für IC1 liegt ??

Ohjeh... ;)

von spess53 (Gast)


Lesenswert?

Hi

Irgendwie hast du die Funktion des 'Diode'-Pins nicht verstanden.

MfG Spess

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

und so ??

ich frage mich nur grad, ob das so funktionieren kann, also ob ein als

"Eingang" konfigurierter Pin des 9555 was mit "GND" anfangen kann ?

von spess53 (Gast)


Lesenswert?

Hi

>und so ??

Wieder falsch. Am Pin 10 sind die Anoden der Dioden zusammengefasst die 
jeweils mit der Kathode an einem Ausgang hängen. Den Pin kann man offen 
lassen wenn man die Dioden nicht braucht oder er wird mit der Spannung 
der Last verbunden.

MfG Spess

von Frank M. (frank_m35)


Lesenswert?

Es sollte nicht so leicht funktionieren.
Deine Idee, sofern ich sie richtig verstanden habe ist, den ersten Pin 
auf Eingang den zweiten auf Ausgang zu stellen, beim Umschalten den 
ersten Pin auf Ausgang, den zweiten auf Eingang.

Du solltest das Problemlos umschalten können, jedoch wirst du vermutlich 
nichts damit anfangen können da der Eingang teils undefiniert sein wird 
und du durch die Diode den treiber auch überbrückst und im worst-Case 
Fall einen Kurschluss bildest, + am Eingang -> der Treiber schaltet GND 
durch. Doch dann fließt ein Strom vom I2C Baustein über die Diode nach 
GND durch den Treiber, falls ich grad keinen Denkfehler habe.


Anderer Vorschlag:
Die Gleise haben vermutlich nur zwei Zustände, links oder rechts, 
genauso wie dein Pin, 1 oder 0, High oder Low. Warum verwendest du zwei 
Pins und nicht einen einzigen, wobei der zweite Pol des Gleises durch 
einen Inverter angeschlossen ist. Dadurch hast du einen Pin frei den du 
zur Überwachung verwenden könntest und ersparst dir das I/O Umschalten.

Ansonsten wird es auch eine Möglichkeit nach deiner Idee geben, aber das 
wird eine andere Schaltung erfordern.

von Jürgen D. (poster)


Lesenswert?

Ich habe die Dioden mal als "Lampentest" für ein par Leuchtmelder 
zweckentfremdet. Dafür dann einfach ein Taster vonm Dioden Pin gegen 
GND.
Ich würde den Rückmeldekontakt lieber von der Ansteuerung entkoppeln und 
dafür andere Pins des IO Bausteinens verwenden.

von Soul E. (Gast)


Lesenswert?

Frank M. schrieb:

> Anderer Vorschlag:
> Die Gleise haben vermutlich nur zwei Zustände, links oder rechts,
> genauso wie dein Pin, 1 oder 0, High oder Low. Warum verwendest du zwei
> Pins und nicht einen einzigen, wobei der zweite Pol des Gleises durch
> einen Inverter angeschlossen ist.

Geht nicht, da die Spulen gepulst werden sollen. Wenn Du die Spannung 
länger als ein paar Sekunden stehen lässt, riecht es nach Ampere.

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

Also mit "Logik-NOT-Gatter" dann so...

Und wegen dem "pulsen", durch die Schalter im Weichenantrieb 
(Endabschaltung)

würde es theoretisch schon gehen, aber wenn mal was am Schalter ist, 
könnte

es schon zum "Spulentod" kommen...

Also ich glaube, um den zusätzlichen "Rückmelde-Pin" werde ich nicht 
drum

rum kommen, oder ??

von Christian B. (casandro)


Lesenswert?

Ich würde aus 2 Gründen kein I2C verwenden.

1. I2C ist nicht für lange Leitungen gedacht.
2. Dein PC hat evtl. Schwierigkeiten I2C anzusteuern.

Was ich machen würde wäre folgendes:
Nimm RS-485 und ein triviales textbasiertes Protokoll. Zum Beispiel so 
was wie:
Befehl (1 Zeichen)
Elementnummer (dezimal)
Trennzeichen (damit Du weist, wann die Nummer aus ist, z.Bsp. alles 
Außerhalb '0'-'9')
Wert (dezimal)
Zeilenende (z.Bsp. Linefeed)
Das kann jeder Rechner in jeder Programmiersprache mit minimalem Aufwand 
machen. Willst Du werde zurück lesen, so nimmst Du einfach einen 2. Bus, 
auf dem immer nur ein Teilnehmer spricht und schickst einen "Lesebefehl" 
an das Element. Wenn ein Element den Lesebefehl bekommt, schreibt es 
eine Antwort, z.Bsp. in einem ähnlichen Format. Im Prinzip kannst du 
beide Busse zusammenfassen und in beiden Richtungen arbeiten. Da musst 
Du dann aber warten können.

Die Dekodierung kann jeder billigst Controller machen.

von Stefan B. (stefan_ddorf)


Lesenswert?

ne, die schaltung "weiche4" ist auch quatsch...

in eagle zeigt es leider nicht den "ganzen" ic !

bin dran ;)

von Jürgen D. (poster)


Lesenswert?

Bei der dauerbestomten Version mit dem Inverter kanst du dir die 
Rückmeldung sparen. Der weiche bleibt ja nichts anderes übrig als deine 
Wunschrichtung anzunehmen. Selbst wenn man die Weiche mit Hand 
umschaltet, schaltet sie ja sofort zurück.
Wenn eine Weiche nicht umschalten kann, macht sie sich schon selber 
durch Rauchzeichen bemerkbar :) da brauchst du keine elektronische 
Rückmeldung für.

von Stefan B. (stefan_ddorf)


Lesenswert?

erstmal vielen dank für eure beteiligung! :)

...habe ich auch schon überlegt, aber welchen vorteil hätte ich mit 
rs485?

sind 20cm kabel (zwischen pc und "verteilerkasten") denn schon zuviel 
für i2c ?

im prinzip ist es ja egal was für ein "bus", hauptsache "einfach".

habe schon soviel zum thema gelesen und geschaut, aber ich finde das

"anlagenweite-buskonzept" einfach zu "übertrieben" !

wenn ich jetzt mal die kosten und den aufwand gegenüberstelle, finde ich 
es jetzt nicht so daneben, einfach alle weichen über cat5 kabel an ein 
"Zentral-kasten" zu führen.

mir fehlt nur noch der entscheidende tipp, wie ich das mit dem 
rückmelden am "einfachsten" lösen kann...

von Jürgen D. (poster)


Lesenswert?

Von wieviel Weichen reden wir bei dir denn?
Meist sind die weichen ja nicht enzelnd sonder eher so im Rudel 
anzuteffen. So eine Weichenstrasse an Bahnhofs Ein oder Ausgang. Oder 
ein Schattenbahnhof.
Da könnte man dann immer eine Busfähige IO Baugruppe für sagen wir mal 8 
Weichen plazieren die alle über einen Buß verbunden werden.
Das wird das dann mit normalen I2C schon etwas knapp.

von Stefan B. (stefan_ddorf)


Lesenswert?

...ich bin halt auf i2c gekommen, da dieser industrie-pc so eine 
schnittstelle hat.

und ja, stimmt schon, wenn ein rs485 bus, wäre es schon leicht 
bedenklich
alles "zentral" zusammen zu führen.
nur, wenn ich mir überlege, was kosten (aufwand) von mehreren "knoten" 
und von cat5 kabeln sind, die sich ja so schön verlegen lassen in einem 
kabelkanal um die bahn herum...

dachte mir, 8x16 (8x 9555) also 128 i/o´s sollten genügen.

ein "bus", eine baustelle, ein programm...

von Jürgen D. (poster)


Lesenswert?

Für ein 485Bus reichen einfache zwei verdrillte Drähte da braucht man 
kein Netzwerkkabel. An deinem Leitrechner brauchst du einfach eine 
normale Rs232 Schnittstelle mit externen Wandler auf 485. Da gibt es 
auch einfache die die Sende/Empfangsumschaltung selber machen. Als 
Knoten dann einfache MC z.b. Pic oder Atmel mit genügend IOs oder halt 
deine 9555 an den Controller. Da dann ein einfaches Protokoll mit 
adresse drauf.

von Stefan B. (stefan_ddorf)


Lesenswert?

hmmm, ok!

"dann einfache MC z.b. Pic oder Atmel mit genügend IOs"...

genau das wollte ich ja "vermeiden", zusätzliche MC zu verwenden, die 
geflasht/addressiert werden müssen.

von Jürgen D. (poster)


Lesenswert?

Alle Knoten bekommen das gleiche Programm. Die Busadresse steht dann 
genau wie bei den I2C Steinen an ein paar Inputs an, Drahtbrücken, 
Jumper oder Mäuseklavier ist da egal.

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

ok.

nochmal, also in diese richtung brauche ich gar nicht weiter zu denken, 
oder wie?

kann das so gar nicht funktionieren ?

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

Stelle ich mir das zu einfach vor ?!?

Habe die "Rückmeldeleitungen" vertauscht, zu "weiche5"...

so müsste es doch gehen, hmmmm...

reichen dem 9555 "1V" aus, um ein "high" zu erkennen ?

und ab wann schaltet der uln2803 ?

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

Also, so wie ich das lese in den Datenblättern ist es so:

9555: Input : 0,7V(Min), 5,5V(Max)
      Output: bei Vdd 4.75V --> 4.0V

und beim 2830 versteh ich das nicht so ganz... (siehe anhang)

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

Ich hoffe mir hilft nochmal jemand, so würde ich es versuchen.

Bitte um kurzes "Kommentar"!

Danke an Alle ;)

von Tim (Gast)


Lesenswert?

Also nur mal zum verständniss....
Du klemmst 12V über eine Spule und einen geschlossenen öffner
per 220 Ohm an ein IC der 5V Versorgung hat.
Macht also 31ma durch die Schutzdioden die 0,5mA vertragen.
Macht aber nix, da der ULN dann einschaltet und die Spannung
Zusammenbricht. Daraufhin Schaltet der ULN wieder aus....

Was noch mal wolltest du bauen? Einen KW-Sender?
Wenn du unbedingt eine Rückmeldung brauchst dann
nimm dafür 2 extra Pins mit passendem Spannungsteiler.

Oder Schalte nach Programmstart alle weichen in eine
Grundstellung. Dann weiss die Software doch wie sie stehen
Solange du nicht an den Weichen rumfummelst.

Ansonnten RS485, ein M8, 2 ULNs gesockelt und fertig.
Dann gleich noch ein parr weiter Ausgänge für Licht, etc...
vorsehen und gut is. Ok, Billig wird das nicht.
Aber wenn du schon 64 Weichen hast/haben willst spielt
das Geld dafür doch keine Rolle.

Soll es Funktionieren oder Rauchzeichen geben?

von Stefan B. (stefan_ddorf)


Lesenswert?

Danke für Deine Antwort, deswegen habe ich hier gefragt!

Das Prinzip der Schaltung beibehalten kann man "um´s verrecken nicht" 
oder wie?

Also "gesunde", andere Widerstände nehmen (Werte) ?

Was ist ein "M8" ?

Danke Dir/Euch!

von Tim (Gast)


Lesenswert?

>Das Prinzip der Schaltung beibehalten kann man "um´s verrecken nicht"
>oder wie?

Geh doch mal in gedanken durch was die schaltung macht wenn du
das ding einschaltest.

> Also "gesunde", andere Widerstände nehmen (Werte) ?

Was Passiert in deiner Schaltung wenn der PCA nicht das währe?

Wenn du das nicht verstehst dann fang erst gar nicht
mit dem rest an. Du wirst scheitern.

>Was ist ein "M8" ?

Ein ATmega8 (µC von Atmel).

von Stefan B. (stefan_ddorf)


Lesenswert?

also mit meinem leider "beschränkten" Wissen über Elektrotechnik würde 
ich die Schaltung mit Worten so beschreiben:

Ausgehend davon, dass der Weichenantrieb zwei Stellungen hat, ist somit 
immer einer der beiden "Spulenschutzschalter" geöffnet.

Wenn nun die Weiche auf "links" steht, ist S2 geöffnet, S1 geschlossen.
Es fließt strom über Spule, S1, R(220) zu IC1 0.0.

Meiner "Hoffnung" nach, ist U2´(rechts) "stark" genug um bei Abfrage von 
IC1 an Pin 0.0 ein "high" auszugeben, aber zu "schwach" um IC2 IN1 zu 
schalten.

IC2 Pin 0.1 ist "frei", also bei Abfrage "low".

Wenn jetzt der "Schaltbefehl" von IC1, Pin 0.1 auf "high" zu setzen 
kommt, (500ms müssten ja eigentlich als Impuls reichen) sollten die 
+/-4V über R47 ausreichen, um IN2 von IC2 zu schalten. Jetzt Schaltet 
die Weiche und S1 öffnet, S2 schließt,ab jetzt liegt ein "high" auf IC1 
0.1, auf 0.0 "low".

Denke ich so falsch? Oder sind einfach die Widerstände total daneben ?

Ich meine es kann schon schein, dass ich mir das einfach zu "einfach" 
vorstelle, ich weis es halt nicht besser.

von Nase (Gast)


Lesenswert?

Macht es wirklich Sinn sich wegen 3€ pro 8 Weichen sich da so einen Kopf 
zu machen? einfach zwei IN und zwei OUT pro Weiche und alles ist gut und 
viel problemloser.

von Stefan B. (stefan_ddorf)


Lesenswert?

Wie müsste ich es dann machen ?

Auch mit "Vorwiderständen", oder ?

von Nase (Gast)


Lesenswert?

Vielleicht einen relativ hochohmigen Spannungsteiler so das etwa 3-4V am 
Input abfallen und da noch zusätslich eine Z Diode oder besser 
Suppressordiode zum Schutz gegen Überspannung dran

von Stefan B. (stefan_ddorf)


Lesenswert?

"Vielleicht einen relativ hochohmigen Spannungsteiler so das etwa 3-4V 
am
Input abfallen"

hmmm, was ist ein "spannungsteiler" ?

von Tim (Gast)


Lesenswert?

O, du hast die überkreuzt, aber das mit

>Meiner "Hoffnung" nach, ist U2´(rechts) "stark" genug um bei Abfrage von
>IC1 an Pin 0.0 ein "high" auszugeben, aber zu "schwach" um IC2 IN1 zu
>schalten.

tut nicht.
Laut datenblatt brauch der uln gerade mal 500µA zum duchzuschalten.
Und die Funktion ist linear. Also kleine Spannung am eingang ->
kleiner Strom am Ausgang und nicht 0.
Also ist einer der ULN Kanäle immer "EIN",
sonst kann der PCA nämlich keine "1" lesen.
Außerdem schaltest du 12V auf einen 5V IC.
Das mögen die gar nicht. Und beim schalten
muss der PCA auch noch gegen diesen Strom
ankämpfen.... da wird er verlieren.

Die Grundidee mag funktionieren, ist aber kaum vernünftig
umzusetzen.

Nenne mir doch mal einen Grund warum dein PC die
Weichenstellung zurücklesen muss.
Und: kannst du den I2C Bus an dem PC vernünftig ansprechen?

>Wie müsste ich es dann machen ?

Jeep.

>Auch mit "Vorwiderständen", oder ?

Spannungsteiler heist das Zauberwort:
12V - 6K8 - + - IC
            ' - 4K7 GND

Eine Diode nach +5V + 100nF währen dann auch noch zu empfehlen.

von Stefan B. (stefan_ddorf)


Lesenswert?

ok, danke Tim! Ich war mir noch so sicher, dass das gehen muss.

Da noch nix gekauft, gebaut zu ende geplant ist--> gibt es eine Lösung,

diesen Weg doch zu gehen, aber anstatt dem ULN halt was "Anderes" zu 
nehmen ?

Z.B. ein einfachen Transistor?

Im Prinzip hast Du/Ihr ja Recht, wieso überhaupt eine "Rückmeldung"...

...damit man sich 100% drauf verlassen kann wie die Weiche steht?


Ich habe schon soviele Sachen gebaut, jetzt keine Schaltungen, aber im

Grunde finde ich es halt sehr Wichtig, einfach zu bauen. Es gibt da ein

schönen Spruch: "Die genialität einer Konstruktion liegt in ihrer

Einfachheit-Kompliziert bauen kann jeder"

Hättest Du/Ihr mir keine Idee parat, welche Bauteile hinter den 9555 
müssen, damit das so funktioniert ?

von holger (Gast)


Lesenswert?

>Es gibt da ein schönen Spruch:
>"Die genialität einer Konstruktion liegt in ihrer
>Einfachheit-Kompliziert bauen kann jeder"

Und wieso machst du es dann genau umgekehrt?

>Hättest Du/Ihr mir keine Idee parat, welche Bauteile hinter den 9555
>müssen, damit das so funktioniert ?

Mit deiner Beschaltung? Vergiss es.

von Nase (Gast)


Lesenswert?

Schau mal in den Schaltplan bei diesem Projekt:
http://www.digital-bahn.de/bau_rm/weich88-8.htm
Da werden sogar drei Ausgänge des ULN parallel geschaltet wegen dem 
Spulenstrom.
Die Rückmeldung wird über Optokopler gemacht. Ist bestimmt auch die 
bessere Lösung. So wie gezeigt müßtes du die dann auch an dein I2C Chip 
anschliessen.

von Tim (Gast)


Lesenswert?

>Z.B. ein einfachen Transistor?

Rate mal was in dem ULN drin ist....

>Hättest Du/Ihr mir keine Idee parat, welche Bauteile hinter den 9555
>müssen, damit das so funktioniert ?

2 ULN in Sockeln(!) da immer 2 Kanäle Parallel.
Und einige Widerstände.

Eigentlich hast du schon alles, du musst halt die
Rückkoppel-Widerstände weglassen.

>Es gibt da ein schönen Spruch:
>"Die genialität einer Konstruktion liegt in ihrer
>Einfachheit-Kompliziert bauen kann jeder"

Gut, dafür wird halt die Software aufwendiger.

Ich hätte halt je 2 Weichen eine Platine gemacht mit
RS485 in SMD. Dann kann die Weiche auch mal weiter
weg sein und ich müsste nicht soviele kabel ziehen.

Mal als Anregung:
Modellbahn Servodecoder für Weichen mit Rückmeldung

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

Ich denke, der ULN ist das problem.

Also, angenommen wir "pfeiffen" auf die "echte Rückmeldung", wie wäre es 
mit diesm "dingens" :

UDN 2981

Direkt dran und das war´s dann, oder ?

von Frank K. (fchk)


Lesenswert?

Du könntest statt I2C einfach Schieberegister verwenden.

Kennst Du Schieberegister?
Du taktest Deine Daten seriell rein, sagst dann mit einem Impuls "jetzt 
in die Ausgangsregister laden", und dann werden die Daten an den 
Ausgängen parallel ausgegeben.

Funktioniert auch umgekehrt: Daten mit einem Impuls parallel in die 
Schieberegister hineinladen und dann seriell raustakten.

Schieberegister sind kaskadierbar, d.h. wenn eines nicht reicht, dann 
kannst Du im Prinzip beliebig viele hintereinander schalten.

Für seriell->parallel gibts zB den 4094. Ist ein altes CMOS-IC, darfst 
Du mit 3-15V betreiben, wird seit über 30 Jahren produziert, und ist 
billig.
Alternativ 74HC4094 oder 74HC595, aber dann nur bis Vcc=6V.

Parallel->seriell: 4021 aus der alten 4000'er CMOS-Serie, oder 74HC597 
oder 74HC165 aus der 74HC-Serie.

Zum Schalten der Weichen nimmst Du einfach eine Transistorstufe aus 
BC518/BC818 plus Basiswiderstand plus 1N4148 als Freilaufdiode.

Das sind alles Standardteile, die Du überall billig bekommen solltest 
und die von zig Herstellern gefertigt werden. Das ist die Gelegenheit, 
Dich mit Grundschaltungen des Transistors und der Digitaltechnik zu 
beschäftigen. Da lernst Du dann auch noch was dabei, was Du später immer 
wieder einsetzen kannst.

Vergiss nicht die obligatorischen 100n Abblockkondensatoren und achte 
darauf, dass Du keine Eingänge in der Luft hängen lässt. Im Zweifel 
immer mit 10k gegen Ground oder Vcc. Das gilt auch für die Tasterabfrage 
mit den parallel-seriell Schieberegistern. Auch wenn der Taster offen 
ist, darf der Pin nicht in der Luft hängen, d.h. Pull-Up oder Pull-Down. 
Widerstandsarrays mit 8 Widerständen in einem Gehäuse erleichtern Dir 
hier die Arbeit.

Und: Die ICs können an ihren Eingängen nur Spannungen bis zu ihrer 
Versorgungsspannung ab. Wenn Du also 12V-Signale abfragen willst, musst 
Du die entweder auf eine niedrigere Spannung bringen oder das IC mit 12V 
betreiben (was ja bei den 4000'er Logikchips geht).

Das nur mal so als Anregung wie es auch ohne Spezialbausteine geht. Viel 
Spaß beim Lernen der E-Technik Grundlagen.

fchk

von Stefan B. (stefan_ddorf)


Angehängte Dateien:

Lesenswert?

ok. leider habe ich den Beitrag von Dir Frank zu spät gelesen, aber 
nochmal nur der "Vollständigkeit" halber, so muss es gehen, oder ?

Keine Rückmeldung, alle Pin´s als Ausgang...


Ich kann an der Stelle nur sagen, vielen, vielen Dank Euch allen!

von Jürgen D. (poster)


Lesenswert?

Und wenn du jetzt die Spulen noch mit 12V speist und nicht mit GND würde 
das wohl sogar so klappen.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

wie mit GND speisen...

Ich hab es jetzt genau so gemacht wie beim Beispiel, nur sind in dem

Schaltplan die Pin´s vertauscht...und damit es ein "Stromkreis" ist, 
kann´s

ja nur so gehen, oder nicht!

von Jürgen D. (poster)


Lesenswert?

Dann schau dir nochmal den ganzen Schaltplan an.
Welche Spannungen/Signale gehen da wo an den Weichenstecker?
Wie ist dieser Weichenstecker mit der wiche verbunden /da gibt es ein 
Bild drüber) ?
Hast du dir schon mal das Innenschaltbild eines ULN angeschaut?
Hast du die Funktion des dioden Pins verstanden?

Denk mal drüber nach :)

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

also ich denk dass passt so…

von Stefan (Gast)


Lesenswert?

nix, hast recht… da kommen ja wirklich +18 an die "weichenstecker"...


oh, mann… Danke dir !

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

So, habe wiedermal etwas Zeit gefunden, die Schaltung "hoffentlich 
richtig"

fertig zu zeichen.

Wer kann mir grünes Licht geben ?

Danke Euch ! ;)

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

...und das kommt an´s andere ende des mit D-Sub-Steckern bestückte Cat5

Kabel.

von holger (Gast)


Lesenswert?

>Wer kann mir grünes Licht geben ?

Ohne Abblockkondensator wird dir der PCA9555 dauernd abschmieren.
Die Pins A0..2 müssen an GND oder 5V gelegt werden. Offen
rumfliegen sollten die nicht. Also bau dir ein paar Widerstände
dran mit denen du A0..2 wahlweise an GND oder 5V legen kannst.

von Stefan (Gast)


Lesenswert?

ok, danke. Abblockkondenstaor. hmmm, wo muss der hin ?

von holger (Gast)


Lesenswert?

>ok, danke. Abblockkondenstaor. hmmm, wo muss der hin ?

Rate mal. Du solltest auch dringend getrennte Masseleitungen
für den Digitalteil und die Weichen nehmen. Den Kram da mit so einem
hochohmigen Bus wie I2C zu machen wird sicher noch eine Menge
"Spass" bedeuten. Gerade wenn du von Elektronik so gut wie
keine Ahnung hast.

von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Stefan!

Vor einiger Zeit hatte ich auch schon mal einen Weichendecoder 
aufgebaut, anbei ein paar Bilder dazu. Schau mal ob Du davon etwas 
verwenden kannst. Insgesamt können 7 Weichen angesteuert werden (8x 
wären sicherlich auch möglich). Zusätzlich werden auch noch die 
„Schaltzustände“ der Weichen ausgegeben, so dann man gleich noch Ampeln 
anschließen kann. Wenn Interesse besteht lade ich auch gerne alle Daten 
dazu hoch...

LG Jens

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Ha, sehr gut!

Danke Dir! Sieht super aus! Jetzt steinigt mich wieder, aber Du 
verwendest

doch auch I2C, oder? (SDA/SCL auf der Kabelbeschriftung)?

Gibt´s da "Erfahrungswerte"?

Das Problem ist halt, ich habe kein so EEprom-Brenner und scheue mich so

davor das "anzufangen"....

Also wenn´s doch nur irgendwie "so" gehen würde, wäre dass absolut

ausreichend für mich.

Ich denke, man kann sehen wie das später werden sollte, die "Module" 
sollen

einfach aneinader gesteckt werden.

Nachdem die Bedenken aufkamen, dass I2C zu "hochohmig/anfällig" wäre für 
so

was, habe ich noch eine "übersichtliche" Lösung mit "Buffern" gefunden.

82B715 heisst das Teil und würde dann am Computerausgang und vor dem 
ersten Modul eingesetzt

werden, würde das gehen ?

P.S. Oder mit Deiner Schaltung weitermachen… ;)

von Peter B. (pbuenger)


Lesenswert?

Wenn Du die Module anreihen willst, müßten SV2 und SV3 aber gleich 
belegt sein. Du hast sie aber gespiegelt angeschlossen.

Peter

von Stefan (Gast)


Lesenswert?

achso, wegen der Pin-Belegung. Ja, ist mir noch gar nicht aufgefallen...

Die "sollte" eigentlich auch 1:1 sein...


---> Danke !    (und wieder ein kleines Stück näher...)

von Stefan (Gast)


Lesenswert?

...könnte man es denn so "absegnen", von der "Verdrahtung" her ?

passt das mit dem "Abblockkondensator", "Adressen-Dip" ?

von Jens (Gast)


Lesenswert?

> Jetzt steinigt mich wieder, aber Du verwendest doch auch I2C, oder?
> (SDA/SCL auf der Kabelbeschriftung)? Gibt´s da "Erfahrungswerte"?

Es kommt mehr oder weniger darauf an wie lang die Datenleitungen nachher 
insgesamt sind. Das längste was ich bis jetzt verwendet habe waren gut 
5m und damit hatte ich noch nie Probleme. Wenn ich heute noch einmal so 
etwas aufbauen würde, würde ich sicherlich den RS485 Bus verwenden (läst 
sich „einfacher“ mit einem FT232R Chip mit dem PC verbinden).

> Das Problem ist halt, ich habe kein so EEprom-Brenner und scheue
> mich so davor das "anzufangen".

An Deiner Stelle würde ich mal versuchen über meinen Schatten zu 
springen und mit etwas ganz einfachen anfangen. Z.B.: 
http://www.pcfilter.de/AVR-Ecke/Page4.html Grade beim Modellbau lassen 
sich so schöne kleine Schaltungen mit den Mµ’s realisieren, da kommt man 
eigentlich gar nicht dran vorbei. Und beim Weichendecoder hättest Du den 
Vorteil dass Du Dich nicht „aktiv“ um das Datenversenden kümmern musst. 
Mit Mµ reicht es einmal einen Befehl an den Weichendecoder zu senden und 
dann kümmert sich der Mµ automatisch um die „Schaltzeit“ der Weiche. Bei 
Deinem Vorhaben musst Du einen „Ein-Befehl“ und nach einer kleinen Pause 
einen „Aus-Befehl“ versenden, das macht die Programmierung der PC 
Software auch nicht grade einfacher (zumal Du ja diese 
Befehlsreihenfolge für jede einzelne Weiche programmieren musst).

> Nachdem die Bedenken aufkamen, dass I2C zu "hochohmig/anfällig"
> wäre für so was, habe ich noch eine "übersichtliche" Lösung mit
> "Buffern" gefunden.

Ist meiner Meinung nach nicht unbedingt notwendig, wenn Du es mit der 
Kabellänge nicht übertreibst.

PS: So viele ULN2803 brauchst Du gar nicht verbauen. Die Weiche zieht eh 
nur für ein paar Sekunden an, da reichen die 500mA pro Kanal ganz locker 
aus (die weiche ist ja weiter nichts als ein Relais).

von Stefan (Gast)


Lesenswert?

Ok, danke Jens.

Also die grob geplante Läge vom "Bus" ist ca. 50cm.
Deiner Angabe zufolge --> machbar.

Irgendwie leuchtet es mir ja schon ein, eine gewisse "Logik" vom PC 
auszulagern und mit MC´s eine Art "Übersetzung/Umsetzung" machen zu 
lassen.

Aber was mich so wahnsinnig dran stört, ist die Vorstellung da ein PC 
laufen zu haben, der ansich fast die ganze Betriebszeit "nix zu tun hat" 
und ob´s nicht doch gewisse Vorteile hat, das gesamte "Programm" an 
einer Stelle zu haben...

Was die Software angeht und die Programmierung später, stelle ich mir 
das  (wie von mir gewohnt) wahrscheinlich mal wieder zu einfach vor, 
aber irgendwie wird das schon gehen, lesen, probieren, sich ärgern, sich 
noch mehr ärgern und vielleicht sogar eines Tages mal dass sich per 
klick eine weiche umschaltet!

Ich müsste jetzt vielleicht ein bissel ausholen, warum überhaupt das 
ganze "Theater" hier...aber dass sparen wir uns jetzt erst mal! ;)

Und nochmal zu den ULN´s: Komme ich also mit einem "ULN-Kanal" pro 
"9555-kanal" aus ?

von Jürgen D. (poster)


Lesenswert?

Am bestem misst du da mal deine Weichen durch was die Antriebe da so 
ziehen. Wir habe ja noch nicht über dein System gesprochen. So eine 
Lehmann Gartenbahnweiche zieht bestimmt mehr Strom als eine Spur Z 
Weiche.

von Jens (Gast)


Lesenswert?

> Also die grob geplante Läge vom "Bus" ist ca. 50cm. Deiner
> Angabe zufolge --> machbar.

Also das wäre ja absolute Spitze, so eine geringe Kabellänge habe ich 
noch nie realisieren können. ;-) Bedenke aber, auch das Kabel vom PC zu 
dem Weichendecoder zählt mit, wenn der PC ein Zimmer weiter steht kommen 
schon mal locker 5m Kabellänge zusammen... Wie willst Du eigentlich den 
I2C-Bus am PC anbinden?

> Aber was mich so wahnsinnig dran stört, ist die Vorstellung da ein
> PC laufen zu haben, der ansich fast die ganze Betriebszeit "nix zu
> tun hat"..............

Hm, dann stell doch da keinen PC hin (ich weis, Du willst nicht mit Mµ’s 
arbeiten ;-)).

> ...............und ob´s nicht doch gewisse Vorteile hat, das
> gesamte "Programm" an einer Stelle zu haben.

Der Knackpunkt ist die Datenübertragung und wie viele Daten über den 
I2C-Bus gesendet werden. Läuft nur ein einziges Progi auf dem PC, dann 
muss das Progi natürlich auch das gesamte Timing der Anlage 
„verarbeiten“ können. Es nutzt Dir ja z.B. nichts wenn von einem 
Reedkontakt die Meldung zum umstellen der Weiche kommt und das Progi 
noch mit ganz anderen Aufgaben beschäftigt ist und so die Meldung 
schlicht weck verschlafen wird. Daher vertrete ich die Meinung immer 
auslagern was geht, desto mehr „Freiraum“ hat das PC Progi um auf 
Zeitkritische Aufgeben zu reagieren...

> Was die Software angeht und die Programmierung später, stelle
> ich mir das  (wie von mir gewohnt) wahrscheinlich mal wieder
> zu einfach vor,...........

Schau Dir mal XProfan an, damit kommt man ziemlich schnell ans Ziel.
http://www.profan.de/

> Und nochmal zu den ULN´s: Komme ich also mit einem "ULN-Kanal"
> pro "9555-kanal" aus ?

Wie Jürgen schon sagte, vom Messen zum Wissen...

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Danke Dir/Euch für die Hilfe! ;))


So, also das "Eagle" ist ja auch so eine Sache... ;)


Und zu warum PC--> ...das ist ja die lange Vorgeschichte.

Nur, öfter mal was neues! Wie im wirklichen Leben!

Jetzt hab ich mich da jede freie Minute reingehängt, so billig wie nur

irgendwie möglich das "umzusetzen", jetzt wird´s nicht mehr "gewollt"..

Ne, die Modellbahn (Märklin H0 übrigens) ist von meinem Vater. Es wird 
momentan Erweitert und ich wollte ihm eigentlich eine Überraschung 
machen und eine "Weichensteuerung per Touchscreen" vorstellen.
Besagter PC ist ein 15" Industrie Panel-PC (PentiumII 266MHz).
Trödelmarkt 20€. Der hat eine PC/104 Schnittstelle oder halt so ein 
Multi-I/O, wesshalb ich halt auf I2C gekommen bin, da das "ohne 
Mehrkosten verfügbar" ist.
Aber jetzt will er das gar nicht... gut, gell !

Naja, aber ich glaube ich versuche trotzdem mal, ob das was "geworden 
wäre" !


Kann man die Schaltung so lassen ? ;)

von Nase (Gast)


Lesenswert?

Denn 100nF Kondensator setzt man möglichs nahe an die Versorgungspins 
des ICs. Wen möglich so das der Strom erst durchs Kondensatorpad und 
dann zum IC Pin fliest.

von Stefan (Gast)


Lesenswert?

reicht das ??

von StefanB (Gast)


Angehängte Dateien:

Lesenswert?

so näher wäre schade, passt grad so gut dahin!

von StefanB (Gast)


Angehängte Dateien:

Lesenswert?

...ich weis, so war´s gemeint !

von Nase (Gast)


Lesenswert?

Die Verbindung über BR4 ist da aber noch arg lang. Zu Zeiten der 
bedrahteten IC, irgendwann vor der Erfindung des Feuers :), gab es extra 
Fasungen die einen Kondensator direkt zwischen den Versorgungspins 
hatten.
Bei SMD und nur einseitigen Leiterbahnen geht so was leider nicht mehr 
so gut.

von StefanB (Gast)


Lesenswert?

ok. Auch wenn die Brücke gar nicht auf der Lötseite ist ?

Ich meine, möglich dass ich das nicht "Ordnungsgemäß" gemacht habe mit 
dem

Eagle. Ich hab mir halt gedacht, ich will nur auf einer Seite löten 
müssen

und alles was "durchgesteckt" wird, ist ja von den Pin´s her egal, kommt 
von

der anderen Seite rein... Dann ist ja spez. bei BR4 eigentlich kein 
Problem,

oder ? Ne, hab gerade noch was anderes bemerkt, im Eagle war die .lbr 
für

die ULN als SO18L, bei Reichelt gibt´s aber nur SOP18, aheb mal eine

"Referenz-SOP18" drüber gehalten, aber sieht für mich noch "gut" aus..

und die Ecken, die an den Pin´s so nahe beinaner sind, würde ich in

Photoshop noch rund machen...

Was sagt ihr, kann das so gehen ?? ;)

von Nase (Gast)


Lesenswert?

Mit der BR4 Bahn meine die die Länge zum Kondensator. Der soll mit 
beiden Enden nahe an den Versorgungspins.
Bei den ULN würde ich lieber ein bedrahteten mit Sockel verwenden. Wenn 
da mal was schief geht und der durchbrennt ist der leichter zu wechseln.

von StefanB (Gast)


Lesenswert?

ok, habe verstanden...

Dann wird´s halt eine etwas lägere Brücke, ist ja Platz auf der anderen 
Seite!

von StefanB (Gast)


Angehängte Dateien:

Lesenswert?

Muss erst noch schauen, wo ich Lötpads finde...

Aber von der Schaltung her ok, oder ?!?

Denke Euch "Profis" ist klar was welcher Pin ist, so wegen 
unbeschriftet...

Es hat sich zwar einiges zum Schaltplan geändert, was aber nur auf 
Seiten der Ausgänge des 9555 und der Ausgänge der ULN "auswirkte"...

von StefanB (Gast)


Angehängte Dateien:

Lesenswert?

Aber jetzt wo ich nochmal drüber nachdenke, die "vorsinnflutliche" 
Lösung mit dem C im Sockel… warum nicht ? Platz ist ja da, sieht halt 
von der anderen Seite doof aus, aber dann ist´s wenigstens "korrekt" ;)

von StefanB (Gast)


Angehängte Dateien:

Lesenswert?

denke das dass noch im Rahmen ist, das andere hat ja unmöglich 
ausgesehen... !

Under ein Interrupt brauche ich ja höchstwahrscheinlich nicht, das ja 
alle

I/O´s als "Ausgang" genutzt werden, von daher an GND, gell ?

von Nase (Gast)


Lesenswert?

Ich kenne dein IC nicht, glaube aber eher das das ein Ausgang ist. Der 
macht einen Kurzschluß wenn du den auf GND legst.
Schau da nochmal in das Datenblatt

von StefanB (Gast)


Angehängte Dateien:

Lesenswert?

Interrupt-Output (Open-drain)...

von Nase (Gast)


Lesenswert?

OK damacht er wenigsten keinen Kurzschluß als open drain.
Las den einfach unbeschaltet

von StefanB (Gast)


Lesenswert?

ok, und so wie im Blockschaltbild, also mit einem 3.3K an GND ?

von StefanB (Gast)


Lesenswert?

quatsch… vergiss was ich grad "von mir gegeben hab"…

ich lass ihn "offen"…

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

So, bitte nochmal...

Kann das so "geätzt" werden ?

Besten Dank!

von Nase (Gast)


Lesenswert?

In einem anderen Tread hat die Frage on das Layout so OK sei bei einer 
Schaltung mit drei Bauteilen über 50 Beiträge gedauert.
Jetzt rechne mal hoch wie lange das bei deiner Schaltung dauern würde, 
und der Anstieg ist unter Garantie nicht linear.
Bis wir da fertig sind haben deine Enkel die Anlage auf Transrapid 
umgebaut. :)

Ich würde alle Leiterbahnen dicker machen, Die ULNs in DLL Version 
Sockeln und die Vias weiter von den Bauteilen entfernen.

Das wird deine erste Leiterkarte, die muß nicht perfekt werden. Mach die 
einfach so und probiere sie aus, Erfahrung sind da alles. Da läst sich 
notfalls was mit Drähten ändern.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

so, weiter geht´s…

halte Euch auf dem Laufenden!

(Bin ich mal gespannt, ob dass was wird!!!)

Grüße
Stefan

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.