Inhaltsverzeichnis:

Motordrehzahlmessung mit Arduino - Gunook
Motordrehzahlmessung mit Arduino - Gunook

Video: Motordrehzahlmessung mit Arduino - Gunook

Video: Motordrehzahlmessung mit Arduino - Gunook
Video: Arduino Einstieg (16) - Motorregelung - Drehzahl und Drehrichtung - H-Brücke 2024, Kann
Anonim
Motordrehzahlmessung mit Arduino
Motordrehzahlmessung mit Arduino
Motordrehzahlmessung mit Arduino
Motordrehzahlmessung mit Arduino
Motordrehzahlmessung mit Arduino
Motordrehzahlmessung mit Arduino

Ist es schwierig, die Motordrehzahl zu messen? Ich glaube nicht. Hier ist eine einfache Lösung.

Nur ein IR-Sensor und Arduino in Ihrem Kit können dies tun.

In diesem Beitrag werde ich ein einfaches Tutorial geben, das erklärt, wie man die Drehzahl eines beliebigen Motors mit einem IR-Sensor und Arduino UNO / Nano misst

Lieferungen:

1. Arduion uno (Amazon) / Arduion nano (Amazon)

2. IR-Sensor (Amazon)

3. Gleichstrommotor beliebig (Amazon)

4. LCD 16*2 (Amazon)

Benutztes Werkzeug

1. Lötkolben (Amazon)

2. Abisolierzange (Amazon)

Schritt 1: Schritt: 1 Stellen Sie den Betriebszustand von Sensoren und Geräten sicher

Was ist ein IR-Sensor?IR-Sensor ist ein elektronisches Gerät, das Licht aussendet, um ein Objekt in der Umgebung zu erfassen. Ein IR-Sensor kann sowohl die Wärme eines Objekts messen als auch die Bewegung erkennen. Normalerweise strahlen alle Objekte im Infrarotspektrum irgendeine Form von Wärmestrahlung aus. Diese Arten von Strahlungen sind für unsere Augen unsichtbar, aber Infrarotsensoren können diese Strahlungen erkennen.

Was ist ein Gleichstrommotor?Ein Gleichstrommotor (DC) ist eine Art elektrische Maschine, die elektrische Energie in mechanische Energie umwandelt. Gleichstrommotoren nehmen elektrische Energie durch Gleichstrom auf und wandeln diese Energie in mechanische Rotation um.

Gleichstrommotoren verwenden Magnetfelder, die aus den erzeugten elektrischen Strömen entstehen, die die Bewegung eines in der Abtriebswelle befestigten Rotors antreiben. Das Abtriebsdrehmoment und die Drehzahl hängen sowohl vom elektrischen Eingang als auch vom Design des Motors ab.

Was ist Arduino?

Arduino ist eine Open-Source-Elektronikplattform, die auf benutzerfreundlicher Hardware und Software basiert. Arduino-Boards sind in der Lage, Eingaben zu lesen – Licht auf einem Sensor, einen Finger auf einer Taste oder eine Twitter-Nachricht – und sie in einen Ausgang umzuwandeln – einen Motor zu aktivieren, eine LED einzuschalten, etwas online zu veröffentlichen. Sie können Ihrem Board sagen, was es tun soll, indem Sie eine Reihe von Anweisungen an den Mikrocontroller auf dem Board senden. Dazu verwenden Sie die Programmiersprache Arduino (basierend auf Wiring) und die Arduino Software (IDE), basierend auf Processing.

ARDUINO-IDE herunterladen

Schritt 2: Wie funktioniert es?

Was ist also die Logik dahinter??

Es funktioniert ähnlich wie Encoder. Encoder sind für Anfänger ziemlich schwer zu verstehen. Alles, was Sie wissen müssen, ist, dass der IR-Sensor einen Impuls erzeugt und wir das Zeitintervall zwischen jedem Impuls herausfinden.

In diesem Fall sendet der IR-Sensor einen Impuls an Arduino, wenn sein IR-Strahl von Motorpropellern abgefangen wird. Normalerweise verwenden wir Propeller mit zwei Blättern, aber ich habe Propeller mit drei Blättern verwendet, wie in der Abbildung gezeigt. Abhängig von der Anzahl der Propellerblätter müssen wir einige Werte bei der Berechnung der Drehzahl ändern.

Nehmen wir an, wir haben einen Propeller mit zwei Blättern. Bei jeder Motorumdrehung fängt die Klinge den IR-Strahl zweimal ab. Somit erzeugt der IR-Sensor bei jeder Unterbrechung Impulse.

