Hi Leute, ich hab mal wieder ein kleines Problem: ich möchte gerne den Durchfluß einer Pumpe überwachen ( evtl. auch die Drehzahl von mehreren Lüftern, also nur ob er noch läuft ). Das ganze soll auf nem ATMeag323 laufen, bei dem leider schon alle Timer für PWM belegt sind. Kann mir da mal bitte einer auf die Sprünge helfen wie ich das in Assembler lösen könnte ? Ich dachte erst an einen externen Interrupt, der mir ein Register erhöht und ich dann schaue ob es sich geändert hat. Nur wie vergleiche ich das am besten ? Lieg ich da mit meinen Gedanken einigermassen richtig ? Wie könnte ich das in der Praxis lösen ? Ich steh da irgendwie etwas auf dem Schlauch und wär für Tips sehr dankbar. MfG Marcus Göttler
Hallo Marcus Das mit dem Durchfluss würde ich auch gern wissen. Die am Markt erhältlichen Durchflussmesser sind nämlich Schweineteuer. Für den Lüfter hätte ich da allerdings eine Idee von einem Geschäftspartner von mir. Der hat bei seinen PC's direkt hinter dem Lüfter eine kleine Klappe montiert, die durch den Luftstrom etwas angehoben wird. Mit dieser Klappe hat er einen Mikroschalter betätigt (Öffner) und einfach das Signal des Schalters ausgewertet. Gruss Christian
Hi Christian, hehe das ist sicherlich auch ne Idee, mir aber leider zu "unprofessionell" ;) Ich will sozusagen alles aus einer Hand: Lüftersteuerung und Ausfallschutz der Pumpe für die Wasserkühlung bzw Ausfall eines Lüfters. Bei Pumpenausfall soll der Rechner runtergefahren werden und bei Ausfall eines Lüfters genügt mir eine Signalisierung per LED oder Summer. Marcus
Lüfter kann man notfalls auch mit ner Lichtschranke überwachen (falls kein Tachosignal verfügbar), aber da du es ja "professionell" willst, geht das nicht, da führt kein Weg an einem Durchflussmesser vorbei. Könnte ja sein, irgendein Döskopp legt seine alten Socken auf den Lufteinlass, der Quirl quirlt und trotzdem bringts nichts. Dasselbe gilt für die Pumpe, wirkliche Überwachung gibt auch da nur ein Durchflußmesser. Ansonsten ist die Sache recht einfach, nimm dir eine Variable, die du in irgendeinem zyklischen Interrupt (kann ein PWM-Timer sein) um eins erhöhst und auf einen Grenzwert kontrollierst. Die ISR am ext. Interupt macht nichts anderes, als diese Variable wieder auf Null zu setzen. Bleiben die Impulse aus, läuft die Variable in den Grenzwert -> Alarm.
@Crazy Horse: Danke erstmal für den Tip, das werde ich heute mal probieren. Ich hab mir den Kopf zerbrochen, wie ich das am besten ohne Timer lösen könnte, weil ich dachte die kann ich eh nicht nehmen, da sie ja von der PWM belegt sind. Aber das dürfte ja nix ausmachen. Ich wollte das Tachosignal der Lüfter auswerten und für die Pumpe noch einen Durchflussmesser verbauen. Da könnte ich ja mit dem Timerinterrupt ein Register um 1 erhöhen und mit dem ext interrupt wieder zurücksetzen. Dann noch schnell geschaut was in dem Register steht und den entsprechenden Ausgang schalten.... Nur wie mache ich das dann mit mehreren Lüftern ? Einen Interrupt hab ich bereits für nen Taster belegt und der andere würde dann für eine Drehzahlüberwachung drauf gehen. Überwacht hätte ich gerne 1x Durchfluss und 4 Lüfter. MfG Marcus
Auch wenn ich Conrad net unbedingt mag: Dort gibts Flügelrad-Durchflussmesser. Sie geben eine dem Durchfluß (mehr oder minder) proportionale Frequenz aus. Es gibt unterschiedliche Ausführungen, z.B. Best.-Nr. 187151 , ca 20 Euro. Andere Bezugsquelle: RS-Components, die sind aber noch teurer als Conrad. Dann gibts auch noch versch. Hersteller, die aber nicht an privat verkaufen, die liegen preislich aber jenseits von gut und böse.
Hallo Markus, ich habs hier schon öfters gesagt, externe Interrupts sind nur dann nützlich, wenn man sie benötigt. Einen Taster damit abzufragen ist quatsch, kein Mensch ist in der Lage einen Taster innerhalb weniger µs zu drücken. Also Interrupts sind nur für wirklich schnelle Sachen da. Alle langsamen Abfragen macht man viel bequemer mit einem Timerinterrupt. Bei den Lüfter und Durchflußsensoren must Du also die maximale Taktfrequenz wissen, um zu entscheiden, ob ein extra Interrupt notwendig ist. Die mir bekannten Durchflußsensoren erzeugen nur einige 100Hz, d.h. man kann sie bequem auch mit einem Timerinterrupt, z.B. alle 100µs abfragen. Für die Tastenabfrage sind 100µ zu kurz zum Entprellen, d.h. Du nimmst dann im Timerinterrupt ein Byte zum Teilen auf 10ms zum Entprellen. Somit kannst Du soviel Sensoren oder Tasten anschließen,wie Du Pins hast und brauchst für alles zusammen nur einen einzigen Timerinterrupt. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.