PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 3 Hallsensoren mit dem Arduino eines BLDC (Hub-Motor) auslesen.



3D PrintingCo
15.01.2020, 16:48
Hallo an alle!
Ich bin neu in diesem Forum und sehr glücklich, dass ich hier gelandet bin ;-)
Jetzt zu meiner Frage...
Ich möchte bei meinem Elektroroller die Geschwindigkeit in km/h auf einem Oled 128x64, anzeigen lassen.
Dazu möchte ich die drei verbauten Hallsensoren vom Hubmotor nutzen.
Folgende Dinge konnte ich schon herausfinden:
-Ein Hallsensor wird schlägt auf von LOW auf HIGH um. Die Zeit die vergeht bis der nächste Sensor aktiviert wird, wird in einer Variable gespeichert, ausgewertet und im Display angezeigt, richtig?
-Die Richtung des Bewegung des Motors kann durch die Abfolge der nacheinander aktivierten Sensoren bestimmt werden...

Ich bräuchte nun Hilfe einen Funktionierenden Sketch aufzustellen.
Vielen Dank!
MVG
;)

Rabenauge
15.01.2020, 18:59
Ja, so ungefähr wird das schon funktionieren....wobei genau brauchst du Hilfe?

Klebwax
15.01.2020, 20:47
Ich möchte bei meinem Elektroroller die Geschwindigkeit in km/h auf einem Oled 128x64, anzeigen lassen.
Dazu möchte ich die drei verbauten Hallsensoren vom Hubmotor nutzen.
Folgende Dinge konnte ich schon herausfinden:
-Ein Hallsensor wird schlägt auf von LOW auf HIGH um. Die Zeit die vergeht bis der nächste Sensor aktiviert wird, wird in einer Variable gespeichert, ausgewertet und im Display angezeigt, richtig?

Eigentlich brauchst du nur einen Sensor. Du misst die Zeit von einer High-Flanke bis zur nächsten des gleichen Sensors. Ansonsten fließen alle mechanischen und elektrischen Ungleichheiten deiner Sensoren in die Messung ein. Du musst nur ermitteln, wieviel Flanken pro Umdrehung kommen und wie groß dein Radumfang ist.

Um die Zeit zwischen zwei Flanken zu messen, haben die meissten µC eine "Input Catpture Unit". Damit lässt sich relativ einfach und vor allem unabhängig von Prozessorlaufzeiten und ähnlichem die Zeit zwischen zwei Taktflanken ermitteln. Damit hast du dann deine Fahrgeschwindigkeit.


-Die Richtung des Bewegung des Motors kann durch die Abfolge der nacheinander aktivierten Sensoren bestimmt werden

Solange dein Roller keinen Rückwärtsgang hat, kann ich dir die Richtung auch ohne drei Sensoren sagen; er fährt vorwärts.

Ich habe gerade so was mit einem Hallsensor und einem 2,42" Oled als Drehzahlmesser realisiert. Nur wird dir das nicht viel helfen, da ich keinen Arduino verwende, sondern einen PIC24E auf einem eigenen Board.

MfG Klebwax

3D PrintingCo
17.01.2020, 20:21
Vielen Dank für die Antwort!
Ich habe gelesen, dass bei mehreren Sensoren schnellere und auch genauere Daten entstehen...
Deshalb habe ich eigentlich schon vor alle 3 zu nutzen.

Folgendes möchte ich außerdem auf dem Display anzeigen:

-Richtung (vorwärts-rückwärts)
-Geschwindigkeit in km/h
-Gefahrene km

Vielen Dank
MFG ;-)

- - - Aktualisiert - - -

Ich bin neu in der Arduino Welt...
Ich kenne zwar schon einige Funktionen, doch manchmal fehlt es dann doch an wissen :-(

Ich möchte praktisch die ursprünglich verbauten Hallsensoren aus dem BLDC Motor nutzen und mithilfe der Timer- und Counterfunktion vom Arduino die Daten auswerten und auf einem Oled anzeigen lassen!
So zumindest der Plan.
Ich habe es aber bis jetzt nicht geschafft einen funktionierenden Sketch aufzustellen.
Gibt es da evt. eine Library, die es einfacher zum Programmieren macht?

MVG

Rabenauge
18.01.2020, 01:25
Für Displays gibts so einiges.
Die GFX von Adafruit, zum Beispiel.
Für nen Hall-Sensor wohl kaum-was solte da auch drin stehn.

Wenn deine Sensoren allerdings anderweitig auch verwendet werden, solltest du vorher rausfinden, mit welcher Spannung die eigentlich laufen....sonst könnt es böse Überraschungen geben. Einfach anzapfen kann klappen, muss aber nicht.