ES FUNKTIONIERT!! Als ich die Spannung nochmal messen wollte habe ich rutinemäßig alles angesteckt und nochmal so getestet und siehe da es ging!! Aber leider nur ein Motor. Als ich alles mögliche getestet habe,bin ich zu dem Entschluss gekommen,dass es nur an der Verbindung zum Arduino liegen kann. Nach einer Weile ist mir noch Mal meine Hypothese in den Sinn gekommen,dass es keinen Sinn macht zwei Verschiedene Ansteuerungen zu benutzten für die selben Motoren die das selbe tun sollen,also habe ich alle 4 Pins als PWM Pins angeschlossen und siehe da sie haben sich gedreht.
Aber ich fürchte wir sind leider noch nicht ganz fertig. Die Motoren drehen sich nur mit einem kleinen "Schubser" und sobald die Räder einen Untergrund berühren bleiben sie stehen. Außerdem dreht sich ein Motor stärker als der andere. Kann man die ganzen Probleme mit einer zweiten Spannungsversorgung für die Motoren alleine lösen?
Wenn sich die Motoren drehen, dabei aber völlig kraftlos sind, dann funktioniert es wohl doch nicht.
Welche PWM-Werte werden ausgegeben und an welchen Eingängen des Treibers werden sie eingespeist? Enthält deine Hypothese vielleicht auch die Befeuerung der Richtungseingänge mit PWM?
Es ist schon Mal besser,als wenn sich die Motoren überhaupt nicht drehen würden,auch ohne Schubser. Und sobald man den einen Motor einen Schubs gegeben(manchmal auch ohne) hat,hatte der schon ordentlich Kraft.
Wenn du damit das Programm meinst:
Sie werden in den Eingängen 2/7,bzw. 15,10 eingespeist.
const int Motor1Pin1 = 8;
const int Motor1Pin2 = 9;
const int Motor2Pin1 = 10;
const int Motor2Pin2 = 11;
void setup() {
**pinMode(Motor1Pin1, OUTPUT);
**pinMode(Motor1Pin2, OUTPUT);
**pinMode(Motor2Pin1, OUTPUT);
**pinMode(Motor2Pin2, OUTPUT);
}
void loop() {
**GoForward();******
}
void GoForward(){
**digitalWrite(Motor1Pin2, LOW);
**digitalWrite(Motor1Pin1, HIGH);
**digitalWrite(Motor2Pin2, LOW);
**digitalWrite(Motor2Pin1, HIGH);
}
Was meinst du damit? Etwa,dass ich die Richtungseingänge mit den PWM Signalen geschrottet hab?
Ich verstehe jetzt nur noch Bahnhof.
Das ist grundsätzlich in Ordnung. Der jeweilige Motor kriegt immer dann Strom ab, wenn die beiden Eingangspaare Input1 / Input2 sowie Input3 / Input4 mit jeweils gegensätzlichen Pegeln angesteuert werden. Wenn du beide Eingänge gleichzeitig mit PWM befeuerst, dann ist es nicht mehr so ganz einfach vorherzusagen, was passieren wird.
Nein, nein, so lange die Signalpegel im erlaubten Bereich sind, kann man die nicht durch die PWM beschädigen. Wohl aber ist eine Überlastung der Treiberstufen denkbar, wenn beständig Strom in die eine Richtung durch den Motor angeschoben wird und mit der nächsten Umpolung der Treiber Bremsstrom durch den Motor treibt, der höher werden kann als der Blockierstrom.
Also wenn ich das richtig verstehe,kann man nur jeweils einen Motor ansteuern? Das ist doch total unpraktisch,wenn die Motoren sich nicht gleichzeitig drehen können. Dementsprechend ist ja auch mein Programm falsch.
Ich meinte mit dem "Schubsen",dass man die Räder ein bisschen "andreht". Nach einem kleinem Dreher drehen die sich von alleine. Sobald die Räder den Boden berühren,drehen sie sich nicht mehr. Sie kommen also zum totale Stillstand,was ein bisschen blöd ist,weil die Räder einen kleinen Roboter vom Boden bewegen sollen.
Hallo ,
Hier ein LINK zu einem Beispiel, die PWM Ports musst Du nur dem ArduinoMega anpassen...
..das Anschubsen : die Motore sind zu stark fü den L293D...nimm einen stärkeren Treiber oder andere Motore...
Gruss
Gerhard
Geändert von oderlachs (28.04.2014 um 19:36 Uhr)
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Irgendwie verwirrt mich die Schaltung,da ich nicht weiß wie man die Software dazu gestalten soll. Werden die PWM Pins an den Enable Eingängen dauerhaft auf high gestellt? Wieso die vielen PWM Anschlüssen?
Danke für den Hinweis mit dem stärkeren Treiber!
So liest sich das an anderer Stelle..sag jetzt ja nicht, dass du zwei Motoren, den Treiber UND den Mega aus nem lausigen Laptop-USB mit Strom versorgen willst??Zitat von Andri
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Hallo,
Mit Input 1 und Input 2, bzw 3 und 4, bestimmst du die Drehrichtung.
Wie schon geschrieben wurde, wenn beide Pins den selben Pegel haben, steht der Motor, bzw. er wird kurzgeschlossen.
Wenn du nun da PWM-Signal an diesen Pis anlegst, wird der Motor entweder in kurzer folge Vor- und Rückwärts betrieben oder Vorwärts und dann kurzgeschlossem, was eine Schnellbremsung erzeugt.
Der Enable Eingang schaltet den Ausgang in einen hochohmigen Zustand, d.h. Der Motor kann in diesem Zustand fei drehen.
Mit In1 und In2 legst du die Drehrichtung fest und Startest oder Stoppst den Motor.
Mit dem Enable kannst du dann, durch anlegen des PWM-Signals, die Drehzahl regeln.
BZW: Dreh mal deinen Motor mit freien Anschlüssen von Hand durch. Dann schliesst du die Motoranschlüsse kurz und drehst nochmals mit der Hand.
Je schneller du drehst umso deutlicher merkst du de Unterschied.
MfG Peter(TOO)
Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?
Lesezeichen