Würde meinen, daß du einiges mehr an Infos benötigst; nicht nur den verlinkten Absatz
http://rn-wissen.de/wiki/index.php/G...it_Treiber_ICs
Werbung
Würde meinen, daß du einiges mehr an Infos benötigst; nicht nur den verlinkten Absatz
http://rn-wissen.de/wiki/index.php/G...it_Treiber_ICs
50mA sind ja nun nicht die pralle Masse, so in der Kategorie Handy-Vibrator oder Solarmotor. Die meisten Brücken sind da overkill. Mit zwei N-FETs und zwei P-FETs läßt sich da schon etwas machen, insbesondere da man eine Versorgung nehmen kann, die der Spannung der Ansteuerung entspricht. 100mA hält eigentlich jeder Transistor aus, der typisch im zweistelligen Ohmbereich liegende RDSON bremst den Anlaufstrom. Auf die Wunschdrehzahl (bzw Spannung) kommt man durch eine passende PWM.
Transistoren als Schalter sind ja nicht so schwer zu verstehen, gute Gelegenheit was zu lernen.Transistorschaltungen sind mir irgendwie suspekt
Hier gabs schon mal einen Thread dazu:
https://www.roboternetz.de/community...kleine-Motoren
oder auch
https://www.roboternetz.de/community...rennten-Pegeln
Und hier wird sich auch etwas finden lassen:
http://www.solarbotics.net/library/circuits/driver.html
MfG Klebwax
Strom fließt auch durch krumme Drähte !
Solarmotor triffts relativ gut![]()
Naja, Transistoren als Schalter sind auch einfach, hab ich auch schon öfter frei Schnauze damit gebastelt. Zuletzt um die Hintergrundbeleuchtung eines kleinen TFTs schalt- und dimmbar zu machen, hat auch perfekt funktioniert![]()
Aber sobald sich mehrere Transistoren gegenseitig beeinflussen wirds kompliziert. Wobei diese H-Brücke bei näherer Betrachtung auch nicht mehr ganz so schlimm ist, Sowas hab ich auch schon öfter mit Relais gebaut. Aber bei denen ist der Schaltzustand in jedem Fall eindeutig...
Jetzt aber erstmal lieben Dank für die ganzen Links, die werd ich mir jetzt mal in aller Ruhe antun.
Anschließend werd ich ein bisschen experimentieren und dann meine Ergebnisse berichten!![]()
Ich wollte mich nochmal melden![]()
Also der L293D verrichtet seine Arbeit wunderbar![]()
Nur ein Problem hab ich noch... Der Motor lässt den Arduino abstürzen![]()
Scheinbar passiert das vor allem beim Umpolen. Eine Pause zwischen abschalten des einen Pins und einschalten des Anderen hat nichts gebracht.
Wenn ich permanent die Zustände der Variablen über Serial.print ausgeben lasse, scheint es etwas besser zu werden, aber halt nur ein kleines bisschen.
Einzige Abhilfe bisher ist, den PWM-Ausgang auf 255 aufzudrehen, dann sind die Probleme weg.
Am Motor hab ich mittlerweile drei Folienkondensatoren. 10nF von den Polen zum Gehäuse und 4,7nF zwischen den Polen. Zusätzlich noch 4,7nF direkt am Ausgang des Treibers. Leider vollkommen zwecklos.
Wenn ich die Strippe zum Motor direkt am Treiber ausstecke läuft alles bestens. Also wohl nur ein Problem mit der Entstörung des Motors.
Jemand eine Idee wie ich das in den Griff krigen kann?
Edit: Nicht zu vergessen, in die Spannungsversorgung des Treibers hab ich auch noch einen Elko mit 47uF (wenn ich das jetzt noch richtig erkennen kann) gehängt.
Außerdem hab ich gerade im Wiki gesehen, dass meine Werte am Motor vielleicht ein bisschen Klein gewählt sind. Die Werte hatte mir Google mehrfach ausgespuckt...
Nochmal Edit: Auch ein Abschalten des PWM-Ausgangs beim Umpolen (selbstverständlich mit Wartezeiten, nach dem Abschalten und vor dem Einschalten) hat keine Besserung gebracht. Der Gedanke war dass vielleicht das abbremsen des Motors durch Kurzschließen die Störungen bewirkt hat.
Geändert von Zeitsklave (07.06.2015 um 08:40 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Naja, wie gesagt, ich hab auch schon reichlich Pausen eingebaut, die aber allesamt keine Abhilfe brachten.
Es ist ja auch nicht nur ein resetten des Chips (ein resest ist aber auch häufig dabei), sondern ein richtiger Absturz. Der Motor dreht dann endlos in eine Richtung und Arduino reagiert nicht mehr. die Letzte Ausgabe auf dem Serial Monitor sind dann nur ein paar Sonderzeichen, da wo nur zwei BOOLEAN stehen sollten...
Edit: sieht dann so ungefähr aus:
Schon wieder Edit: Ich hab grad festgestellt, dass bei vorherigem Abschalten des PWM-Ausgangs das Problem nur noch viel schlimmer wird. Auch mit reichlich delays an mehreren Stellen ist hier nichts zu erreichen...Code:1 - 0 1 - 0 1 - 0 1 - 0 ±‚j‚j 1 -�‚j‚j 1 - 0 1 - 0 1 - 0 1 - 0
In der Verzweiflung sieht die Funktion zum Umpolen nach links momentan so aus:
Wobei ich für stop_ms verschiedene Werte probiert hab, momentan bin ich bei 300 - aber ohne spürbare verbesserungCode:void turn_left() { digitalWrite(pin_out_pwm, LOW); delay(stop_ms); digitalWrite(pin_out_right, LOW); delay(stop_ms); digitalWrite(pin_out_left, HIGH); delay(stop_ms); analogWrite(pin_out_pwm, motor_speed); state_out_left = 1; state_out_right = 0; }![]()
Weit besser gehts so:
Wobei auch hier der Wert in stop_ms keine größere Rolle spielt...Code:void turn_left() { digitalWrite(pin_out_right, LOW); delay(stop_ms); digitalWrite(pin_out_left, HIGH); state_out_left = 1; state_out_right = 0; }
Keine Sorge wegen delay an der Stelle, das Timing ist vollkommen unkritisch.
Vermutlich ist Arduino mit der ganzen Geschichte einfach nur unterfordert ^^
Edit³: Lt Empfehlungen des wikis hab ich jetzt zwischen die Motorpole einen 100nF Kondensator gebaut, das Gehäuse direkt auf GND gelegt und eine luftspule für die Anschlussdrähte gebastelt. Effekt: Keiner. Langsam wirds nervig.
Geändert von Zeitsklave (07.06.2015 um 09:52 Uhr)
Lesezeichen