PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Duchflussmesszelle (npn open collector) an µC



kruschty
27.06.2009, 15:52
Hallo,

ich versuche mit einer Duchflussmesszelle http://www.btflowmeter.com/fileadmin/PDF/Flowmeter/96103140_FCH-m-Pom.pdf
an einem Atmega2560 (RN-Mega2560-Modul) den Duchfluss nach einer 230V Pumpe zu messen.

Das Ausgangssignal (NPN Open Collectort) der Messzelle ist mit T0 (Timer0 als Counter) verbunden.

Zuerst hatte ich den Ausgang direkt verbunden und den Pull-Up aktiviert, da konnte ich keine Impulse zählen.

Ohne Pull-Up kann ich zwar zählen aber es wird auch gezählt wenn keine Flüssigkeit fließt (Pumpe aus).
Das passiert aber immer nur wenn an der zweiten Platine, die die Pumpe steuert, 230V anliegt.

Bei der Suchen bin ich auf das Datenblatt http://www2.produktinfo.conrad.com/datenblaetter/175000-199999/187151-da-01-de-Durchflussmesser.pdf gestoßen und habe nach dem Abschnitt "TTL Output" meine Schaltung geändert.

Leider habe ich jetzt wieder das Ergebnis das einfach nichts gezählt wird.

Hat jemand eine Idee und Tipps für mich?
Ich bin mir jetzt schon alleine unsicher wie ich die Durchflussmesszelle richtig an den µC anschließe :-(

Muss dazu sagen das ich mich noch nicht lange mit µC befasse, meine Elektronik-Kenntnisse sind auch eher bescheiden da ich seit meiner Elektroausbildung vor 15 Jahre fast nichts in diesem Bereich gemacht habe.
Programmiert wird momentan mit Bascom und C#...

Vorab vielen Dank für eure Hilfe!

Besserwessi
27.06.2009, 17:33
Der interne Pullup ist recht hochohmig. Im Prinzip ist das mit das mit dem Pullup wohl schon richtig, nur sollte man da einen niederohmigeren nehmen (z.B. 2,2 oder 1 K). Dann sollte man nicht so viele Störungen einfangen. Ein Kondensator so wie in der Anleitung wäre auch nicht schlecht. Zur Sicherheit besser auch noch ein Widerstand von ca. 10 K direkt vor den µC Eingang.

kruschty
27.06.2009, 18:30
Ich hatte es gestern schon mit einem 1 K versucht (allerdings ohne C) und da wurde auch nichts mehr gezählt.

Ein Freund hat mir vorgeschlagen einen Transistor dazwischen zu schalten der mit dem Signal der Messzelle durchgeschaltet wird.

Sein Vorschlag war mit dem Signal über eine 100 Ohm auf die Basis eines 2n2222 (die habe ich da). 5V über 100 Ohm auf Kollektor, dazwischen auf T0. Emitter auf GND.

Zwischen Basis und GND und zwischen Leitung zu T0 und GND jeweils einen 100nF zur Entstörung.

Was hältst du von dieser Lösung?

PICture
27.06.2009, 18:48
Hallo kruschty!

Um dir konkret helfen muss ich mir dein Problem genau vorstellen können. Das ist aber ohne aktuellem Schaltplan (Skizze) deiner Schaltung nicht möglich, da ich eher ein Praktiker bin.

MfG

Besserwessi
27.06.2009, 18:57
Ein Widerstand von 100 Ohm gegen 5 V ist zu niedrieg ! Die Ausgängen sollten maximal 20 mA Vertragen. Ohne einen Pullup geht der Transistor auch nicht.
Der extra Transistor würde einen etwas besseren Schutz für den µC geben, aber hinsichtlich Fehleranfälligkeit wäre das eher ein Rückschritt, denn die Schaltschwelle liegt dann bei etwa 0,7 V statt 2,5 V. Der AVR hat am Eingang sogar etwas Hysterese.

kruschty
27.06.2009, 21:14
Hallo PICture,
Schaltplan ist momentan so eine Sache. Habe es nur auf Papier und mein Scanner ist defekt. Mit Software für Schaltpläne habe ich es leider auch noch nicht so (Eagle ist aber schon installiert).

Ich versuche es mal zu beschreiben:

Auf der ersten Platine ist das RN-Mega 2560-Modul (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=162) versorgt mit 5V durch die übliche Schaltung mit dem 7805.

2 Ausgänge des µC und die 5V gehen auf die 2. Platine.

Dann gehen die 5V noch zur Messzelle und das Signal der Messzelle geht (über die oben verlinkte Schaltung "TTL Output") auf T0 des µC damit ich die Impulse zählen kann.

Auf der 2. Platine werden mit den 2 Ausgängen des µC 2 Transistoren 2N2222 geschalten die jeweils ein Solid State Relays (R36MF2 von Sharp) schalten.
An einem SSR hängt eine Ulka-Pumpe EP8 und an dem anderen ein 3-Wege-Ventil (beides 230V).

Gesteuert wird das ganze per RS232 und einem kleinen Dosierprogramm auf dem PC.

Ziel momentan ist es das zu Messen was durch die Pumpe geht ;-)

