Im
Handbuch zum Lernpaket Mikrocontroller [1] ist in Kapitel 6.7 ein
Programmlisting für den Attiny13 als Frequenzmesser abgedruckt.
Überträgt man die zugehörige HEX-Datei in den Mikrocontroller und
startet das Programm, sendet dieser im Sekundentakt als Ergebnis der
Messung jeweils zwei Bytes, mit denen sich die Frequenz z. B. mit einem
Taschenrechner berechnen lässt.
Neulich suchte ich für ein
bestimmtes Vorhaben einen geeigneten Gleichstrommotor und wollte dazu
die Leerlaufdrehzahlen einiger kleiner Elektromotoren aus meinem
Hobbyraum bestimmen. Das Ergebnis der jeweiligen Frequenz- bzw.
Drehzahlmessung wollte ich allerdings unter Windows auf dem PC ablesen
können, ohne einen Taschenrechner benutzen zu müssen.
Ich hatte
gerade einen Opto Reflexkoppler CNY70 zur Hand. Diesen wollte ich zur
Erfassung der Drehzahl verwenden. Er enthält als Sender eine Leuchtdiode
und als Empfänger einen Fototransistor. Ich suchte nach geeigneten
Informationen im Internet und fand Datenblätter des CNY70 [2] mit der
Anschlussbelegung des Bausteins.
Ich stellte beim Experimentieren mit dem Opto Reflexkoppler folgende Überlegungen an: Wenn ich die Leuchtdiode des CNY70 über einen geeigneten Vorwiderstand an eine Gleichspannung von 5 V anschließe, kann ich sicher mit einem Digital-Multimeter den Widerstand der Kollektor-Emitter-Strecke des Transistors des Opto Reflexkopplers messen und damit sein Verhalten in einer Schaltung einschätzen. Wenn ich nun ein reflektierendes Medium, z. B. ein weißes Blatt Papier oder ein glänzendes Stück Metall unmittelbar vor die LED und den Transistor des CNY70 halte, sinkt vermutlich der Widerstandswert seiner Kollektor-Emitter-Strecke, während er beim Wegnehmen des o. a. Mediums wieder zunimmt. Ich führte das Experiment durch. Der CNY70 verhielt sich genau so, wie ich es mir vorgestellt hatte, also konnte ich diese Eigenschaften in meiner Schaltung zur Frequenzmessung an Gleichstrommotoren nutzen, wie es im Folgenden noch beschrieben wird. Dies ist der Aufbauplan für meine endgültige Version einer Schaltung mit dem CNY70, einem CMOS-IC 4093, dessen NAND-Schmitt-Trigger als Inverter geschaltet sind, und der Impulsformumg dienen, sowie einem Attiny13, der die Frequenz misst und das Ergebnis seiner Messung an den angeschlossenen PC über dessen serielle Schnittstelle überträgt. Die ganze Schaltung passt gut auf ein kleines Steckboard. Dies ist ein Bild der praktischen Ausführung . Die rote Leitung oben ist mit + 5 V verbunden, während die blaue unten an Masse, GND angeschlossen ist. Die grüne Leitung ist wie auf der Platine des Lernpakets Mikrocontroller [1] über einen Widerstand von 1 k mit dem Anschluss RxD und eine blaue Leitung mit dem Anschluss GND einer 9-poligen SUB-D-Buchse verbunden. Über sie findet die Kommunikation mit dem PC statt.
Die gelbe Leuchtdiode (2mA-Typ) rechts im Bild neben der grünen Leitung hat einen Vorwiderstand von 4k7 und dient als Betriebsanzeige für die stabilisierte Spannung von 5V. Mit ihr werden der CNY70, das IC 4093 und der Attiny13 versorgt.
Die Anschluss-Paare des CNY70 müssen vor dem Einsetzen des Bauelements etwas verbogen werden, damit sie in die Kontakte des Steckboards hinein passen.
Dies ist die Funktionsweise der Schaltung zur Frequenzmessung:
Beim
Einschalten der Betriebsspannung wird der Transistor des CNY70 von der
LED nicht beleuchtet und ist daher gesperrt. Die Spannung an seinem
Kollektor beträgt ca. 5 V(High-Pegel). Am Ausgang der zweiten der beiden
hintereinander geschalteten Inverterstufen des 4093 stellt sich auch
High-Pegel ein und damit auch am Eingang PB4 des Attiny13 sowie am
Eingang der Inverterstufe, deren Ausgang mit der Katode der roten
Leuchtdiode verbunden ist. An diesem Pin des 4093 stellt sich jetzt
Low-Pegel ein. Da die Anode der LED (2mA-Typ) über 4k7 an + 5 V
angeschlossen ist, leuchtet sie auf.
Legt man nun z. B. ein Stück
weißes Papier (reflektierendes Medium) auf den CNY70 auf, wird sein
Transistor leidend. An seinem Kollektor stellt sich Low-Pegel ein und
auch am Ausgang der beiden Inverterstufen und am Eingang PB4 des
Mikrocontrollers. Die rote LED geht aus, da am Ausgang der mit ihrer
Katode verbundenen Inverterstufe sich High-Pegel einstellt, während ihre
Anode über 4k7 an + 5V liegt, also auch High-Pegel aufweist.
Diese
Zusammenhänge konnte ich nutzen, indem ich zur Messung der Drehzahl
einer Bohrmaschine in diese wie im folgenden Bild einen Bithalter
einsetzte, auf dessen Umfang ich zuvor je ein rechteckiges Stück weißes
und schwarzes Isolierband geklebt hatte, das vor der LED und dem
Transistor des CNY70 meiner Schaltung rotierte.
Beim Einschalten der
5V-Spannung leuchtet beim Betrieb der Bohrmaschine die rote LED auf dem
Steckboard bei jeder Umdrehung ihres Bithalters kurz auf und geht
wieder aus. Die Frequenz steigt dabei mit der eingestellten Drehzahl.
Die rote LED zeigt damit an, dass die Schaltung richtig funktioniert.
Der Mikrocontroller misst diese Frequenz und ist bereit, an einen
angeschlossenen PC die beiden Bytes der Messung zu übertragen.
Auch von diesem Gleichstrommotor kann mit der oben beschriebenen Schaltung die Drehzahl erfasst werden.
Wird der CNY70 auf ein schmales Stück Platinenmaterial aufgelötet, kann auch an dieser Motor-Generator-Einheit die Drehzahl gemessen werden. Die rote, gelbe und grüne Leitung verbinden den Opto Reflexkoppler mit der Schaltung auf dem Steckboard.
Dies ist die Vorderseite der kleinen Platine mit dem CNY70 im Bild oben. LED und Transistor sind zur Erfassung der Drehzahl hier übereinander angeordnet.
Auf den ELEXS-Seiten [3] ist u. a. ein Visual-Basic-Programm zur Messung der Kapazität von Kondensatoren zu finden. Dort kann auch und die notwendige DLL und der Quelltext des Programms heruntergeladen werden. Dieses habe ich für eine Messung von Frequenzen umgestaltet. Das von mir gestaltete Visual-Basic-Programm empfängt nach Auswahl der Schnittstelle COM1 .. COM 9 vom Mikrocontroller zwei Bytes, berechnet daraus die Frequenz und gibt sie in einem Textfeld mit der Einheit Hz aus. Der Anwender kann auch die Ausgabe der Drehzahl anwählen. Diese wird dann in einem weiteren Textfeld als Zahlenwert mit der Einheit U / min ausgegeben und zusätzlich als roter Balken, dessen Länge der Drehzahl entspricht.
Die Programmdateien des Visual-Basic-Programms können einschließlich der Datei elexs.dll hier heruntergeladen und in den Ordner mit der Visual-Basic-Software kopiert werden, um das Programm starten zu können.
Download: DrehzahlVB.zip (40 KB)