MobiFlight Community Support

Welcome to the forum for MobiFlight! Feel free to reach out to the community in case you have questions, issues or just want to share great ideas or details about your latest home cockpit project.

You like MobiFlight? Donate via PayPal and support the MobiFlight development. Thanks! 

05/03/2024 - This forum is read-only

The community support for MobiFlight has moved exclusively over to our Discord server. Register for free and enjoy more interactive functions like image and video upload, voice chat. More than 7,000 registered users around the world make it a great experience!

See you on our MobiFlight Community Discord server.

A HUGE Thank You to everyone who participated in the forum, especially obviously to Pizman and Stephan who did an outstanding job over so many years providing an incredible service to the MobiFlight community.

The forum is still providing a lot of good content, hence we keep this information accessible.

icon
Avatar
DeltaBravo
From: Schneeberg, Germany
Posts: 90
Hallo Gemeinde.

Ich möchte mich den Motoren für meine A/T widmen
und habe mir zwei L298N bestellt (H-Brücken, um die Drehrichtung von DC Motoren Steuern zu können).
Daran gibt es 3 Inputs, die an den Arduino gehören

EN ist enable und muss generell PIN ON (High Level) sein, damit der Motor überhaupt drehen kann. Hier könnte ja gleich der A/T Zustand ran.

IN1 und IN2 sind da, um die Polung zu tauschen und sagen dem Motor damit "bitte im Urzeigersinn" oder "bitte gegen den Uhrzeigersinn" drehen. Die Spannung kommt dabei getrennt an das Board und nicht vom Arduino.
Man spricht in der Beschreibung dieses L298N von High-Level und GND an diesen PINs. Ist ein Arduino PIN, der gerade nicht High-Level ist automatisch GND?

Sagen wir Urzeigersinn: IN1 hängt an Arduino PIN2 ON und IN2 hängt an Arduino PIN3 OFF... dreht der Motor dann im Urzeigersinn?
Und nun PIN3 ON und PIN2 OFF... Dreht gegen den Uhrzeigersinn?

Ich habe aber auch einen 28BYJ Stepper mit ULN2003A zu Hause. Würde das damit auch gehen? Ich bräuchte keine Nullstellung, nur vorwärts und rückwärts.

Vielen Dank, für die Mühe.
Stephan
[Last edited by DeltaBravo, 2020-12-29 17:32]
PMDG based 747 Homecockpit, 3 Beamer
P3Dv4.3 QOTSII FSUIPC 5full 6xArduinoMega CDU cpFlight 747MCP
2020-12-29 17:20
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
Da wird sich wohl Stephan austoben müssen. ( Alles folgende von mir nur Vermutungen!!!!)

Hab mal schnell gegooglet aber wohl nicht das gefunden wa du beschreibst.... Die Teile die ich gefunden habe, haben keien EN Pin.
Vielleicht legst du uns mal nen Link / Datenblatt etc hier rein.

Grundsätzlich sollte das ganze machbar sein ( Hab kürzlich auf English in nen anderen Topic darüber gesprochen)

Was mir bei deiner beschreibung "strange" vorkommt ist die Zahl von 3 Pins.
Auch der EN Pin ( Der sozusagen definiert ob der Motor dreht oder nicht) müsste ein GRD Potential vom Mega haben. Sonst geht das nicht.
Womöglich nutzt er aber auch den GRD der Stromversorgung des Motors selbst..... Dann muss aber zwingend dieser GRD mit dem Mega GRD verkabelt werden.

Eine andere Idee wäre es das einer der 2 zusätlzichen Pins ein GRD Pin ist.... Also GRD sowohl für den AN/AUS Pin als auch für den Richtungs-Pin.
In diesen Fall hättest du nur einen Pin der die Drehrichtung bestimmt.... Z.b. HIGH heist Links rum.... LOW heist rechts rum.
Falls das GRD anders läuft wie vorhin gesagt könnte deine Idee aber auch richtig sein... Also 2 Richtungspins.... Pin 2 High ist z.b. Links.... Pin 3 High ist Rechts. ( Und Beide High lässt den Motor explodieren :P )

Warte mal auf Stephan.... Und schick uns wenns geht vorher noch nen Link !
Good Luck !
2020-12-30 03:45
Avatar
DeltaBravo
From: Schneeberg, Germany
Posts: 90
Hi Pizman!

Beim suchen nach nem vernünftigen Bild bin ich gleich über ein passendes Video gestolpert :scared:

https://www.youtube.com/watch?v=dyjo_ggEtVU&t=323s

...da hängen die 4 Inputs auch an einem Mega und das dürfte meine 1. Frage klären. Also bekomme ich den DC Motor (2 Kabel) damit auch zum links- und rechtslaufen.
Wenn ich nun 4 Ausgänge - immer 2 als Paar - schalten muss, brauche ich eine geeignete Logik. Da kommt Ihr bestimmt wieder ins Spiel.

Und nun mal zu meiner Idee... dazu habe ich schnell folgende Zeichnung gemacht:



Der Throttlehebel sitz lose auf der Welle. Bediene ich ihn ohne A/T ON, so stelle ich die Potis normal über LeoBodnar als Achsen - der Endschalter muss ignoriert werden (Logik?). Einen gewissen Widerstand beim Bewegen erzeugt die Reib-Kupplung natürlich, aber der Motor kann sich nicht mit drehen, da Schneckengetriebe.
Bei A/T ON schiebe ich den Schubhebel nach vorn und löse den vorderen Endschalter aus (Bewegung <1mm) und der soll die Taste F3 auslösen, denn im A/T Betrieb funktionieren die F1-F4 Tasten ja noch, im Gegensatz zu den Analogen Inputs. Der Motor soll mich dann bei der Bewegung unterstützen. Mal sehen, wie realistisch sich das anfühlt.

Ansonsten können die beiden Endschalter nun auch den erwünschten Input Override schalten oder auch etwas trennen, wenn man sie in reihe schaltet.
Was haltet ihr davon?

So, jetzt habe ich wieder alles in einen Thread gepackt :-/
Das Thema benenne ich wohl gleich nochmal um...

Einen Guten Rutsch nach 2021,
Stephan
[Last edited by DeltaBravo, 2021-05-17 13:06]
PMDG based 747 Homecockpit, 3 Beamer
P3Dv4.3 QOTSII FSUIPC 5full 6xArduinoMega CDU cpFlight 747MCP
2020-12-30 20:56
Avatar
StephanHo
Moderator
From: EDDG, Germany
Posts: 1867
Supporter
Hi Namensvetter!

Vorab: Nur GND ist GND. Dies ist das unabdingbare Referenzpotential einer jeden Schaltung.

Ein Mega-Pin kann das Potential vom GND bekommen, ist aber nicht exakt 0V oder eben GND. Als Eingang kannst du diesen auf GND legen und er wird auch korrekt ausgewertet. Anders sieht es aus, wenn du mit einem Pin, den du als Ausgang definierst. Hier braucht es einen Blick ins Datenblatt, was der Mega spannungstechnisch an diesem Ausgang als LOW-Level einstellt. Der Pin wird nämlich nicht auf GND geschaltet, sondern auf den LOW-Level und das ist eben kein GND-Potential.

Wie bei vielen Dingen hilft hier ein Blick ins Datenblatt, in diesem Falle des Mega.

Das Datenblatt findest du hier:
https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf

Der LOW-Level-Output eines Mega kann max. 0,4V betragen. Dies reicht für die Auswertung von Logik völlig aus, darf aber in keinem Falle mit GND verwechselt werden (siehe Seite 362, Tabelle 31-7).

Bei deinem L298N, dessen Datenblatt du hier findest

https://www.st.com/resource/en/datasheet/l298.pdf

kannst du auf Seite 2 nachlesen, daß als Eingangsspannung der Bereich von -0,3 bis 7V zulässig ist (Input and Enable Voltage).
Auf Seite 3, bei den Electrical Characteristics, kannst du nachlesen, daß als Eingangsspannung an den Pins 5, 7, 10 und 12 der Bereich von -0,3 bis 1,5V als Input Low Voltage akzeptiert wird. Input High Voltage wird ab 2,3V angenommen.

Als Ergebnis steht da für mich fest, daß du den L298 direkt mit einem Mega-Pin ansteuern kannst, indem du den Mega-Pin einfach als LED-Ausgang definierst und damit IN1 und IN2 des L298 ansteuerst.

In jedem Fall muß aber der GND des Mega mit dem GND des L298 (externe Spannung des L298) verbunden werden, damit ein gemeinsames Bezugspotential vorliegt.

Den 28BYJ-48 mit ULN2003A würde ich eher als zu schwach abtun und nicht benutzen. Der BYJ zieht max. 240mA, der L298 geht bis hinauf zu 3A und ist somit für größere Ströme besser geeignet.

Ebenso ist somit der EN-Pins des L298 durch den Mega bzw. MF steuerbar.

Der L298N ist übrigens doppelt ausgelegt, besteht also aus 2 identischen Hälften. Wenn du nur einen DC-Motor damit steuern möchtest, brauchs du also nur einen halben L298N. Für einen Stepper dann beide Hälften.

@Pizman:
Die EN-Pins sind lediglich dafür da, den Motor zu enablen, also freizugeben, wenn er auf 5V liegt. Liegt EN auf Low-Level geht der Motor in den sog. Free Running Motor Stop und ist somit frei bewegbar. IN1 und IN2 müssen lediglich gegensätzliches Potential haben, um die Drehrichtung zu bestimmen. Ist deren Potential gleich, fliegt nicht der Motor auseinander, sondern läßt ihn schnell stoppen. Schon durchdacht der Chip ;-)

Dann hoffe ich mal, daß alle Fragen beseitigt sind.
Guten Rutsch!
Grüße,
Stephan (Time: UTC+2)
2020-12-30 21:04
Avatar
DeltaBravo
From: Schneeberg, Germany
Posts: 90
Hallo Stephan,

da haben wir ja zeitgleich ne Menge geschrieben. Vielen Dank fürs intensive studieren dieser Datenblätter und das verständliche zusammenfassen :thumbup:
Das mit der doppelten H-Brücke in einem L298 habe ich gelesen und daher 2 bestellt (747).
Wenn EN LOW ist, könnte ich den Motor also leicht bewegen? Dann könnte man vielleicht sogar die Kupplung weglassen, wenn man einen Motor ohne Schneckengetriebe verwendet!? :-/

Viele Grüße,
Stephan
PMDG based 747 Homecockpit, 3 Beamer
P3Dv4.3 QOTSII FSUIPC 5full 6xArduinoMega CDU cpFlight 747MCP
2020-12-30 21:13
Avatar
StephanHo
Moderator
From: EDDG, Germany
Posts: 1867
Supporter
Hi Stephan,

empfehle einen Versuchsaufbau, um das auszuprobieren. Mega - L298 - Motor und los.Am Besten, bevor du das Geld für die Kupplung ausgibst ;-)
Grüße,
Stephan (Time: UTC+2)
2020-12-30 21:17
Avatar
DeltaBravo
From: Schneeberg, Germany
Posts: 90
Die Zeichnung ist der Versuchsaufbau. Wird alles selbst gefräst und kostet damit nix :)
Was haltet ihr von der Idee?
PMDG based 747 Homecockpit, 3 Beamer
P3Dv4.3 QOTSII FSUIPC 5full 6xArduinoMega CDU cpFlight 747MCP
2020-12-30 22:21
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
Hiho

Freu mich schon das Teil auf Discord mit etwas Fachsimpeln über Headset zu sehen.

Auf den ersten Blick ein sehr interessanter Weg. Besonders die Sache die Stephan ansprach das man den Motor sozusagen in eine Art "Leerlauf" legen kann.

Die Idee mit dem F3 drücken per Taster sehe ich etwas skeptisch. Glaube nicht das dies einen guten Erfolg bringt.

Im Umkehrschluss halte ich diesen Aufbau ( 2 Taster) als "Sensor" für Handbetrieb" interessant.
Hier sollten wir aber über eine "elektrische" Kombination nachdenken.
In Mobiflight 2 Inputs zu nehmen und per Config zu sagen " Arbeite wenn weder A noch B gedrückt ist" dürfte zu kompliziert sein und brauchen wird nicht.
Ich würde hier beide Taster zusammenkablen und als EINEN Input sehen.... Beide losgelassen = Input LOW .... Einer von Beiden Gedrückt = Input High.

Zum anderen Punkt mit dem TakeOff und dem "Unterstützen der Bewegung durch den Motor"
Hier hast du jetzt eine "Dritte Variante" ins Spiel gebracht die wir bisher noch nicht auf dem Schirm hatten.
Situation 1: Motor bewegt den Throttle .... Das sollte gehen.
Situation 2: Hand bewegt den Throttle ( und überschreibt den Motor mit Kupplung oder durch Elektrische schaltung) . Auch das sollte gehen.
Neue Situation 3: Motor soll arbeiten OBWOHL Hand auch arbeitet. Hier denke ich ist basteln angesagt und testen OB und WIE das möglich ist.
Good Luck !
2021-01-03 15:24
Avatar
DeltaBravo
From: Schneeberg, Germany
Posts: 90
Hallo Gemeinde!

