Hallo Rabenauge,
Zitat von
Rabenauge
Hm,schade dass ich diese Dinger nicht hab-aber ich hab ein Foto (von deinem Roboter) gesehn, da waren die Jumper sehr wohl drauf.
Da sie dort jeweils Enable mit 5V verbinden, schliesse ich daraus mal, dass _dieser_ Roboter dann rein digital gesteuert wurde (ohne PWM).
Auch das geht natürlich-und vereinfacht nen paar Sachen (da man sich um die PWM nicht kümmern muss).
Ich habe jetzt die Pins am Motorschield so verbunden wie sie ursprünglich waren, jeweils ENA / ENB mit 5V verbunden. Der motor läuft mit voller Geschwindigkeit an, wenn er auf beiden Pins auf "HIGH" gesetzt wird, die Enableleitungen werden nicht gebraucht...
Der Versuch in dem Code eine "Beschleunigungsrampe" einzubauen scheitert aber, die Erhöhung wird auf dem Serialmonitor angezeigt, der Motor beschleunigt aber nicht, unabhängig wie groß das Delay wird. Ab der Erhöhung des Startwertes in der For-schleife auf 100 bremst er auch nicht mehr, bzw. bleibt nach dreimaligem Durchlauf nicht stehen, sondern läuft weiter.
mit diesem Code (habe ich aus Post 19 kopiert und an meine Pinbezeichnungen angepasst) habe ich das Ganze getestet:
Code:
#define S1_IN_1 50 //Motor_1 Anschluss_1
#define S1_IN_2 52 //Motor_1 Anschluss_2
void setup()
{
// setup Motor 1 pins
pinMode(S1_IN_1, OUTPUT);
pinMode(S1_IN_2, OUTPUT);
Serial.begin(9600);
}
void loop()
{
{
digitalWrite(S1_IN_2, LOW);
// digitalWrite(S1_IN_2, HIGH);
// delay(1000);
for(int j=0; j<3; j++)
{
analogWrite(S1_IN_1, LOW); //war digital
for (int i=0; i<255; i=i+5)
{
analogWrite(S1_IN_1, i); //war digital
Serial.println(i);
delay(2000);
}
}
digitalWrite(S1_IN_1, LOW);
digitalWrite(S1_IN_2, LOW);
delay(500);
}
while(1);
}
Zitat von
Rabenauge
Wahrscheinlich müssten dann zum stoppen immer beide Motorleitungen auf Low gesetzt werden-wenn du Glück hast, haste sogar ne Bremse dann.
das funktioniert so weit - siehe oben...
Zitat von
Rabenauge
Miss mal bitte die Stromaufnahme der Motoren (einzeln) unter Vollast, wenns geht. Würd mich mal interessieren, was die so brauchen (klein bedeutet nicht zwangsläufig stromsparend).
der Motor zieht beim Drehen 160mA, wobei die Anzeige am Multimeter keine statische ist. Hält man den Motor fest, sind es 500mA. Mit den gesetzten Jumpern auf dem Motorshield ist die Anlaufspannung ca. 3,5V, der Spannungseinbruch ist also nicht so stark wie vorher, bei Nutzen des PWM. Die frage nach der Möglichkeit einer "digitalen" Beschleunigungsrampe bleibt...
EDIT: ich habe die zwei Zeilen in der FOR-schleife
von "digital" n "analog" geändert.
der Motor läuft bei i=130 an und läuft mit konstander Geschwindigkeit weiter, auch die dreimalige Ausführung der Schleife und das Halten bei "while(1)" werden nun ausgeführt, beschleunigen tut der Motor - zumindest sicht oder hörbar - nicht...
Lesezeichen