Schuetze mit Entstörungsgliedern


Google-Suche auf MEINE-SCHALTUNG.de :





Dauerkalender


Drehzahlmessung mit Arduino


Arduino Nano mit USB-Anschluss

Arduino Nano

Arduino (Einführung)

In dem Versuch wird die Drehzahl eines Motors gemessen. Die Messung und notwendige Berechnungen übernimmt Arduino Nano. Eine entsprechende Schaltung kann mit wenigen Komponenten schnell zusammengestellt werden. An die Ausgänge des Arduino D10 und D11 wird eine aus vier Digits bestehende 7-Segmentanzeige angeschlossen. Bei der hier eingesetzten Anzeige handelt es sich um ein fertiges Modul, das neben den Anzeige-Elementen auch einen passenden Treiber enthält. Es ist der Anzeigetreiber TM1637. Die Kommunikation zwischen dem Arduino und dem Treiber wird mithilfe der zwei Leitungen (Arduino Anschlüsse D10 und D11) erfolgen. Die Ansteuerung der einzelnen Segmente der Anzeige wird von dem Treiber komplett übernommen. Das Modul enthält auch die notwendigen Vorwiderstände für die Anzeigeelemente. Einbau von zusätzlichen externen Widerständen ist nicht notwendig.

7-Segmentanzeige 4-Digit

7-Segmentanzeige 4-Digit mit Treiber

Schaltungen_mit_TM1637

Turck Näherungsschalter

Turck Näherungsschalter

Induktiver Näherungssensor von Turck

Das Prinzip der Messung ist ganz einfach. An der Motorachse wird ein Gegenstand, der nach jeder einzelnen 360°-Drehung ein Signal generiert, angebracht. In unserem Fall übernimmt die Aufgabe eine einfache Schraube, die nach jeder Drehung einen Näherungsschalter betätigt. Bei dem Näherungsschalter handelt e sich um einen induktiven Näherungssensor von Turck mit der Bezeichnung 4602033. Hier könnte man z.B. auch eine Lichtschranke oder einen Laser einsetzen. Ein mechanischer Endschalter würde dagegen wegen Prellung keine akzeptable Alternative darstellen. Das Arduino-Programm arbeitet in dem Fall mit einem Interrupt. Jede Betätigung eines prellenden Schalters würde zu mehreren Signalen und damit folglich zu falschen Ergebnissen führen. Die Signalleitung wird an Pin D2 des Arduino angeschlossen.

Die Schraube, die eine volle Umdrehung markiert, wird von einem 12 VDC – Motor bewegt. Der Motor JGB37 (Getriebemotor) soll bei 12 V eine Drehzahl von 200 U/Min erreichen. Diese Angabe werden wir im Test überprüfen.

Die Testschaltung wird mit einem festen 12V-Netzteil mit Spannung versorgt. Die unterschiedlichen Motordrehzahlen werden mithilfe eines verstellbaren Netzteils im Bereich von 0 bis 12V eingestellt.

Gleichstrommotor

Gleichstrommotor 12VDC

Gleichstrommotor JGB37

Der Schaltplan

Schaltplan

Schaltplan

Die Testschaltung

Testschaltung

Testschaltung


Das Programm

// ***********************************************************************
// Drehzahlmessung mit Arduino
// 7-Segmentanzeige mit TM1637
// Arduino Nano IDE 1.8.13
// ***********************************************************************
#include <TM1637Display.h>                    // Display Bibliothek
#define CLK 10                                // Anzeige CLK
#define DIO 11                                // Anzeige DIO
TM1637Display display(CLK, DIO);
int PinA = 2;                                 // Signal vom Sensor
String Ausgabe;
unsigned long Zeit_Gemessen;                  // Zeit seit letzter Messung
unsigned long Letzte_Messung;                 // Letzte Zeitmessung
unsigned long Drehzahl;                       // Aktuelle Drehzahl


void setup() {
  display.setBrightness(10);
  display.clear();
  pinMode(PinA, INPUT);
  attachInterrupt(digitalPinToInterrupt(PinA), Berechnung, RISING);
}

void Berechnung () {
  Zeit_Gemessen = millis() - Letzte_Messung;  // Zeit in ms
  Letzte_Messung = millis();
  Drehzahl = 60000 / Zeit_Gemessen;           // Aktuelle Drehzahl
}

void loop() {
  Ausgabe = String(Drehzahl);
  display.showNumberDecEx(Ausgabe.toInt(), 0b00000000, false, 4, 4);
}       
// ***********************************************************************      


Für die Aufgabe wird nur ein kleines Programm benötigt. Das Hauptprogramm „loop()“ beschäftigt sich lediglich mit der Ausgabe der errechneten Drehzahl auf der 7-Segmentanzeige.
Die eigentliche Berechnung der Drehzahl erfolgt in dem Unterprogramm „Berechnung ()“. Das Programm wird einmal pro eine volle Umdrehung der Achse aufgerufen. Für den Aufruf sorgt ein Interrupt, das in „setup()“ aktiviert wurde. Der Aufruf erfolgt jeweils bei steigender Flanke des Signals, das am Eingang D2 überwacht wird. Sobald die steigende Flanke erkannt wird, wird das Unterprogramm „Berechnung()“ aufgerufen und auf der Basis der Zeit, die seit der letzten Flanke verstrichen ist, die Drehzahl errechnet. Die Zeit wird in Millisekunden erfasst.

Auf der Basis der Messdaten kann man die Abhängigkeit der Drehzahl von Spannung grafisch darstellen:

Datentabelle


Drehzahlkurve



Kurzvideo

Kurzvideo


Weitere Themen:


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz