Brushless Drehzahlmesser auf Arduino-Basis zum Nachbauen

Steini63

User
Hallo Elektroflieger!

Ich habe in meinem Modellbauer-Leben schon viele optoelektronische Drehzahlmesser gekauft. Mit keinem konnte ich wirklich reproduzierbare Messergebnisse erzielen. Bei brushless Elektromotoren ist noch ein anderes Messprinzip möglich: Wir können wir die Drehzahl an dem Motorzuleitungen abgreifen. Dazu gibt es für kleine Euros eine Adapterplatine, die nach diesem Prinzip ein Rechtecksignal erzeugt, deren Frequenz die Drehzahl anzeigt.

Aufbauend auf diesen Adapter habe ich einen Drehzahlmesser aufgebaut. Ich bin da nicht erste; hier im Forum ist das gleiche Prinzip ebenfalls schon mal umgesetzt worden. Die Besonderheit bei dem hier vorgestellen Gerät: Es werden fertige Module benutzt, die quasi nur noch zusammengesteckt werden müssen. Im Einzelnen brauche wir einen "Hobbywing Brushless RPM Sensor", einen Arduino UNO, ein "LCD KeyPad Shield", einen Widerstand (ca. 1 - 2 kOhm) und Anschlusskabel nach Wunsch. Ein Lötkolben muss nur noch für die Anschlusskabel und den Widerstand bemüht werden. Ich habe alles aus China bestellt und weit unter 10 Euro gelöhnt.

eRpmMeterB.JPG

Herzstück des Geräts ist ein Mikrocontroller (ATmega328p / Arduino UNO). Deshalb ist noch etwas PC-Arbeit nötig:
  • Treiber für den USB-seriell Baustein des Arduino installieren (geht bei Windows 10 meist automatisch).
  • Vorbereitete Firmware auf den Mikrocontroller laden (ist komplett vorbereitet).
Alles ist so vorbereitet, dass weder Mikrocontroller- noch Elektronik-Kenntnisse erforderlich sind!
Deshalb ich den Beitrag bewusst nicht in die Mikrocontroller Rubrik gesetzt.

Haben wir diese Hürden genommen haben, können wir uns über folgende Eigenschaften freuen:
  • Anzeige der aktuellen Drehzahl.
  • Anzeige der maximalen Drehzahl.
  • Anzeige und festhalten einer Drehzahl bei Tastendruck. Ermittlung des Mittelwertes während des Tastendrucks.
  • Anzeige und Einstellmöglichkeit der Polzahl des Motors.
  • Möglichkeit, das Gerät zu kalibrieren.
  • Ausgabe der Messwerte über die serielle Schnittstelle des Arduino.
Alles weitere auf meiner Homepage:
http://www.franksteinberg.de/eRpmMeter.html

Schöne Ostertage wünscht
Frank Steinberg
 

Steini63

User
Brushless Drehzahlmesser - Aktualisierung

Brushless Drehzahlmesser - Aktualisierung

Nach der Devise "Jeder Fehler finden einen, der ihn macht" habe ich die Motoranschlüsse versehentlich direkt (ohne RPM Sensor) an den Arduino angeschlossen :mad:. Das hat der Eingang des ATmega leider nicht überstanden.

Tests haben ergeben, dass die Schaltung auch mit sehr hochohmigen Widerständen (bis 1 MOhm getestet) in der Signalleitung klar kommt. Bei meinem aktuellen Gerät habe ich deshalb einen 100 kOhm Widerstand ergänzt und die Beschreibung entsprechend angepasst.


Grüße
Frank
 

Steini63

User
Begeisterung zum Nachbau

Begeisterung zum Nachbau

Schön und schön dokumentiert, Frank.

Nur hält sich Begeisterung, selber mal so was zu machen und den Lötkolben an zu werfen, wohl in Grenzen. ;)

Grüße und schöne Feiertage - KH

PS. Mein letzter Versuch, da jemanden zu animieren, das nach zu bauen, findet sich hier.
http://www.rc-network.de/forum/showthread.php/674621-BL-Motor-Drehzahlmessung-mit-Arduino
Reaktion = 0.

Ich wünsche dir da mehr Glück!

Naja, zu aller Erst habe ich das für mich selber gebaut. Deinen Ansatz hatte ich erst gefunden, als ich schon fast fertig war :eek:. Wenn es denn keiner nachbauen will, breche ich nicht in Tränen aus. Allerdings hatte ich mit etwas mehr Resonanz gerechnet, weil
  • fast nichts zu "bauen" ist,
  • null zu programmieren ist und
  • die Hardware inzwischen sehr preisgünstig zu haben ist.
  • Als weiteres Argument könne man anführen, dass dieselbe Hardwarebasis mal eben (durch "umflashen" mittels der BLHeliSuite) in eine Programmierbox für BLHeli ESCs mutiert .
Ich werde noch mal Bezugsquellen aus DE liefern. Vielleicht ist die Beißhemmung für China-Bestellungen noch zu hoch :confused:

Schöne Restostern & Danke für die wohlwollenden Worte
Frank
 

Steini63

User
Einkaufen in DE

Einkaufen in DE

So, hier die angedrohten möglichen Bezugsquellen aus dem Inland:

Brushless RPM Sensor - 5,90 Euro:
Arduino UNO mit USB-Kabel - 6,99 Euro:
LCD Keypad Shield - 5,20 Euro:
:cool: Damit sind die Hauptbauteile für < 20 € zu haben! :cool:

Wenn es dann noch ein Gehäuse sein darf (für den Arduino UNO) - 3,49 Euro:

Frank
 
Hallo

Kann man zum Abgleich auch Testsignale aus dem Internet holen?
Z.B. You tube 1kh signal. Wegen Genauigkeit.

Da das Teil gut zu meinem "Antriebsteststand" (semi-laienhaft) passt
und ich eh "Ardunio" am lernen bin:
1 Nachbauer

Gruß
Tom
 

UweHD

User
Die Idee ist super und die detaillierte Anleitung klasse!

Für mich persönlich nur weniger interessant, weil ich meistens telemetriefähige ESC's nutze, die mir eh die Drehzahl anzeigen. Wer sowas nicht verwendet, hat mit dem Teil hier aber für wenig Geld & Aufwand eine schöne Messmöglichkeit
 

Steini63

User
Kann man zum Abgleich auch Testsignale aus dem Internet holen?
Z.B. You tube 1kh signal. Wegen Genauigkeit.

Es gibt sogar Signalgeneratoren für die Soundkarte. Leider sind die Pegel zu gering, die von der Soundkarte geliefert werden. Dann ist es letztlich egal, ob eine Datei, ein Stream oder ein Signalgenerator den Ton erzeugt.

Da das Teil gut zu meinem "Antriebsteststand" (semi-laienhaft) passt
und ich eh "Ardunio" am lernen bin:
1 Nachbauer

Fein :). Der Quelltext ist im Download enthalten; ist aber LunaAVR und nicht das für Arduino sonst benutzte GNU C/C++.

Frank
 

Steini63

User
Brushless Drehzahlmesser - Update

Brushless Drehzahlmesser - Update

Hallo!

Es gibt ein kleines Update für das eRpmMeter:
Das Gerät kann die Polzahl eines brushless Motors ermitteln und anzeigen. Es hat sich gezeigt, dass einigermaßen zügiges Drehen mit der Hand verwertbare Impulse erzeugt.

Genaueres und ein aktualisierter Download auf meiner Homepage:
http://www.franksteinberg.de/eRpmMeter.html

Grüße
Frank Steinberg
 
hallo Steini, Kalle und andere Experten,

Ich verwende für meinen in Arbeit befindlichen Motorteststand den gleichen Sensor.

Dabei habe ich folgendes Phänomen festgestellt: Die Anzahl der Pulse pro Umdrehung ist halb so groß wie ihr das beschreibt. Bei zwei zufällig vorhandenen Motoren habe ich 7 p/U gemessen.
Die Drehzahlmessung funktioniert absolut korrekt, mit gekauften optischen Gerät verglichen. Ich muss in der SW halt 7p/U konfigurieren.

Die Software dazu habe ich vor vielen Jahren für einen ATmega168 geschrieben und mit einem optischen Sensor hat das auch funktioniert. Jetzt bin ich auf den BLDC Sensor umgestiegen und hab den code in die Arduino Umgebung übernommen. Funktioniert auch, ergibt aber nur halb so viel Pulse wie erwartet.
Wie habt ihr den Sensor am Motor angeschlossen? Ich habe die beiden Drähtchen an zwei Motoranschlüsse gelötet.