@Besserwessi
an die Schaltschwelle habe ich gar nicht gedacht. Gut das ich gefragt habe. Mein Freund ist auch eher ein Praktiker und kommt aus der Radio/TV-Ecke und hat mit µC (leider) nichts am Hut.
Nachdem ich ihn am Telefon genervt habe hat er mir das mal so gesagt und meinte eventuell könnte man auch 1K-Widerstände nehmen...


Zur Sicherheit besser auch noch ein Widerstand von ca. 10 K direkt vor den µC Eingang.
Du meinst damit in Reihe zum Signal?

PICture
27.06.2009, 21:44
Als erstes müsste man die Art von Übertragung der Störsignale rausfinden. Da der Sensor einen Hallsensor ist und die Störungen treten, laut deiner Beschreibung, nur wenn die Pumpe gesteuert wird auf, vermute ich ein magnetisches Feld.

Um das zu bestätigen versuche es, bitte, den Sensor mit einem wechselndem magnetischem Feld (z.B. einem belastetem Steckernetzteil in unmittelbarer Nähe des Sensors) zu stören, wenn die Pumpe nicht eingeschaltet ist. Wenn es magnetisches Feld nicht ist, werde ich weiter denken. :)

kruschty
27.06.2009, 22:09
Gerade getestet und dann über mich selbst geflucht.
Um das zu testen muß ich erst wieder die Schaltung in der Urzustand versetzten und die 2 Dioden, R und C auslöten. So bekomme ich ja momentan gar kein Signal in den µC:

Die Störungen treten auf wenn die Pumpe/das Ventil nicht aktiviert ist, d. h. wenn die 230V nur an den SSR (auf der 2. Platine) anliegen, die aber noch nicht durchgeschalten sind. Diese Platine ist ca 1 m entfernt vom Sensor.

Wenn ich die 230V an der 2. Platine abhänge gibt es keine Störungen mehr.

PICture
27.06.2009, 22:24
Das heißt, dass die Störungen nicht durch ein magnetisches Feld verursacht sind.

Deinen letzten Beitrag habe ich leider nicht ganz verstanden. Gibt es überhaupt noch Störungen?

kruschty
27.06.2009, 22:37
Deinen letzten Beitrag habe ich leider nicht ganz verstanden. Gibt es überhaupt noch Störungen?

