Hallo,
ich wollte mir ein Kehrschleifenmodul bauen, was ab einem gewissem Strom
(einstellbar und abgelegt im EEPROM) umschaltet.
Dazu habe ich die ACS712-05 genutzt.
Nach dem zusammenlöten der Platine habe ich am Ausgangspin VCC/2. Passt.
Die Software berechnet einmal beim ERSTEN Start diesen Wert (weil VCC
kann ja bei jedem Gerät etwas anders sein), legt es ins EEPROM ab. Dann
wird die Hall-Spannung gemessen und von dem Offsetwert aus dem EEPROM
vom ersten Start subrahiert. Ist nichts los ist das Ergebnis ~ 0.
Würde jetzt ein Fahrzeug in den Kehrschleifenabschnitt fahren, welche
falsch gepolt ist, steigt der Strom kurz an bis über die Schwelle, das
Modul schaltet die Relais um und es ergibt sich nur noch der Strom der
verbraucht wird < Schwelle).
Jetzt wird noch immer geguckt, ob das Relais eingeschaltet ist (dann
wird die Spannung je Strom kleiner) oder ausgeschaltet ist (dann steigt
sie an). Davon abhängig wir dann alles berechnet.
Soweit die Theorie.
In der Praxis habe ich aber immer VCC/2 am Vout Pin vom ACS?! Ich habe
eine Lok mit Verdampfer und Beleuchtung im Stand auf das
Kehrschleifengleis gestellt, die verbraucht dann ca. 0,8A im Stand wenn
Verdampfer + Beleuchtung an ist.
Jetzt sollten ja ca. 80mV mehr bzw. weniger am Ausgangspin anliegen (je
nach Stellung des Relais, da die digitale Gleisspannung (~20khz Signal)
permanent die Polarität wechselt).
Ich bin total überfragt, was das jetzt ist. Entweder sind die Chips
wirklich defekt, oder die können das DCC Signal nicht vertragen (im
Datenblatt steht aber eine Bandbreite von 80kHz). Würde mich über Hilfe
freuen!
Mit einem simplen Widerstand ist es nicht getan, da das Signal ja
permanent wechselt und man 50µS auf der einen Seite Masse hat und 50µS
24V.
Kennt jmd. noch einen (nach Möglichkeit) Pinkombatiblen Ersatzchip?
Teste den Sensor doch mal unter kontrollierten Bedingungen mit
Stromquelle statt mit Verdampfer :-P
Die Sensoren sind normalerweise recht robust, man sollte aber keine
anderen Magnetfelder in der Nähe haben und am besten den Sensor
magnetisch schirmen. Was hast du für einen Filterkondensator an Pin 6?
Foto vom Aufbau wäre auch nicht schlecht.
Matthias S. schrieb:> Teste den Sensor doch mal unter kontrollierten Bedingungen mit> Stromquelle statt mit Verdampfer :-P> Die Sensoren sind normalerweise recht robust, man sollte aber keine> anderen Magnetfelder in der Nähe haben und am besten den Sensor> magnetisch schirmen. Was hast du für einen Filterkondensator an Pin 6?> Foto vom Aufbau wäre auch nicht schlecht.
Ich habe das Teil einfach mal so aufgebaut wie im Datenblatt.
Was ich mich allerdings jetzt frage, liegt das falsche Ergebnis vll.
doch an der Rechteckspannung des DCC Signals?
Wie verhält sich der Sensor denn in dem Moment wo durch ihn Masse fließt
und wie verhält er sich in dem Moment wo durch ihn die 24V fließen. Wenn
er dann die Richtung dabei ändert (+24V -> Signal wird größer, GND ->
Signal wird kleiner), dann könnte ich mir vorstellen, dass da im Mittel
natürlich wieder Vcc/2 rauskommt.
Edit: Das mit dem Verdampfer + Licht der Lok sehe ich als egal an, da
dort ja auch nur ein Heizwiderstand drin sitzt + ein kleiner Lüfter der
aber vernachlässigbar ist. Die Lampen sind Glühlampen.
An meiner Zentrale sehe ich dort 0,8A Stromverbrauch, daher ist das eine
gute Referenz.
Marius D. schrieb:> wo durch ihn Masse fließt> und wie verhält er sich in dem Moment wo durch ihn die 24V fließen
Masse fliesst nicht und 24V auch nicht. Der Sensor misst keine Spannung,
sondern den Strom. Deswegen doch der Vorschlag, erstmal mit Strom zu
testen. Nimm dir also meinetwegen die 24V und klemme einen bekannten
Verbraucher, z.B. eine Glühlampe für 24V an.
DCC wird zwar aufmoduliert, sollte aber für den absoluten Strom keine
Rolle spielen. Viel wichtiger ist der Aufbau des Sensors. Die
Rückleitung z.B. muss weit entfernt vom Chip sein und nicht etwa unter
ihm durch, sonst kompensieren sich die Magnetfelder.
Matthias S. schrieb:> Marius D. schrieb:>> wo durch ihn Masse fließt>> und wie verhält er sich in dem Moment wo durch ihn die 24V fließen>> Masse fliesst nicht und 24V auch nicht. Der Sensor misst keine Spannung,> sondern den Strom. Deswegen doch der Vorschlag, erstmal mit Strom zu> testen. Nimm dir also meinetwegen die 24V und klemme einen bekannten> Verbraucher, z.B. eine Glühlampe für 24V an.> DCC wird zwar aufmoduliert, sollte aber für den absoluten Strom keine> Rolle spielen. Viel wichtiger ist der Aufbau des Sensors. Die> Rückleitung z.B. muss weit entfernt vom Chip sein und nicht etwa unter> ihm durch, sonst kompensieren sich die Magnetfelder.
Ja mit Gnd und 24V meinte ich eher im übertragenem Sinn.
DCC ist keine Mischspannung, das ist nur ein Rechtecksignal. Aufgebaut
aus einer H-Brücke die dann linke Seite/rechte Seite wechselt in ca.
50µS Takt.
Unter dem Chip geht nur VCC her. Er sitzt aber direkt unter dem Relais,
allerdings, so dachte ich mir das, schaltet das ja nur sehr selten und
dann nur einmal. in dem Moment ist eine Pause der Messung von 250ms
eingeplant, bis sich das ggf. wieder stabilisiert.
Wie meinst du das mit der Rückleitung? Unten ist der DCC-Strom und nach
oben weg geht die Sensorleitung zum µC.
Matthias S. schrieb:> Marius D. schrieb:>> wo durch ihn Masse fließt>> und wie verhält er sich in dem Moment wo durch ihn die 24V fließen>> Masse fliesst nicht und 24V auch nicht. Der Sensor misst keine Spannung,> sondern den Strom. Deswegen doch der Vorschlag, erstmal mit Strom zu> testen. Nimm dir also meinetwegen die 24V und klemme einen bekannten> Verbraucher, z.B. eine Glühlampe für 24V an.> DCC wird zwar aufmoduliert, sollte aber für den absoluten Strom keine> Rolle spielen. Viel wichtiger ist der Aufbau des Sensors. Die> Rückleitung z.B. muss weit entfernt vom Chip sein und nicht etwa unter> ihm durch, sonst kompensieren sich die Magnetfelder.
Ich habe es durchgetestet, diesmal analog. Analoge Spannung auf mein
Kehrschleifenmodul gegeben. Eine Lok aufs Gleis gestellt und einen Stein
davor verkeilt.
Mein analoger Trafo kann nur 1A, deswegen war das gut zu sehen, dass die
Chips funktionieren. Die Lok fährt los, die Spannung am ACS sinkt, bei
1.2A sackt die Spannung ein bis auf 7V, für die Lok zu wenig aber die
Sensorspannung liegt wieder bei Vcc/2.
Es liegt also def. an dem DCC-Strom. Das muss sich kompensieren....
Wie messe ich den denn jetzt nun?!
Zupermax schrieb:> Ist DDC nicht eine Rechteck Wechselspannung?> Schau den Output vom ACS712 mal mit dem KO an...
Ich kann es mir mal angucken, ich denke aber es wird ebenfalls ein
Rechtecksignal am Ausgang ausgegeben, könnte ich mir vorstellen.
Marius D. schrieb:> Mein analoger Trafo kann nur 1A, deswegen war das gut zu sehen, dass die> Chips funktionieren. Die Lok fährt los, die Spannung am ACS sinkt, bei> 1.2A sackt die Spannung ein bis auf 7V, für die Lok zu wenig aber die> Sensorspannung liegt wieder bei Vcc/2.
Das liest sich für mich recht wirr. Ich hoffe, Du hast eine stabile und
saubere 5V-Gleichspannung als Versorgung des ACS712. Sein Arbeitsbereich
geht von 4,5..5,5 Volt, wobei die Versorgungsspannung Auswirkungen auf
die Steilheit 185mV/A hat.
Zu DCC finde ich unter http://www.opendcc.de/info/dcc/dcc.html
"Gleissignal: Rechtecksignal, mind. 7V Hub, max. 22V Hub.
Nominalspannung bei H0 soll 13,5V sein (damit sich nach den
Gleichrichterdioden 12V für den Motor ergeben)."
Wenn ich mir das Datendiagramm dort ansehe, liegt die Frequenz der Daten
kurz unter 10kHz (116µs).
Demzufolge würde ich auch am Ausgang des Stromsensors das DCC-Signal
erwarten, womit Dein Multimeter vermutlich nicht umgehen kann. Irgendwie
ist es dennoch nicht schlüssig, das DCC liegt ja nicht dauerhaft an.
Wie Dir schon anderweitig vorgeschlagen wurde: Den ACS712 plus
Lastwiderstand ans Labornetzgerät und erstmal gucken, ob und wie der
geht.
Marius D. schrieb:> Nach dem zusammenlöten der Platine habe ich am Ausgangspin VCC/2. Passt.> Die Software berechnet einmal beim ERSTEN Start diesen Wert (weil VCC> kann ja bei jedem Gerät etwas anders sein), legt es ins EEPROM ab.
wenn du als Referenz die VCC nimmst, musst du überhaupt nichts
abgleichen. Weil bei 127 (8Bit ADC) die Mitte ist - egal ob es 4,8 oder
5.2 V sind.
Peter II schrieb:> Marius D. schrieb:>> Nach dem zusammenlöten der Platine habe ich am Ausgangspin VCC/2. Passt.>> Die Software berechnet einmal beim ERSTEN Start diesen Wert (weil VCC>> kann ja bei jedem Gerät etwas anders sein), legt es ins EEPROM ab.>> wenn du als Referenz die VCC nimmst, musst du überhaupt nichts> abgleichen. Weil bei 127 (8Bit ADC) die Mitte ist - egal ob es 4,8 oder> 5.2 V sind.
Das verstehe ich jetzt nicht so ganz. Referenz ist VCC das habe ich
auch, ich habe aber 10-Bit beim Tiny. Wie soll ich das dann berechnen?
Marius D. schrieb:> Das verstehe ich jetzt nicht so ganz. Referenz ist VCC das habe ich> auch, ich habe aber 10-Bit beim Tiny. Wie soll ich das dann berechnen?
gar nicht rechnen, bei 10Bit ist die mitte bei 512. Wenn die Referenz
VCC ist, dann kommt bei 0A ein wert von 512 Raus.
Wo hoch die Strom ist, kannst du dann klassich über (ADC-512)* ...
brechnen. Dieser wert ist dann zwar anhängig von VCC aber nicht die
Mitte.
Manfred schrieb:> Marius D. schrieb:>> Mein analoger Trafo kann nur 1A, deswegen war das gut zu sehen, dass die>> Chips funktionieren. Die Lok fährt los, die Spannung am ACS sinkt, bei>> 1.2A sackt die Spannung ein bis auf 7V, für die Lok zu wenig aber die>> Sensorspannung liegt wieder bei Vcc/2.>> Das liest sich für mich recht wirr. Ich hoffe, Du hast eine stabile und> saubere 5V-Gleichspannung als Versorgung des ACS712. Sein Arbeitsbereich> geht von 4,5..5,5 Volt, wobei die Versorgungsspannung Auswirkungen auf> die Steilheit 185mV/A hat.>> Zu DCC finde ich unter http://www.opendcc.de/info/dcc/dcc.html> "Gleissignal: Rechtecksignal, mind. 7V Hub, max. 22V Hub.> Nominalspannung bei H0 soll 13,5V sein (damit sich nach den> Gleichrichterdioden 12V für den Motor ergeben).">> Wenn ich mir das Datendiagramm dort ansehe, liegt die Frequenz der Daten> kurz unter 10kHz (116µs).>> Demzufolge würde ich auch am Ausgang des Stromsensors das DCC-Signal> erwarten, womit Dein Multimeter vermutlich nicht umgehen kann. Irgendwie> ist es dennoch nicht schlüssig, das DCC liegt ja nicht dauerhaft an.>> Wie Dir schon anderweitig vorgeschlagen wurde: Den ACS712 plus> Lastwiderstand ans Labornetzgerät und erstmal gucken, ob und wie der> geht.
Ja, Versorgungsspannung ist stabil 5,05V. Das kann sein das das wirr
ist, ist aber korrekt und funktioniert. Die Chips sind ok und
funktionieren. Habe ich mit Gleichspannung und Lastwiderstand getestet -
das ist ok.
Zu DCC: Ich habe Gartenbahn (24V DCC-Signal). Das DCC Signal wird mit
einer H-Brücke idR erzeugt, also einmal linke Seite durchschalten dann
die Rechte. Damit ergibt sich das Rechtecksignal was auf beiden Schienen
dann immer gegenphasig ist, deswegen ist es auch egal, von welcher man
die Daten ließt. Das Signal an sich hat 116µS bei einer logischen 0 und
58µS bei einer logischen 1, damit hat man dann die ca. 18kHz, ich habe
gerundet 20 kHz gesagt. Ja, das mit dem DCC-Signal am Ausgang des ACS
denke ich auch, das gucke ich mir heute Abend an. Ist aber doof, ich
brauche eine Gleichspannung.
Marius D. schrieb:> Ja, das mit dem DCC-Signal am Ausgang des ACS> denke ich auch, das gucke ich mir heute Abend an. Ist aber doof, ich> brauche eine Gleichspannung.
die Könntest einfach den Strom vor dem ACS712 gleichrichten. Aber
einfach ist es wohl in Software
Wert = abs(512-ADC);
Peter II schrieb:> Marius D. schrieb:>> Das verstehe ich jetzt nicht so ganz. Referenz ist VCC das habe ich>> auch, ich habe aber 10-Bit beim Tiny. Wie soll ich das dann berechnen?>> gar nicht rechnen, bei 10Bit ist die mitte bei 512. Wenn die Referenz> VCC ist, dann kommt bei 0A ein wert von 512 Raus.>> Wo hoch die Strom ist, kannst du dann klassich über (ADC-512)* ...> brechnen. Dieser wert ist dann zwar anhängig von VCC aber nicht die> Mitte.
Ja genau so mache ich das auch. Ich rechne entweder ADC-512 oder
512-ADC, das kommt drauf an, wie das Relais geschaltet ist, denn
entweder sinkt oder steigt die Spannung (theoretisch, praktisch passiert
ja nix).
Die 512 ist zwar die Mitte, messtechnisch hatte ich aber immer Werte um
ca. 504 gesampled, sodass ich diese Variante mit dem EEPROM und
STARTWERT genommen habe. Wenn ich denn mal einen richtig
funktionierenden Part habe, dann kann ich nochmal gucken, ob das
wirklich viel ausmacht.
Marius D. schrieb:> Die 512 ist zwar die Mitte, messtechnisch hatte ich aber immer Werte um> ca. 504 gesampled
was schon etwas merkwürdig ist, bei meine Projekt (schon 2 Jahre her)
ging es recht genau auf.
Peter II schrieb:> Marius D. schrieb:>> Ja, das mit dem DCC-Signal am Ausgang des ACS>> denke ich auch, das gucke ich mir heute Abend an. Ist aber doof, ich>> brauche eine Gleichspannung.>> die Könntest einfach den Strom vor dem ACS712 gleichrichten. Aber> einfach ist es wohl in Software>> Wert = abs(512-ADC);
Habe ich den dann das DCC Signal aufgehoben und den tatsächlichen
Stromverbrauch?
Peter II schrieb:> die Könntest einfach den Strom vor dem ACS712 gleichrichten.
Da am Ausgang des ACS 2,5V liegen und sich diese 'nur' um 185mV/Ampere
verschieben, könnte ich mir sogar einen Gleichrichter am Ausgang
vorstellen. Dumm nur, dass die Frequenz schon in einem Bereich liegt,
den normale Gleichrichterdioden nicht mehr mit machen.
Nach wie vor ist mir unklar, über welchen Zeitraum DCC anliegt - das
sollte doch nur kurzzeitig stören?
> Aber einfach ist es wohl in Software
Wie würdest Du das angehen? Ich könnte mir vorstellen, in einer Schleife
50 Werte zu holen und daraus den Mittelwert zu bilden, wobei das
Vorzeichen (die Stromrichtung) unterdrückt werden müsste.
Peter II schrieb:> Marius D. schrieb:>> Habe ich den dann das DCC Signal aufgehoben und den tatsächlichen>> Stromverbrauch?>> ja
Ich werde es testen und melde mich dann nochmal.
Ich frage mich aber warum die abs Funktion einen int Wert zurück gibt,
müsste dich uint sein oder nicht?
Manfred schrieb:> Peter II schrieb:>> die Könntest einfach den Strom vor dem ACS712 gleichrichten.> Da am Ausgang des ACS 2,5V liegen und sich diese 'nur' um 185mV/Ampere> verschieben, könnte ich mir sogar einen Gleichrichter am Ausgang> vorstellen. Dumm nur, dass die Frequenz schon in einem Bereich liegt,> den normale Gleichrichterdioden nicht mehr mit machen.>> Nach wie vor ist mir unklar, über welchen Zeitraum DCC anliegt - das> sollte doch nur kurzzeitig stören?>>> Aber einfach ist es wohl in Software> Wie würdest Du das angehen? Ich könnte mir vorstellen, in einer Schleife> 50 Werte zu holen und daraus den Mittelwert zu bilden, wobei das> Vorzeichen (die Stromrichtung) unterdrückt werden müsste.
Das DCC Signal liegt klarer Weise permanent an ist ja ein Datenstrom und
versorgt alles mit Strom und Informationen.
Hallo nochmal.
Ich habe es mal auf dem Scope angeguckt. Es ist richtig, man hat ein
Mini-DCC Signal. Die Belastung bei dem großen Rechtecken auf der linken
Seite liegt bei 2A.
Habe ich es richtig verstanden, dass ich jetzt quasi immer ganz normal
samplen kann und jeden Wert dann mit abs(512 - ADCW) berechne und das
dann mein korrekter Strom ist?
Marius D. schrieb:> Ich habe es mal auf dem Scope angeguckt. Es ist richtig, man hat ein> Mini-DCC Signal. Die Belastung bei dem großen Rechtecken auf der linken> Seite liegt bei 2A.
Ich nehme an, Dein "Mini-DCC" hat einen Hub von 370mV - also zwischen
2,13 und 2,87 Volt?
Setze mal 0,1µF auf den Ausgang und von dort 10kOhm nach Masse - so, wie
man ein Audiosignal auskoppeln würde. Das nochmal mit dem Scope bei
unterschiedlicher Last angucken, solltest Du ein Signal haben, aber den
Offset von 2,5V los sein.
Dann könnte man einen AT328 auf die interne 1,2V-Referenz setzen und
eine bessere Auflösung erzielen.
> Habe ich es richtig verstanden, dass ich jetzt quasi immer ganz normal> samplen kann und jeden Wert dann mit abs(512 - ADCW) berechne und das> dann mein korrekter Strom ist?
Andersherum, AD-Wert minus 512.
Bei 712 (positiver Strom) sind das 200, bei 312 (negativer Strom) -200.
Vorzeichen wegwerfen, sind das jeweils 200.
Deine Eisenbahn ist aus Sicht des Prozessors unendlich langsam, ich
würde Oversampling (Mehrfachabtastung) machen:
Wert = 0
AD lesen
Wert = Wert + AD-Wert
x = x+1
Vielleicht ein paar µs Pause machen
Nochmal AD lesen
Wert = Wert + AD-Wert
x = x+1
und so weiter im Kreis, bis z.B. x=50
Dann wird gerechnet Strom = Wert / x
Damit bist Du das Rauschen des Wandlers weitestgehend los und hast
keinen grob falschen Wert, falls Du zufällig mal auf die Schaltflanke
sampelst oder die Lok gerade über ein Sandkorn fährt.
--------
In einer total anderen Anwendung hole ich zyklisch einen Wert, einfache
Messung, ich muß Strom sparen. Wenn dieser aus der Toleranz geht, setze
ich einen Merker (Flag) und hole einen weiteren Wert. Diesen hole ich
aber per Oversampling, da ich dem ersten Wert nicht vertraue. Liegt der
in der Toleranz, steige ich aus - war eine Fehlmessung.
Liegt der zweite Wert auch außerhalb der Toleranz, wiederhole ich das
zweimal. Liegen alle drei draussen, starte ich meine Aktion.
Warum mache ich das: Ich will nicht auf jede Störung reagieren, sondern
zuverlässig agieren. Wenn Mehrfachabtastung und erneute Prüfung bei Dir
200ms dauern, wen juckt's in Anbetracht der mechanischen
Reaktionszeiten?
> In einer total anderen Anwendung hole ich zyklisch einen Wert, einfache> Messung, ich muß Strom sparen. Wenn dieser aus der Toleranz geht, setze> ich einen Merker (Flag) und hole einen weiteren Wert. Diesen hole ich> aber per Oversampling, da ich dem ersten Wert nicht vertraue. Liegt der> in der Toleranz, steige ich aus - war eine Fehlmessung.>> Liegt der zweite Wert auch außerhalb der Toleranz, wiederhole ich das> zweimal. Liegen alle drei draussen, starte ich meine Aktion.>> Warum mache ich das: Ich will nicht auf jede Störung reagieren, sondern> zuverlässig agieren. Wenn Mehrfachabtastung und erneute Prüfung bei Dir> 200ms dauern, wen juckt's in Anbetracht der mechanischen> Reaktionszeiten?
Danke für die Antwort. Oversampling mache ich schon, das ist ja üblich
eigentlich. Ich habe allerdings aktuell nur 10 Werte und bilde daraus
den Mittelwert. Aber das lässt sich via CV anpassen (habe einen Decoder
integriert). Die CPU ist ein Tiny 85. Das mit dem Hochpass hinten ist ne
verdammt gute Idee, hätte mir aber auch mal selber einfallen können :D.
Dann ist allerdings die negative Spannung weg....
Ich bilde ja den Betrag mit abs(512 - ADCW), das ist doch dann völlig
egal ob ich ADCW-512 oder umgekehrt rechne, oder? Weil das Signal ja um
die Vcc/2 schwingt. Egal nach welcher Berechnung man geht, mal ist das
Ergebnis >0 mal <0, dass sieht man ja auch gut auf dem Bild.
Ich frage mich gerade nur, wie ich aus den Werten eine korrekte
Berechnung erwirtschafte.
i_in_deziAmpere = (((ADCW * 50) + 128) / 185);
Ich will dezi Ampere. Ich habe einen Samplewert von 20 (~0,55A, Zentrale
zeigt 0,6A an). Wenn ich nach obiger Rechnung gehe, dann komme ich
(durch's runden (+128) auf 6 = 0,6A da dezi Ampere). Problem ist: Das
ist durch testen entstanden, ich weiß nicht warum ich das * 50 rechnen
muss.
An den ACS nicht einfach eine dicke Kapazität packen. Wimre darf der nur
1nF treiben.
Klar ist DCC gemessen am ADC schnarchlangsam. Aber es ist
verhältnismäßig Gleichanteilfrei. Damit rechnen sich bei unglücklich
gewählten Abtastungen/Mittelwerten die Messwerte raus, und es bleibt
eine saubere 0A-Linie übrig.
Roland E. schrieb:> An den ACS nicht einfach eine dicke Kapazität packen. Wimre darf der nur> 1nF treiben.>> Klar ist DCC gemessen am ADC schnarchlangsam. Aber es ist> verhältnismäßig Gleichanteilfrei. Damit rechnen sich bei unglücklich> gewählten Abtastungen/Mittelwerten die Messwerte raus, und es bleibt> eine saubere 0A-Linie übrig.
Nein, das ist verhindert durch abs.
Funktioniert was ich bis heute getestet habe jetzt sehr gut.
Mit ABS geht's theoretisch auch. Bis zum nächsten Überlauffehler aus
einem unbekannten Offset.
Normalerweise nimmt man einfach den Abstand zwischen Min und Max. Das
ist Fehlersicherer.
Marius D. schrieb:> Die CPU ist ein Tiny 85.
Kurz mal G* befragt - scheint auch eine interne 1,1V-Referenz zu haben.
> Das mit dem Hochpass hinten ist ne> verdammt gute Idee, hätte mir aber auch mal selber einfallen können :D.> Dann ist allerdings die negative Spannung weg....
Nö, warum soll die weg sein? Der Kondensator koppelt ja nur die
Wechselspannung aus, solange die halbwegs symmetrisch ist, liegt die
symmetrisch zu null. Könnte sein, dass Deine Flanken verschliffen
werden. Teste es mal bitte.
> Ich bilde ja den Betrag mit abs(512 - ADCW), das ist doch dann völlig> egal ob ich ADCW-512 oder umgekehrt rechne, oder
Stimmt, dreht lediglich das Vorzeichen um.
Roland E. schrieb:> An den ACS nicht einfach eine dicke Kapazität packen. Wimre darf der nur> 1nF treiben.
Na und? Meine Idee war, per Koppelkondensator (in Reihe zum Ausgang) den
DC-Offset von 2,5V abzutrennen - in gleicher Weise, wie man Audiosignals
auskoppelt. Da sehe ich in meinem Vorschlag 10kOhm Last, keine Kapazität
nach Masse.
Roland E. schrieb:> Normalerweise nimmt man einfach den Abstand zwischen Min und Max. Das> ist Fehlersicherer.
Und wie macht er das? Das Signal wechselt zwischen zwei Werten, ist
vollkommen asynchron zum µC und muss in jedem Falle irgendwie abgetastet
werden.
Manfred schrieb:>> Das mit dem Hochpass hinten ist ne>> verdammt gute Idee, hätte mir aber auch mal selber einfallen können :D.>> Dann ist allerdings die negative Spannung weg....> Nö, warum soll die weg sein? Der Kondensator koppelt ja nur die> Wechselspannung aus, solange die halbwegs symmetrisch ist, liegt die> symmetrisch zu null. Könnte sein, dass Deine Flanken verschliffen> werden. Teste es mal bitte.
Ja ne das ist natürlich nicht weg, aber ich kann, soweit ich weiß, keine
negativen Spannungen samplen ==> negativ = weg. So meinte ich das.
Roland E. schrieb:> An den ACS nicht einfach eine dicke Kapazität packen. Wimre darf der nur> 1nF treiben.
Nö, mehr ist legitim. Im Datenblatt auf Seite 10 sind 470nF in einer
Tabelle als Maximum, zumindest so viel sind also mindestens erlaubt. Es
ist ja auch einfach der herausgeführte C des internen RC Tiefpasses
zwischen Vor- und Ausgangsstufe.
Klar verändert sich die PowerOn Zeit, man muss also etwas länger warten,
bis der erste Wert stabil ist.
Marius D. schrieb:>> Der Kondensator koppelt ja nur die>> Wechselspannung aus, solange die halbwegs symmetrisch ist, liegt die>> symmetrisch zu null.> Ja ne das ist natürlich nicht weg, aber ich kann, soweit ich weiß, keine> negativen Spannungen samplen ==> negativ = weg. So meinte ich das.
Scheiße, das habe ich übersehen.
Muß also noch ein Widerstand nach Plus hinten drauf, um das Signal in
den positiven Bereich zu verschieben.
Ich habe selbst schon mit dem ACS712 gearbeitet und diesen Offset Ub/2
als störend empfunden, weil er meine Auflösung verschlechtert.
Manfred schrieb:> Ich habe selbst schon mit dem ACS712 gearbeitet und diesen Offset Ub/2> als störend empfunden, weil er meine Auflösung verschlechtert.
Und wie willst du ohne den Offset einen negativen Strom messen?
MfG Klaus
Klaus schrieb:> Manfred schrieb:>> Ich habe selbst schon mit dem ACS712 gearbeitet und diesen Offset Ub/2>> als störend empfunden, weil er meine Auflösung verschlechtert.> Und wie willst du ohne den Offset einen negativen Strom messen?
In meiner Anwendung gab es keinen negativen Strom bzw. nur eine
Richtung.
Es gibt auch reine DC Typen des ACS.
Ich arbeite mit einigen, anderen Typen als der 712, die vertragen nur
das 1nF.
Zur Abstandsmessung:
Eine Flanken/Pegelerkennung an das Gleissignal, und schon ist bekannt ob
gerade ein Minimum oder Maximum an liegt. Damit erschlägt sich auch die
Abschalterkennung für den Notstop-Fall.
Manfred schrieb:> In meiner Anwendung gab es keinen negativen Strom bzw. nur eine> Richtung.
Dann benutzt du den falschen Chip. Ich brauch den Strom in beide
Richtungen.
MfG Klaus
Hallo,
im Fall des TO's ist der Offset irrelevant, die Stromrichtung auch.
Einfach ein paar mal abtasten, den höchsten Wert minus den Kleinsten,
fertig!
Hast sogar noch ein Bit gewonnen!
Gruss Chregu
Roland E. schrieb:> Ihn aber mit pauschal> 1/2 Vollausschlag rauszusubtrahieren ist fehlerträchtig.
Der Offset wird auch nicht raussubtrahiert, sondern es wird der
Spitzenwert gebildet!
Gruss Chregu
Der OP rechnet (addiert/subtrahiert) pauschal mit 512. Das führt zu
seltenen und seltsamen Falschmessungen. Eben weil keine Elektronik
absolut Offsetfrei ist.
Roland E. schrieb:> Ich arbeite mit einigen, anderen Typen als der 712, die vertragen nur> das 1nF.
Schön, aber wir reden hier ja über den ACS712, also lese bitte das
Datenblatt und dann kannst du mitreden. Man kann also den Tiefpass so
tief drehen, bis das DCC Signal weg ist. Der Sensor mittelt dann auch
selber schon, so das sich der Rechenaufwand in Grenzen hält.
Roland E. schrieb:> Der OP rechnet (addiert/subtrahiert) pauschal mit 512. Das führt zu> seltenen und seltsamen Falschmessungen. Eben weil keine Elektronik> absolut Offsetfrei ist.
Also diese ganzen Abkürzungen (TO, OP) ich habe 0 Plan was das
eigentlich heißt. Aber ich denke das bezieht sich auf mich, den Thread
Aufmacher!
Und ich möchte eins klarstellen! Ich rechne nicht pauschal mit -512!!
Das habe ich angegeben, da es zur ERklärung einfacher ist (und ungefähr
hinkommt).
Ich habe im Anfang und auch mittig geschrieben, dass ich beim ERSTEN
Start den korrekten Wert ermittel (liegt meist bei 507 ca.) und den dann
im EEPROM speichere. Damit rechne ich den Offset raus!
Nur für die Klarstellung!
Der 712-05 darf 10nF treiben. Na wow. Das ist jetzt richtig viel.
DCC ist kein periodisches Signal, daher ist filtern über einen Tiefpass,
egal ob nu RC an Pin7 oder C an Pin 6 generell Müll.
PS:
TO : Thread opener
OP : original poster/original post
Ja, Webboards sind nur ein armseliger Ersatz für das USENET...
Genaugenommen ist es egal mit welcher magischen Zahl als Offsetkorrektur
gearbeitet wird. Es ist für das (theoretisch) gleichanteilfreie Signal
nur gefrickelt. Denn jedes "gemessene" Offset ist nur eine
Momentaufnahme für exakt den einen Moment.
Es geht ohne dieses Offsetdenken erheblich stabiler, und wie oben schon
geschrieben sogar mit einer höheren Genauigkeit einher.
PPS:
Eine solche Herangehensweise mit einmalig gemommenem Offset pro
Einschaltzyklus wäre für unsere Vereinsanlagen gar nicht denkbar. Die
Änderung des Raumklimas über einen Fahrtag hinweg ändern das
Kriech/Blindstromverhalten der Anlagen so erhablich, dass das Offset nie
stimmen würde.
Roland E. schrieb:> Der 712-05 darf 10nF treiben. Na wow. Das ist jetzt richtig viel.>> DCC ist kein periodisches Signal, daher ist filtern über einen Tiefpass,> egal ob nu RC an Pin7 oder C an Pin 6 generell Müll.>> PS:> TO : Thread opener> OP : original poster/original post>> Ja, Webboards sind nur ein armseliger Ersatz für das USENET...>> Genaugenommen ist es egal mit welcher magischen Zahl als Offsetkorrektur> gearbeitet wird. Es ist für das (theoretisch) gleichanteilfreie Signal> nur gefrickelt. Denn jedes "gemessene" Offset ist nur eine> Momentaufnahme für exakt den einen Moment.> Es geht ohne dieses Offsetdenken erheblich stabiler, und wie oben schon> geschrieben sogar mit einer höheren Genauigkeit einher.>> PPS:> Eine solche Herangehensweise mit einmalig gemommenem Offset pro> Einschaltzyklus wäre für unsere Vereinsanlagen gar nicht denkbar. Die> Änderung des Raumklimas über einen Fahrtag hinweg ändern das> Kriech/Blindstromverhalten der Anlagen so erhablich, dass das Offset nie> stimmen würde.
Ja, aber dazu muss ich 4 Sachen sagen.
1. Danke für die Aufklärung mit den OP/TO
2. Hast du auch 'ne LGB?
3. Mit dem Offset hast du zwar Recht, aber meine Module sind vergossen
und ich muss nicht exakt den Strom wissen, sondern will nur wissen ob
der eine Grenze von 5A, 10A 15A... übersteigt (ist einstellbar via CV).
Ist ja ein Kehrschleifenmodul. Das funktioniert super, keine
Sensorgleise, kein Kurzschluss in dem Sinne wie von handelsüblichen
Geräten wo die Funken sprühen. Das Modul löst aus, bevor die Zentrale
auch nur 200mA Lasterhöhung erkennt und es bilden sich keine Funken.
4. Der Offset ist egal, nur wenn kein Verbraucher im Abschnitt ist, dann
muss ich das Ergebnis ja ~ 0A bekommen.
Wir fahren TT/HO. Da muss es sehr viel empfindlicher sein. Die Gleise
sind geschottert, da kommt ne Menge Kriechstrom zusammen. Die
handelsüblichen Kehrschleifenmodule tun es aber sauber und ohne Funken.
Bei einer fest (im Garten) aufgebauten LGB dürfte da auch einiges an
Kriechstrom zusammen kommen. Wasser hat einen verdammt spitzen Kopf.
Roland E. schrieb:> Der 712-05 darf 10nF treiben. Na wow. Das ist jetzt richtig viel.
Nö. Der ACS712 hat einen extra Filter Pin und an den darf man mindestens
bis zu 470nF anschliessen. Siehe Seite 10 im Datenblatt.
Roland E. schrieb:> Der 712-05 darf 10nF treiben. Na wow. Das ist jetzt richtig viel.>> DCC ist kein periodisches Signal, daher ist filtern über einen Tiefpass,> egal ob nu RC an Pin7 oder C an Pin 6 generell Müll.>
Einfach noch einmal sinnentnehmend lesen ;-)
Roland E. schrieb:> Wir fahren TT/HO. Da muss es sehr viel empfindlicher sein. Die Gleise> sind geschottert, da kommt ne Menge Kriechstrom zusammen. Die> handelsüblichen Kehrschleifenmodule tun es aber sauber und ohne Funken.>> Bei einer fest (im Garten) aufgebauten LGB dürfte da auch einiges an> Kriechstrom zusammen kommen. Wasser hat einen verdammt spitzen Kopf.
Ja, aber wie gesagt, hier geht's nicht um 1-2 oder 3A.
Und die Platinen sprühe ich immer mit so einem Schutzlack von
Kontaktchemie ein.
Die Kehrschleifenmodule im Gartenbahnbereich sind entweder mit blöden
Sensorgleisen (total größer Verkabelungsaufwand) oder per Kurzschluss.
Letzteres verursacht schon einen heftigen Kurzschluss. Funkensprühen da
auf jeden Fall! Finde ich nicht so gut.
Außerdem kosten die Module >80€, meins liegt, von den Materialkosten
her, bei 4€ und kann 15A Dauerleistung.