Hallo, Ich baue zurzeit an einer Lüfterregelung für den PC mit uCOS 2. Für die Regelung würde ich gerne das Tachosignal der Lüfter einlesen. Dazu nimmt man den Input Capture Pin. Jedoch hat der Atmega1284p nur 2 und ich habe sowieso nicht mehr soviele Portpins frei. Deshalb hätte ich mir gedacht das ich die Tachosignal Multiplexe?!? Hat da jemand eine Idee?? Weiters wirds dann interessant wie das mit dem Timing aussieht beim uC OS2. mfg der brunzer
brunzer schrieb: > Für die > Regelung würde ich gerne das Tachosignal der Lüfter einlesen. Komischer Ansatz. In meinen Augen wäre die eigentliche Arbeit des Lüfters, eine bestimmte Temperatur zu halten. Also würde ich eher die Temperatur messen und regeln als die Drehgeschwindigkeit.
Ja sicha die Temperatur lese ich ein und die Drehzahl will ich auch einlesen. Hätte mir schon gedacht das Tachosignal mit einem Tiefpass zu einer Gleichspannung machen und dann mit ADC einlesen und dann rückrechnen, aber ich denke das das zu ungenau wäre... Aber die eigentliche Frage ist wie ich meine 6 Tachosignal am Capture Pin multiplexen kann.. mfg
Hallo, zähl doch per Software. Nimm PCINTs und wenn der ausgelöst wird schaust welcher Pin sich geändert hat und zählst die entsprechende Variable hoch und dann nimmst du einen langsameren Timer mit zb 1/10sec oder 1sec Laufzeit und kuckst was in der Variable steht und schon hast du deine Umdrehungen pro 1/10sec bzw sec Wenns langsamer sein kann dafür aber genauer dann kannst du auch länger warten Gruß Karl
Ok, gute idee, jedoch weißt du wie ich das mache mit dem uC OS? weil meine Idee wäre einen eigenen Task machen der 1Sekunde aktiv ist und die Drehzahl einließt. Dazu müsste ich den "taskswitchtimer" anhalten.. jedoch weiß ich nicht wie das geht.. Das OS mach ich deswegen weil 1. Kommunikationstask zum PC 2. LCD-task für Datendiagramm usw. 3. Regler_task 4. Drehzahl task 5. Temperatur task 6. RGB LED Pwm.. mfg der brunzer
plop Mal sehen, ob Du es schaffst, auch 6 Kanäle zu messen. Beitrag "4-Kanal Drehzahlmessung mit ATmega88"
Naja... ich kenn dein uC OS ja nicht, aber eigentlich wäre das nach gesundem Menschenverstand halt eine Aufgabe für ein C-Programm. ISR erstellen, darin zählen und schließlich in der zeitunkritischen Hauptschleife irgendwas mit dem Ergebnis das dir der ISR-Zähler liefert, entsprechend ausführen. Warteschleifen ohne For-Anweisung sondern mit dem 16-bit Timer/Counter1 erstellen kannst du?
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.