Attiny13 Frequenzmesser und Drehzahlmesser

von Hermann Nieder
ELO 2008
Elektronik-Labor  Labortagebuch  ELO  

 
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)

 


Elektronik-Labor  Labortagebuch  ELO