PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Drehzahlmesser



TheHawk
13.12.2007, 07:20
Ich ha aus meinen alten PC einen Lüfter mit integrierten Tacho ausgebaut. Nun bräuchte ich ein IC das mir die Drehzahl in eine 4 stellige Siebensegmentanzeige (CK oder CA) umwandelt. Kann aber auch ein IC sein das vier mal einen BCD Code ausgiebt. Dann häng ich einfach einen BCD-to-7Segment Wandler dahinter. Kennt ihr einen?

Danke im vorraus

Jaecko
13.12.2007, 07:44
so als ganzes wüsst ich spontan nen AVR... halt selber programmieren.
Hab ich bei ner Drehzahlmessung für Benzinmotoren so gemacht (Also Takte gezählt und auf ner 4x7-LED-Segmentanzeige ausgegeben.
War aber von der Taktaufnahme etwas anders, da hier die Zündspule angezapft wurde.

Ansonsten als evtl brauchbare Einzelteile:
BCD-7-Segment-Treiber sind die 4511.
Bräuchtest also nur noch etwas, das die Takte zählt und nach BCD umwandelt.

TheHawk
13.12.2007, 09:12
Tja, ein AVr wäre auch eine Möglichkeit, aber lieber wär mir ein IC. Welches ist eigentlich der kleinste AVR. Wenn ich den AVR ja nur zum Zählen und ausgeben hernimm, welchen würd ich dann brauchen? Gibts einen 7-Segment Treiber, den man über I2C, oder einen anderen Bus ansteuern kann? Dann könt ich den AVR ja noch kleiner halten.

oZe
14.12.2007, 13:35
Also ich halte nen AVR auch für die beste Lösung und vor allem auch für die unkomplizierteste. Das Tachosignal (ich nehme an rechteck Signal) legst du einfach an einen Eingang des AVR`s und berechnest dann in der Software die RPM. Den Wert verarbeitest du dann einfach über ein kleines Stück Software für die 7 Segment anzeige auf.

Der kleinste AVR wird dir ehr wenig bringen, da du ja schon mal 8 IO`s für die 7-Segmentanzeige und einen IO für das Tachosignal brauchst.
Ich würde hier zu einem AtTiny2313 greifen. Der besitzt genügend IO`s und ist nicht überdimensioniert.

TheHawk
14.12.2007, 15:09
Ja stimmt. Wie ungefähr sollte die Bearbeitung per Software aussähen? Brauche ich wirklich nur 8 IO's für die 7-Segmentanzeigen? Ich hab ja 4 Stück davon welche jeweils per BCD Code angesteuert werden. Und ich hab gestern das Taktsignal am Oszi in der Firma gemessen. Sieht ungefähr so aus.

Edit: Verstehe. 4 IO's für den BCD Code und 4 IO's als Select Leitungen welche den EL (negiert) des jeweiligen 4511 auf LOW schalten um den neuen WErt der Anzeige zu übertragen. Es bleibt ja der Letzte Wert im Latch des 4511 gespeichert und ausgegeben, wenn EL (negiert) HIGH ist

Jaecko
14.12.2007, 15:19
naja, für die BCD-Zahl bei einem Segment brauchst du ja 4 Pins = Bits; da es 4 Segmente sind, würde man jedes mit nem weiteren Pin schalten (Enable-Leitung für z.B. die 4511-Treiber)

Von der Software her: Ich habs bei mir so gemacht, dass die Main-Schleife eigentlich ständig mit der Ausgabe beschäftigt ist.
Ein Interruptpin zählt die Impulse, ein Timer im 0,5sec-Takt rechnet dabei die in den letzten 0,5sec erhaltenen Impulse über nen einfachen Vorfaktor (60 bei 4-Takt/4-Zylinder-Maschinen) in die Drehzhal um. Hat so den Vorteil, dass so gesehen gleich ein Mittelwert über ne halbe Sekunde gebildet wird. Das Messintervall muss halt angepasst werden; Wenns weniger Pulse pro Minute sind, müsste man halt länger messen.

Der erste Versuch war, die zweit zwischen 2 Pulsen zu messen, nur hat das nie wirklich sinnvoll geklappt.

TheHawk
14.12.2007, 15:21
REgistriert der Interrupt Pin auch miunus Spannungen?

oZe
14.12.2007, 15:42
Erlich gesagt weiss ich nicht ob die AVR`s auch negative Interrupts registrieren können aber das findest du mit Sicherheit im Datenblatt. Ich denke aber schon das dies möglich ist.
Andernfalls geht es auch einfahc mit nem normalen IO-Port den du in der Hauptschleife einfach immer abfragst ob er auf Low liegt.
Wie Jaecko schon gesagt hat brauchst du dann noch einen Timer, der dir immer eine feste Zeitspanne realisiert (0,5 Sek, 1 sek o.ä.). Daraus kannst du dann ja berechnen wie viele Takte pro Minute eingehen und hast somit deine Drehzahl. Angenommen du registrierst pro Sekunde 2 Impulse: Somit musst du einfach nur 2 Impulse * 60 Sekunden = 120 rechnen. Je länger du die impulse registrierst desto genauer wird demnach auch die errechnete Drehzahl.

TheHawk
14.12.2007, 15:46
Nun ja, ist ja nicht wichtig wenn der AVR die negativen Impule am Interrupt Pin nicht registriert. Wichtig ist, das sie den µC oder den Interrupt Eingang nicht zerstören.

Johnes
14.12.2007, 16:19
Du könntest dein Takt gleichrichten, dann hast du nur positive Impulse. Oder du lässt durch eine Schottky-Diode nur die positiven Imps durch. Du musst ja nicht alle Zählen! Bei höheren Drehzahlen (ab ca. 100 UpM) ist das völlig egal.

Solange du das Teilerverhältnis anpasst, stimmt die Anzeige bei höheren Drehzahlen.

MfG

Hubert.G
14.12.2007, 17:30
In Datenblatt steht -1V bis VCC +0,5V, als max -1V am Eingang.

oZe
14.12.2007, 17:48
Ja ich würde auch sagen: Einfach eine Diode in den Eingangszweig hängen. Dann verlierst du zwar die Negativen Takte aber das lässt sich ja einfach über die Software ausgleichen. Wenn pro Umdrehung genau ein Postiver und ein Negativer Impuls kommt müsstest du nur einfach die gezählten Takte verdoppeln. Gleichrichten ist natürlich auch eine Möglichkeit, hat aber den Nachteil, dass mehr Hardware benötigt wird.

TheHawk
14.12.2007, 18:07
Gleichrictung mit einer Dioden-Gleichrichterbrücke oder?

Wäre aber auch nicht schlimm wenn die negativen Impulse wegfallen. Was für eine Diode brauch ich da?

oZe
14.12.2007, 20:04
Dafür sollte eine Standart Diode reichen (z.b. 1N4004), da der Spannungsabfall an der Diode für deine Zwecke zu vernachlässigen ist.