Durchflusssensor

Gast #4641426
Lesenswert?
• ▲
▼
Hallo Leute. Ich hoffe jemand kann mir helfen.

Ich möchte das Signal eines Durchflussmessers über einen ext. Interrupt 
auswerten. Jedoch werden keine Interrupts ausgelöst wenn ich die 
Signalleitung des Sensors am INT2 meines Atmega32 anschließe. 
Softwaretechnisch funktioniert der INT2 mittlerweile. Mit Taster 
funktionierts und ich kann die Anzahl der Tastendrücke pro Sekunde auf 
einem LCD anzeigen lassen. Nur der Sensor liefert mir anscheinend kein 
vernünftiges high-low Signal. Kann das daran liegen dass ich die "Simple 
circuit"-Variante gewählt habe und nicht die TTL oder sollte es 
eigentlich auch so funktionieren?
Angehängte Dateien:
(Firma: matzetronics)
Lesenswert?
• ▲
▼
HansDampf schrieb:
> Kann das daran liegen dass ich die "Simple
> circuit"-Variante gewählt habe

Wenn du die benutzt, sollte der Sensor allerdings mit der gleichen Vcc 
versorgt werden wie der AVR.
Als Kontrolle könntest du den 4,7k Pullup durch eine rote LED in Reihe 
mit 1k ersetzen, um mal zu sehen, ob der Sensor überhaupt Pulse liefert.
Leider schreibst du ja nicht, welchen DIGMESA Sensor du benutzt, sonst 
könnte man mal im Datenblatt gucken.
http://www.digmesa.com/support/data-sheets/
(Firma: matzetronics)
Lesenswert?
• ▲
▼
Sebastian S. schrieb:
> Würde mich nicht wundern, wenn der Eingang schon im Nirwana weilt.

Würde mich wundern, wenn du den Thread gelesen hast, mit einem Taster 
gehts doch:
HansDampf schrieb:
> Mit Taster
> funktionierts und ich kann die Anzahl der Tastendrücke pro Sekunde auf
> einem LCD anzeigen lassen.

Ein 4k7 lässt auch bei 20V noch nicht so viel Strom in den AVR fliessen.

@TE: Schau doch nochmal, ob du nicht doch die Anschlüsse verwechselt 
hast. Hast du bestimmt schon zehn mal gemacht, aber guck trotzdem 
nochmal :-)
Gast
Lesenswert?
• ▲
▼
Matthias S. schrieb:
> @TE: Schau doch nochmal, ob du nicht doch die Anschlüsse verwechselt
> hast. Hast du bestimmt schon zehn mal gemacht, aber guck trotzdem
> nochmal :-)

Das habe ich wirklich schon mehrmals. Aber beim Durchmessen der 
Leitungen musste ich feststellen, dass die Signalleitung gar keinen 
Durchgang bis zum Controller hat --> Schneidklemme im Stecker 
nachgedrückt --> LED blinkt --> hurra :-)

Aber immer noch kein Interrupt: Wenn Pumpe läuft, habe ich ca. 2V, wenn 
Pumpe aus, dann mal 0V und mal 3,7V. Den Rest schluckt jetzt wohl die 
LED. Ich versuchs jetzt mal wieder ohne LED, dann müsste es ja 
hoffentlich laufen.
(Firma: matzetronics)
Lesenswert?
• ▲
▼
HansDampf schrieb:
> Wenn Pumpe läuft, habe ich ca. 2V, wenn
> Pumpe aus, dann mal 0V und mal 3,7V. Den Rest schluckt jetzt wohl die
> LED.

Bei den schnellen Pulsen vom Sensor wirst du mit dem Messgerät nur einen 
Durchschnittswert bekommen, daher die 2V. Die 0V oder 3,7V sind eben der 
Zufall, wo das Rädchen stehen bleibt. Du wirst deinen Interrupt also 
besser flankengetriggert auslösen als pegelgetriggert.

Jo, jetzt kannst du die LED auch wieder rausnehmen und damit stehen am 
AVR Eingang wieder die 5V statt 3,7V. Eigentlich sollten auch 3,7V als 
high erkannt werden, aber ohne LED ist schon besser - war ja nur zum 
Testen.
Gast
Lesenswert?
• ▲
▼
Matthias S. schrieb:
> Bei den schnellen Pulsen vom Sensor wirst du mit dem Messgerät nur einen
> Durchschnittswert bekommen, daher die 2V. Die 0V oder 3,7V sind eben der
> Zufall, wo das Rädchen stehen bleibt. Du wirst deinen Interrupt also
> besser flankengetriggert auslösen als pegelgetriggert.

Jetzt habe ich Spannungen von 0V 2,5V und 5V. Also ein einwandfreies 
Signal würde ich sagen. Jetzt muss ich hald wieder im Programm schauen 
warum ich keine Interrupts bekomme.

Vielen Dank schon mal für die Unterstützung
Gast
Lesenswert?
• ▲
▼
HansDampf schrieb:
> durchluss.JPG

Wie stellst du bei dieser Beschaltung sicher, dass der Maximalstrom des 
Sensors nicht überschritten wird? Bei jedem Schaltvorgang nach 0V wird 
der Kondensator über den Transistor kurz geschlossen. Die feine 
englische Art ist das nicht - aber in der Schweiz macht man das 
anscheinend so :-(
Gast
Lesenswert?
• ▲
▼
Problem gelöst. Der Takt von 1MHZ war zu schnell. Ich zähle ja die 
Interrupts während eines Timerlaufs. Aber dieser war schneller als die 
Taktrate des Sensor und somit immer 0. Mit Prescaler läufts.
Gast
Lesenswert?
• ▲
▼
HansDampf schrieb:
> Momentan garnicht, ich dachte die Schweizer wissen schon was sie tun.

Nun ja, durch die Unsymmetrie der Ausgangsstufe bekommst du steile 
fallende Flanken und langsam steigende Flanken.

> Irgendwelche vorschläge?

Um das abzumildern, könnte man einen kleinen Widerstand zwischen Ausgang 
des Sensors und den Kondensator schalten. Bei z.B. 330Ω wird der Strom 
schon mal auf 15mA begrenzt, die Flanke ist nicht mehr ganz so giftig 
und der Low-Pegel wird nur unwesentlich verschoben.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.