Drehzahlmesser

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

by Clemens Helfmeier

Last update: 2010-04-5 (initial page)

Diese Seite beschreibt das Projekt Drehzahlmesser.

Funktionsweise[Bearbeiten]

Der Drehzahlmesser erhält von der Lichtmaschine das Signal einer Spule und damit eine zur Motordrehzahl in konstantem Verhältnis stehende Frequenz. Die Aufgabe ist nun, die Grundfrequenz zu ermitteln, in die Motordrehzahl entsprechend des Übersetzungsverhältnisses Motor zu Lichtmaschine umzurechnen und anzuzeigen.

Zur besseren Ablesbarkeit wurden 7-Segment-LED Anzeigen verwendet. Diese sollen auch bei Sonnenbescheinung noch ablesbar sein und im Dunkeln nicht blenden. Dafür ist eine Helligkeitsmessung implementiert, die die Helligkeit der LED-Anzeigen bei Dunkelheit reduziert.

Verbesserungsideen[Bearbeiten]

Kein Projekt ist auf Anhieb perfekt, so auch dieses nicht. Die hier als Version 1 dargestellte Schaltung ist allerdings auch schon die zweite Revision in meiner Entwicklungsgeschichte.

Für eine Version 2 würde ich folgende Sachen ändern:

  • Statt eines Längsregler würde ich einen Step-Down-Wandler nehmen, der mit hohem Wirkungsgrad (>80%) arbeitet. Der Spannungsregler wird wegen des hohen LED-Stromes sehr warm (ca 700mA wenn alle Anzeigen an sind). Das wird ohne SMD in einem 80mm Gehäuse (dafür ist die Platine momentan) recht eng. Es bietet sich der MC34063 an (Reichelt hat den), der im DIP8 Gehäuse kommt und einen internen Schalttransistor hat.
  • Die Eingangsbeschaltung würde ich geringfügig anpassen, so dass der Übergang zwischen "high" und "low" auf etwa 4V liegt. Momentan ist der recht niedrig angelegt.
  • Die LED-Anzeigen, welche ich eingebaut habe, fallen nach ca. 1 Jahr Betriebszeit aus, was definitiv zu wenig ist. Vielleicht muss man den Quellcode so anpassen, dass sie länger leuchten und weniger aus sind und dafür größere Vorwiderstände einbauen (Reduktion des Spitzenstromes).

Quellcode[Bearbeiten]

Der Quellcode ist in C geschrieben. Im Wesentlichen werden drei Aufgabengleichzeitig erledigt:

  • Messung der Helligkeit (synchronisiert mit Anzeige)
  • Anzeige des aktuellen Wertes (über Multiplexen der 7-Segment-Anzeige)
  • Messung der Frequenz

Der weitaus interessanteste Teil ist die Frequenzmessung. Die übrigen beiden Aufgaben (Anzeige und Helligkeit) sind recht simpel gemacht. Für die Helligkeit wird ein Kondensator über eine Fotodiode aufgeladen und die Zeit gestoppt, die benötigt wird, bis der Kondensator voll ist. Das Anzeigen des Wertes geschieht über Multiplexen der 4 7-Segment-Anzeigen. Diese können frühzeitig ausgeschaltet werden, was eine Reduktion der Helligkeit erlaubt.

Zur Messung der Frequenz des Signals von der Lichtmaschine wird diese Signal zuerst abgetastet und anschließend die Autokorrelationsfunktion [math]\displaystyle{ f(x) }[/math] gebildet. Diese wird danach auf die ersten beiden Minima [math]\displaystyle{ \textit{min}_1 }[/math] und [math]\displaystyle{ \textit{min}_2 }[/math] untersucht und zwischen diesen Minima das folgende Integral gebildet:

[math]\displaystyle{ d = \frac{\int \limits_{\textit{min}_1}^{\textit{min}_2} x \cdot f(x) \,\mathrm dx}{\int\limits_{\textit{min}_1}^{\textit{min}_2} f(x) \,\mathrm dx} }[/math]

[math]\displaystyle{ d }[/math] entspricht anschließend der Position des ersten Maximums. Da dieses aber genau die Periode der Eingangsfrequenz in Abtastintervallen angibt, kann daraus diese berechnet werden.

Schaltplan[Bearbeiten]

Main.png

Schaltplan des Drehzahlmessers

Im Schaltplan (und im Layout) sind doppelt so viele Transistoren wie nötig eingezeichnet (übereinander!), damit wahlweise 2n3904/2n3906 oder BC-typen eingesetzt werden können. Das Layout wird damit universell einsetzbar, allerdings ist es in dieser Form nur von Hand herstellbar.

Ressourcen[Bearbeiten]

Verlauf[Bearbeiten]

  • 05.04.2010 Projekt im Wiki erzeugt.