Nach einem halben Jahr kann ich diesen Thread endlich wieder hoch holen. Ich war eine Weile verzweifelt und hatte aufgegeben, weil kein sinnvolles Teil mehr aus meiner CNC Fräse kam. Die benötigten Zahnräder waren oval, die Mittenbohrung außerzentrisch, die Verzahnung wie ein Kegelrad und die Fräser brachen ab. :confused:
Deshalb hab ich die gesamte Führung der CNC Fräse neu gemacht. Nur um dann festzustellen, dass die Zeichnung meiner Zahnräder in SketchUp und die erzeugten Fräsdaten in CamBam nicht harmonieren.
Das hat alles in allem bis jetzt gedauert. Aber nun läuft der oben auf dem Bild gezeigte Aufbau und ich nutze noch nichteinmal die Taster (zum Erkennen einer Handeinsteuerung) am Schubhebel. Die Rutschkupplung übernimmt alle Aufgaben. Ich vergleiche derzeit nur den vom Poti gewünschten Wert mit dem Schubhebelzustand in der PMDG (beides Offsets aus der FSUIPC Liste). Je nachdem, ob diese beiden Werte übereinstimmen oder größer/kleiner sind werden 2 Pins in Mobi angesteuert. Diese lassen den Motor dann vorwärts oder rückwärts laufen. Das ganze funktioniert und trifft auch irgendwann den exakten Wert von Schubhebelpoti meines HC Throttles und dem Wert, der aktuell vom softwareinternen Autothrottle angezielt wird (Schubhebelposition im Sim) - dann steht das Throttle endlich still.
Da Regelungstechnik beim Studium nicht zu meinem, sagen wir mal, Spezialgebiet gehört hat, pendelt mein Hardwareschubhebel jetzt um den Zielwert. Er pendelt also teilweise eine Minute mehrere Millimeter vor und zurück, bis Joystick und Flusiinterner Wert sich angeglichen haben. Dazu werde ich auch noch ein Video einstellen, wo man den wirklich einfachen Aufbau und das, was ich hier immer versuche zu beschreiben, auch versteht.
Mein erster Versuch einer Regelung läuft über die Differenz der beiden Werte. Wenn diese innerhalb von 250 liegt, wird nicht weiter gesteuert. Die Werte des Potis gehen von 0 bis knapp 16000. Umkehrschub wird negativ dargestellt. Damit erreiche ich die oben genannte Zeit <1min.
Die Drehrichtung der Motoren steuert eine H-Brücke, je nachdem, welcher der beiden Pins des Arduinos High Level hat. Diese H-Brücke kann auch per PWM die Motor Drehzahl steuern. Ließe sich das nicht nutzen, um bei Annäherung an den Sollwert ganz langsam zu fahren?

Mit besten Grüßen an alle,
Stephan
[Last edited by DeltaBravo, 2021-05-19 15:33]
PMDG based 747 Homecockpit, 3 Beamer
P3Dv4.3 QOTSII FSUIPC 5full 6xArduinoMega CDU cpFlight 747MCP
2021-05-19 13:23
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
Servus!

Wir haben gerade ein identisches Projekt ( Ohne Handdetektor) in Discord ( Italienischer User)
Stephan hat da das meiste gemacht und die Configs geschrieben.....

Passt jetzt wie die Faust aufs Auge..... Denn den gleichen Problemfall habe ich auch dort vorrausgesagt und er trat ebenso auch dort ein !
Ich würde vorschlagen wir setzten uns bei Gelegenheit mal zu dritt ( Der italiensiche Nutzer kann nicht deutsch und english ist unproduktiv für uns drei) zusammen.

Meld dich bitte mal auf DISCORD bei mir oder Stephan..... Linke den Topic damit wir wissen worum es geht.
Am besten Discord auf dem PC auf dem der Sim liegt.

Dann können wir direkt ein paar Ideen testen ( Der User aus Italien hat noch keine Kupplung verbaut..... Deshalb war unser bisheriges Brainstorming (Stephan und Ich) nur Theorie.)
Bei dir können wir unsere Formeln und Workarrounds direkt testen !
Good Luck !
2021-05-19 15:07
Avatar
DeltaBravo
From: Schneeberg, Germany
Posts: 90
Hier noch das Video :P

https://youtu.be/S8aF3yrKhmQ
PMDG based 747 Homecockpit, 3 Beamer
P3Dv4.3 QOTSII FSUIPC 5full 6xArduinoMega CDU cpFlight 747MCP
2021-05-19 15:36
icon