Jetzt müssen wir ein Programm schreiben, das die Anzahl der Impulse messen kann, die der IR-Sensor in einem bestimmten Zeitintervall erzeugt.

Es gibt mehr als eine Möglichkeit, ein Problem zu lösen, aber wir müssen wählen, welche in diesen Codes am besten ist. Ich habe die Dauer zwischen den Interrupts (IR-Sensor) gemessen.

Sie können diese Formel verwenden, um die RPMRPM = ((1/Dauer) * 1000 * 1000 * 60) / Klingen zu messen

wo, Dauer - Zeitintervall zwischen den Impulsen.

60 - Sekunden bis Minuten

1000 - Mühle in Sek

1000 - Mikro bis Mühle

Flügel - keine Flügel im Propeller.

LCD-Display - Der Arduino aktualisiert die Befehls- und Datenregister des LCD-Displays. Welche die ASCII-Zeichen auf dem LCD-Display anzeigt.

Schritt 3: Programmieren Sie Ihr Arduino mit Arduino IDE

#enthalten

Flüssigkristall-LCD(9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR-Sensor INPUT unsigned long prevmicros; // Um die Zeit ohne Vorzeichen zu speichern, lange Dauer; // Zeitunterschied speichern unsigned long lcdrefresh; // Speichert die Zeit für die LCD-Aktualisierung int rpm; // RPM-Wert boolean currentstate; // Aktueller Status des IR-Eingangsscans Boolean prevstate; // Zustand des IR-Sensors im vorherigen Scan Void setup () {pinMode (IR_IN, INPUT); lcd.begin(16, 2); Vorherige Mikros = 0; Vorzustand = NIEDRIG; } Void Schleife () {////////////////////////////////////////// //////////////////////////////////// Drehzahlmessung currentstate = digitalRead(IR_IN); // IR-Sensorstatus lesen if (prevstate ! = currentstate) // Wenn sich der Eingang ändert { if (currentstate == LOW) // Wenn sich der Eingang nur von HIGH auf LOW ändert { Dauer = (micros () - prevmicros); // Zeitdifferenz zwischen Umdrehungen in Mikrosekunden U/min = ((60000000/duration)/3); // U/min = (1/ Zeit Millis) * 1000 * 1000 * 60; prevmicros = micros(); // Zeit für die Berechnung der nächsten Umdrehung speichern}} prevstate = currentstate; // Diese Scan-Daten (vorheriger Scan) für den nächsten Scan speichern //////////////////////////////////// ////////////////////////////////////////////// LCD-Anzeige wenn ((Millis()-lcdrefresh) >= 100) {lcd.clear(); lcd.setCursor(0, 0); lcd.print("Geschwindigkeit des Motors"); lcd.setCursor(0, 1); lcd.print("RPM = "); lcd.print (rpm); lcdrefresh = millis(); } }

Schritt 4: Simulation mit Proteus

Simulation mit Proteus
Simulation mit Proteus

Dieses Projekt funktionierte perfekt, als ich versuchte, dies mit Hilfe von Proteus zu simulieren.

Anstelle des IR-Sensors habe ich einen DC-Impulsgenerator verwendet, der den IR-Impuls ähnlich dem simuliert, der erzeugt wird, wenn die IR-Strahlen auf die Propellerblätter treffen.

Sie müssen je nach verwendetem Sensor Änderungen an Ihrem Programm vornehmen

IR-Sensor mit LM358 muss diesen Befehl verwenden.

if(currentstate == HIGH) // Wenn der Eingang nur von LOW auf HIGH wechselt

IR-Sensor mit LM359 muss diesen Befehl verwenden.

if(currentstate == LOW) // Wenn der Eingang nur von HIGH nach LOW wechselt

Schritt 5: Hardware-Ausführung

Hardware-Ausführung
Hardware-Ausführung
Hardware-Ausführung
Hardware-Ausführung
Hardware-Ausführung
Hardware-Ausführung

Verwenden Sie für schematische Darstellungen die Simulationsbilder oder beziehen Sie sich auf den Programmcode und stellen Sie die Verbindungen entsprechend her. Laden Sie den Programmcode auf Arduino hoch und messen Sie die Drehzahl eines beliebigen Motors. Bleiben Sie dran für meinen nächsten Beitrag und sehen Sie sich meinen YouTube-Kanal an.

Empfohlen: