Pequi

Angehender Modder
Habe ich so gemacht. Verwende kein float oder double, sondern habe hochskaliert. Siehe Code
Sofern ich deine Ausführung richtig verstanden habe…
 
Zuletzt bearbeitet:

Pequi

Angehender Modder
Ich verwende nach Möglichkeit den kleinstmöglichen Datentyp, um Speicher zu sparen und Geschwindigkeit zu erhöhen. Das Einzige, was ich noch tun könnte, wäre weniger Variablen und Arrays zu verwenden. Aber dann wird der Code nicht so gut lesbar. Allerdings liebe ich gut strukturierten Code und versuche das, so gut es geht, umzusetzen. N.Wirth läßt grüßen…:)

P.S.: diese Autokorrektur nervt…
 
Zuletzt bearbeitet:

Steed

Blasted Kenner
Ich hätt da auch lieber 10.2V anstatt 10200mV stehen...
Das lesen und umsetzen im Kopf dauert mir zu lange.

Dirk
 

Pequi

Angehender Modder
Ich kann ja nur dann ändern, wenn es in der Schleife angezeigt wird, die aufgerufen wird, wenn die Jamdoor offen ist. Da macht die CPU eh nicht viel…Bei der permanenten Überwachung arbeite ich dann mit Integer intern.
 
Zuletzt bearbeitet:

Pequi

Angehender Modder
Update:
- Aufbau der "Lowside" auf Lochrasterplatine vollendet und getestet. Bilder im ersten Posting.
- Die "Highside" wird nicht auf Platine gedengelt, sondern direkt in die dicken Kabel integriert. Spart Leitungslänge zu den Motoren und reduziert damit Verlustleistung.
- Code: Version 0.6: kleinere Verbesserungen und Anpassung der Akkuanzeige mit Kommastellen.
 

Pequi

Angehender Modder
Mir fiel auf, daß bei einer Mosfetsteuerung des Pushermotors die vorhandene Motorbremse mittels der Schalter ja gar nicht funktionieren kann. Ich habe mich an folgenden Thread erinnert: https://blasted.de/threads/mosfet-aktive-motorbremse-active-breaking-system.5645/
und mir früher schon mal vorsorglich einige L298HN-Bausteine besorgt. Diesen Doppel-H-Brückentreiber kann man prima mit dem Arduino ansteuern, wie ich recherchiert habe.
Also wird der Schaltplan nochmals geringfügig geändert werden. Nachdem nun alle "freien" Pins des Arduino belegt sind, werde ich dazu übergehen, die Pins 1,2 und auch die Analog-Eingabe-Pins A1-A6 kann man noch als GPIO-Pins nutzen. Allerdings mit kleinen Einschränkungen, die aber nicht ins Gewicht fallen dürften.
 
Zuletzt bearbeitet:

Pequi

Angehender Modder
Eine weitere Recherche ergab, daß man mit einer Mosfet-H-Brücke eine noch bessere Bremswirkung erzielen können soll. Hat jemand außer Dominik noch Erfahrung mit der Bremswirkung des L298? Reicht die aus? Oder sollte man vllt. doch eine Mosfet-H-Brücke (Halbbrücke würde ja reichen) aufbauen?
 
Zuletzt bearbeitet:

Pequi

Angehender Modder
In einem Forum hat jemand geschrieben, daß man den H-Brückenbaustein zum stärkeren Bremsen mit einem PWM-Signal entsprechend kurzer Dauer in Gegenrichtung beschicken kann, um eine stärkere Bremswirkung zu erreichen. Werde es mal testen...
 

Dominik

Auf Blasted zuhause
In einem Forum hat jemand geschrieben, daß man den H-Brückenbaustein zum stärkeren Bremsen mit einem PWM-Signal entsprechend kurzer Dauer in Gegenrichtung beschicken kann, um eine stärkere Bremswirkung zu erreichen. Werde es mal testen...

Bedenke dabei aber, dass beim Gegenstrombremsen der Motor deutlich stärker belastet wird und der Bremsimpuls sehr kurz ist, was aber für einen Arduino kein Problem darstellen sollte.
 

Pequi

Angehender Modder
Update Hardware:
Also: nach reichlicher Recherche habe ich mich für den (bereits gekauften) L298HN entschieden.
Das hat folgende Bewandnis:
- Wie bereits von Dominik erfolgreich eingesetzt (https://blasted.de/threads/mosfet-aktive-motorbremse-active-breaking-system.5645/), kann dieser Doppel-H-Brücken-Motortreiber zu EINER H-Brücke zusammengeschaltet werden und damit bis zu 4 A schalten
- Desweiteren kann ich diesen nicht nur so schalten, daß man den Motor durch Kurzschluß abbremst, sondern (weil echte H-Brücke) ihn auch "rückwärts" laufen lassen. Will heißen: zum Abbremsen gebe ich über den Arduino ein Umpolsignal und anschließend ein sehr kurz dauerndes PWM-Signal. Nur so lange, wie es dauert den Motor zum Stillstand zu bringen.
- Einen Schaltplan habe ich bereits entworfen und kann im ersten Post begutachtet und bitte auch kommentiert werden (Prüfung auf Fehler erbeten!)
- Zusätzlich habe ich wieder den Pushermotorpositionsschalter an den Arduino angeschlossen, um die Pusherstellung zu detektieren und danach die Motorabschaltung zu steuern (s.o.)

Das alles ist bislang nur theoretisch und im Schaltplan zu bewundern und harrt noch der Ausführung. Muß auch noch sehr schnellschaltende Dioden besorgen.
Wenn es dazu Anregungen gibt, bin ich sehr dankbar dafür.
Weiterhin muß das alles noch im Code berücksichtigt werden und dazu muß ich schauen, wie die Analog-Eingangs-Pins (A0-A5), obwohl nutzbar, auf Digitalabfrage reagieren. Oder ob ich doch die Pins D0 und D1 nutze, dabei aber die Möglichkeit der Seriellen Schnittstelle verliere. Weiters soll es beim Booten aufgrund des Arduino-Bootloaders zu Abfragen/Eingaben der D0/D1-Pins kommen, die evtl. dann die Elektronik verwirren könnten. Evtl. lege ich dann unproblematische Bauteile darauf (LED, Taster, etc).
 

Pequi

Angehender Modder
Bedenke dabei aber, dass beim Gegenstrombremsen der Motor deutlich stärker belastet wird und der Bremsimpuls sehr kurz ist, was aber für einen Arduino kein Problem darstellen sollte.
Gegenstrombremsen machen meine Fahrtregler bei den Monstertrucks alle (und das richtig brutal :) ), das geht hauptsächlich auf Getriebe und abhängige Teile. Wie sollte es den Motor belasten, außer, daß er warm wird? Der hat ja nur ein bewegliches Teil, daß entsprechend gelagert ist (Kugel- oder Gleitlager). Allenfalls ist ein erhöhter Verschleiß an den Bürsten zu verzeichnen. Aber ich glaube nicht, daß bei unserem kurzen Motorgebrauch die Motoren überhaupt ihre Lebenszeitgrenze erreichen. Kann mich aber täuschen…
 
Zuletzt bearbeitet:

Steed

Blasted Kenner
Moin,
gibt es noch andere deutsche Anbieter ausser Conrad die den L298HN anbieten?
Ich hab keine Lust Apothekenpreise zu bezahlen. :{

Dirk
 
Zuletzt bearbeitet:

Lorcan

Lernender Modder
Zuletzt bearbeitet:

Pequi

Angehender Modder
17.3.2017: Version 0.7
- Anpassung des Codes an die Steuerung des L298-Doppel-H-Brückentreibers und der Detektion des Pusherpositionstasters zur Pushermotorabschaltung. Dazu werden die Analog-Pins A1 bis A3 als Digital-Pins verwendet. Allein für die Pushermotorsteuerung werden also ingesamt 4 Pins notwendig, wenn man den Pushermotor flexibel ansteuern will. Ich habe daher zwei Möglichkeiten des Motor zu stoppen:

- Variante 1: Setzen der Steuereingänge des L298 entsprechend einer Motorbremsfunktion (Kurzschlußbremse) analog zur Schaltung in der Stock-RapidStrike, dort allerdings mittels Tastern implementiert.

- Variante 2: falls o.g. Variante den Pushermotor nicht ausreichend rasch abstoppen kann, wird Folgendes gemacht:
Ansteuerung des L298, der den Motoranschluß umpolt und für einen entsprechenden Zeitraum, der noch ausbaldowert werden muß, einen Gegenstrom auf den Motor gibt, bis dieser zum Stillstand gekommen ist.

=> Beide Möglichkeiten sind im Code berücksichtigt und müssen nur entsprechend "umkommentiert" werden.

Anpassung der "DebugUtil.h": Es müssen nun zwei Stringparameter an "DEBUG_PRINT übergeben werden:
Code:
DEBUG_PRINT ("Text", anyType);
oder
DEBUG_PRINT (anyType, "Text");
oder ein Mix aus Obigem

Damit kann man nun etwas aussagekräftigere Ausgabezeilen kreieren, z.B.:
Code:
DEBUG_PRINT ("Spannung", Voltage);

- weitere Codeoptimierungen.
 
Zuletzt bearbeitet:

Steed

Blasted Kenner

Ohha, bei Pollin hab ich nicht geschaut bzw. wurde von Mutter Google nicht erwähnt...
Und Conrad hat Apothekenpreise weil sie für den Versand 5 Euronenundnenbischen nehmen...

Danke.

Dirk
 

Pequi

Angehender Modder
Ich habe nun die gesamte Schaltung in die RS eingebaut. Auf den Testbrett funktioniert die auch ganz gut und tut was sie soll. Aber wenn ich den Pushermotor einschalte, scheint mir die Spannungsversorgung zusammen zu brechen oder es treten starke EMV auf. Der Arduino bootet teilweise neu oder bleibt stehen. Wenn ich den Motor abklemme und gegen eine Led tausche, klappt alles prima. Ich wollte als Nächstes größere zusätzliche Elkos beim L78s05cv einbauen, um die Spannung besser zu stabilisieren. Ich dachte da an jeweils 470uF bei Ve und Va. Bislang habe ich nur einen 47uF-Elko an Ve und die üblichen Kerkos wie im Schaltplan. Ansonsten würde ich versuchen den Wirewrap-Aufbau etwas die Leitungslängen zu verkürzen, sollte es an EMV liegen. Ich habe aber schon alle Leitungen verdrillt. Mir fiele sonst nur ein, Ferritkerne bei den AWG30-Wirewrapdrähten einzusetzen. Habe ich etwas übersehen, oder könnte etwas besser machen?
Bin im Moment etwas genervt. Achja, die Motoren habe ich schon entstört mit je 3 Kerkos gegen Pole und Gehäuse.

Ich werde den Lochrasterplatinenaufbau versuchen neu zu gestalten, so daß ich den Arduino Pro Mini direkt per Stiftleisten auf die Lochrasterplatine stecken und so auf einige Drähte verzichten kann.
 
Zuletzt bearbeitet:

Being blasted

Du bist Dartblaster Fan? Dann lass' dir blasted.de nicht entgehen!
Wir sind die größte deutsche Community rund um Nerf und Dartblaster-Modding.
Finde tausende Anleitungen für Mods, Hilfe bei Problemen, Antworten auf deine Fragen.
Verpasse keine Neuigkeiten aus der großartigen, bunten Welt der Schaumstoff-Guns.
Die Mitgliedschaft im Forum ist kostenlos und die Community freut sich auf dich!

Noch Fragen? Dann kontaktiere uns. Wir sind nur ein bisschen verrückt. ;)

Get blasted

Oben Unten