VG, Gerd
 

Steini63

User
Hallo Gerd,

schönes Projekt, dein Prüfstand!

7 Impulse pro Umdrehung bei einem 14-Poler messe ich auch. Zum Bedienen finde ich die Eingabe der Polzahl benutzerfreundlicher.

Grüße
Frank
 

VOBO

User
Mich würde das Projekt auch interessieren, wenn es anpassbar wäre.
Also mit Quellcode und nicht nur das .hex-file.

Ich verwende nur Arduino Pro Mini.

Gruß Volkerb
 

Steini63

User
Mich würde das Projekt auch interessieren, wenn es anpassbar wäre.
Also mit Quellcode und nicht nur das .hex-file.

Ich verwende nur Arduino Pro Mini.

Gruß Volkerb

Quelltext ist im Download dabei; allerdings ist das Ganze in Luna-AVR geschrieben.

Wenn du einen Pro Mini verwenden willst, geht das natürlich. Du verzichtest halt auf die Möglichkeit, das LCD Keypad Shield aufstecken zu können.

Viele Grüße
Steini
 
Servus frank, habe es nachgebaut, funktioniert, teilweise.
Das Kalibrieren mit netzfrequenz funktioniert nicht, kann keine Frequenz finden.
Oder ich habs nicht kapiert: 1. Zeile CPUfrqu: 16 000. die verändere ich bis rechts unten 3000rpm angezeigt werden. Bei mir steht da allerdings 0rpm
Was bedeutet das links? 000=0, bzw 103=2

Die Pol-count bekomm ich auch nicht hin. Manuelles drehen bewirkt nichts, wenn ich den Motor laufen lasse kommt schon ein POLE-COUNT.

Der rest funktioniert, also die drehzahlanzeige und das einstellen der Polzahl.

Danke schon mal, das Flaschen war sehr einfach

Franz
 

Steini63

User
Hallo Franz, schön dass es einen weiteren Nachbauer gibt!

Servus frank, habe es nachgebaut, funktioniert, teilweise.
Das Kalibrieren mit netzfrequenz funktioniert nicht, kann keine Frequenz finden.
Oder ich habs nicht kapiert: 1. Zeile CPUfrqu: 16 000. die verändere ich bis rechts unten 3000rpm angezeigt werden. Bei mir steht da allerdings 0rpm.
Bei 0rpm empfängt das Gerät noch keine Netzfrequenz. Bring mal ein Stück Kabel direkt an Pin3 des Arduino an und leg es direkt auf ein spannungsführendes Netzkabel (natürlich nur auf die Isolierung; auf keinen Fall eine elektrische Verbindung zur Netzspannung herstellen!). Den Drehzahlsensor zum Kalibrieren NICHT verbinden!

Was bedeutet das links? 000=0, bzw 103=2
Da zitiere ich mal meine Homepage:
Tasten-Werte :
Die Tasten werden beim LCD Keypad Shield ausgewertet, indem verschiedene Spannungsteiler-Widerstände aktiviert werden. Die resultierenden Spannungswerte müssen über den AD-Wandler Kanal 0 gemessen werden. In der unteren Zeile links werden die 8bit-Wandlerwerte und die resultierende Kennung der Taste angezeigt. Das kann zum Debuggen verwendet werden, falls die Tasten mal nicht so wollen wie vorgesehen.


Die Pol-count bekomm ich auch nicht hin. Manuelles drehen bewirkt nichts, wenn ich den Motor laufen lasse kommt schon ein POLE-COUNT.
Schließ mal einen Motor OHNE Stromversorgung / Motorcontroller an und überbrück' zum Testen den Widerstand an Pin3. Wenn es dann geht, such einen Wert, bei dem es noch sicher funktioniert. Den baust du ein, BEVOR du einen Motor bestromt anschließt. Der Widerstand ist ein Schutzwiderstand für den Arduino.

Viel Erfolg und berichte, ob es geklappt hat!
Steini
 
Ansicht hell / dunkel umschalten
Oben Unten