Sorry irgendwie erkläre ich es schlecht :-(

Nochmal zusammengefast:

Signal von der Zelle direkt auf T0 (Pull-Up im µC deaktiviert --> es wird gezählt wenn die Pumpe läuft, aber auch wenn die Pumpe aus ist.

Signal von der Zelle direkt auf T0 (Pull-Up im µC aktiviert --> es wird nichts gezählt ob mit oder ohne Pumpe.

Alle versuche mit externer Beschaltung wie 1K oder die TTL-Out mit den 2 Dioden haben zum Ergebnis das einfach nichts mehr gezählt wird


Und wenn die 230V Wechselspannung ohne fliessenden größeren Ströme an die 2.Platine mit dem µC angelegt ist, wird es gestört?

Genau so ist es (Vorausgesetzt Signal ist ohne weitere Beschaltung mit T0 verbunden)



was aber bei 1k pull-up sehr unwahrscheinlich wäre.
Wenn der drinn ist wird nichts mehr gezählt

Edit:

Löte gerade mal die Dioden, R und C aus damit wieder gezählt wird und ich sehe wann die Störungen auftreten...

PICture
27.06.2009, 22:46
Das deutet darauf hin, dass der Transistor im Sensor zu geriger Strom in die Messleitung liefert und muss verstärkt werden. Und wenn du den Sensorausgang bei 1 k pull-up am µC-Eingang (T0?) an GND kurzschliesst, wird es gezählt?

kruschty
27.06.2009, 22:50
Muss ich versuchen, habe eben die Sachen ausgelötet jetzt wird wieder gezählt.
Nur um sicher zu gehen. Den Pull-Up würde ich zwischen 5V und Signal löten? Nicht das ich da schon einen Fehler habe...

PICture
27.06.2009, 23:07
Ja, aber der pull-up sollte besser beim µC sein damit die Signalleitung mit Strom gesteuert wird.

Besserwessi
27.06.2009, 23:13
Richtig, der Pullup gehört zwischen 5 V und Signal.

Wenn nicht gezählt wird, heißt dass das der Eingang einen festen Wert hat. Es würde helfen, wenn man weiss ob High oder Low.

kruschty
27.06.2009, 23:16
Habe jetzt noch bisschen getestet.

Habe die 2 Platine komplett von der 1. getrennt (5V und die 2 Ausgänge).
Solange ich 230V auf diese 2. Platine gebe zählt der µC. Es ist erst Ruhe wenn ich die Spannung kpl. wegnehme...

kruschty
27.06.2009, 23:19
Wenn nicht gezählt wird, heißt dass das der Eingang einen festen Wert hat. Es würde helfen, wenn man weiss ob High oder Low.

Habe ja momentan den Pullab raus um mit PICture Hilfe zu sehen wer oder was da jetzt stört.

Wenn das mal eingegrenzt ist kann ich den R wieder einlöten...

PICture
27.06.2009, 23:21
Wird es bei 1 k pull-up beim µC und kurzschliessen des Sensors an GND gezählt?

kruschty
27.06.2009, 23:51
So Widerstand wieder drin und getestet: Es wird gezählt wenn ich Signal mit GND kurzschließe

PICture
27.06.2009, 23:57
Dann muß man das Signal vom Sensor verstärken. Ich habe inzwischen zwei einfachste Schaltungen dafür skizziert. Normaleweise sollte die obere Schaltung reichen, aber bei Problemen mit Erkennung des "1" (H) Pegels, sollte man noch mit der unteren versuchen. Falls nötig könnte man den R1 vergrössern.




VCC
+
|
+-----+
| |
.-. |
| |R1 |
| |10k |
Sensor '-' |
.-----. | |/
| +-----+---|
| | | |>
| |/ | |
|-| | +-------- - - -------+----> µC
| |> | |
| | | .-.
| ===| R2| |
'-----' 1k| |
'-'
|
===
GND

VCC
+
| VCC
+-----+ +
| | |
.-. .-. .-.
R1| | | |R2 R3| |
10k| | | |1k 1k| |
'-' '-' '-'
| | |
| +--+ +------ - - -------+---> µC
Sensor | | | |
.-----. | |/ | |/
| +-----+---| +--|
| | | |> |>
| |/ | | |
|-| | === ===
| |> | GND GND
| | |
| ===|
'-----'

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

kruschty
28.06.2009, 00:05
Vielen Dank für deine Mühe zu so später Stunde!

Ich habe leider momentan nur 2 Typen Transistoren hier: 2N2222 oder BC547. Wäre da einer davon OK?

PICture
28.06.2009, 00:08
Wenn die (leider unbekante) Frequenz der Impulse nicht hoch ist, ja.

kruschty
28.06.2009, 00:11
Angeblich soll die Messzelle 2500 Impulse/1 Liter liefern. Mit meiner Pumpe brauche ich ca. 1,5 Minuten für einen Liter. Mit den Störungen wurde für 1 Liter ca 7000 Impulse gezählt.

PICture
28.06.2009, 00:18
Das ist niedrige Frequenz und hoffentlich mit der einfacher Schaltung wird es richtig gezählt, sonst müssen wir weiter denken... :)

kruschty
28.06.2009, 01:02
So habe die erste Schaltung versucht -leider bekomme ich wieder kein Signal gezählt.

Mache Schluß für heute, morgen ist auch ein noch Tag...

PICture
28.06.2009, 01:43
Dann ist der Sensor entweder falsch angeschlossen oder defekt. Wenn er keine Impulse gibt, können sie auch nicht gezält werden. Man könnte nur noch bei am Sensor angeschlossenem pull-up (am besten ohne Signalkabel) mit einem Voltmeter prüfen ob sich bei Durchfluss die Ausgangsspannung ändert.

MfG

kruschty
28.06.2009, 22:32
So wie du vermutest scheint es auch zu sein.

Ein befreundeten Radio- und Fernsehtechniker hat heute mit dem Oszi gemessen was für ein Signal an der Duchflussmesszelle ist und da passiert nichts. Es scheint das Ding ist einfach defekt.

Wir haben jetzt mal die Schaltung mit dem Optokoppler aus dem DIGMESA-Datenblatt (Link im 1. Beitrag oben) aufgebaut.
Wenn ich Signal auf GND brücke wird vom µC auch wieder gezählt.

Scheinbar hat der µC ohne Pull Up bisher nur die Störungen gezählt.

Werde jetzt mal nach einer neuen Messzelle schauen und dann noch einmal testen und mich melden.

Vielen Dank für eure Hilfe!

PICture
28.06.2009, 23:06
Danke für deine Nachricht. Das sollte ich schon früher vermuten und dir nicht so viel zumuten, aber...

Ab jetzt erwarte ich von dir nur gute Nachrichten. :)

Viel Erfolg!

MfG

kruschty
29.06.2009, 22:29
... und hier die gute Nachricht: es funktionier einwandfrei mit einer neuen Messzelle :-)

Jetzt wo die Hardware funktioniert kann ich mich endlich mal mit der Software beschäftigen.

Vielen Dank für eure Mühe und Hilfe!

PICture
29.06.2009, 22:42
Hallo kruschty!

Es freunt mich sehr das lesen zu dürfen. Du kennst dich doch sehr gut mit der Elektronik aus, aber manchmal fällt man in Teufelkreis und sieht keine Lösung eines Problems, die es doch immer gibt...

Ich denke, dass ich bei Software dir nicht helfen kann und deswegen wünsche ich dir reibungslosen Verlauf der Programmierug! :)

MfG