Ich habe mir seit kurzem ein Arduiono kompatibles Kettenfahrzeug
gekauft.
Ich habe dann ein Programm geschrieben das mittels PWM Motoren steuern
sollte aber aus irgendeinem Grund krieg ich es nicht zum Laufen.
Im Anhang könnt ihr euch die Schaltung anschauen, vielleicht habe ich ja
die falschen Pins verwendet.
Wäre toll wenn mir einer aushelfen könnte....
Hier ist das Programm:
/-------PWM-Test------/
int M1 = 5; //Speed-Control
int M2 = 6; //Speed-Control
int R1 = 7; //Direction-Control
int R2 = 8; //Direction-Control
void setup()
{
int i;
for(i=5;i<=8;i++)
pinMode(i,OUTPUT);
}
Ich weiß nicht was passiert wenn Du andauend, alle Bruchteile von Millisekunden die Analogausgabe von neuen startest.
Versuch mal ein "delay(10000);" nach dem "digitalWrite(R2,LOW);" zu schreiben.
Grüße Uwe
Danke für deine Antwort aber mit dem delay hats leider auch nicht geklappt...
Der Motor springt gar nicht an un ehrlich gesagt versteh ich es net, laut dem programm müsste alles wunderbar gehen.
Auf Seite 6 Step 5 steht geschrieben:
Insert the motors into the gearbox and connect the wires from the motors to the screw terminals on the PCB (try not to cross the wires. You can trim the wires so they do not interfere with the
tracks. Connect the wires from each motor to the closest terminals. Please refer to the important note
above once again.
Überprüf am besten erst mal ob Du die Batterien und die beiden Motoren an der richtigen Stelle angeschlossen hast !
Den Arduino selber kannst Du mit dem 'Blink' Example testen !
Befindet sich im Verzeichnis 'Expamples/2. Digital/BlinkWithoutDelay'.
Mit dem DFRobotShop Rover Sample Sketch #1' laufen die Motoren problemlos. Also müsste mein Programm falsch sein aber ich finde leider den Fehler nicht.
In beiden Sketches werden für den einen Motor die Pins 5,7 und für den anderen die Pins 6,8 benutzt ! Also in deinem und dem DFRobot Sketch. Das gleiche gilt für die Steuerung der Motorgeschwindigkeit und die Drehrichtung. In beiden Pin identisch !
Die Zeile
while(1);
bewirkt das die Befehle
analogWrite(M2,255); //Maximum Speed
digitalWrite(R2,LOW); //Forward
analogWrite(M1,255); //Maximum Speed
digitalWrite(R1,LOW); //Forward
nur einmal ausgeführt werden !