Dein Code sieht für mich OK aus, wenn ich mir die Doku im Netz
betrachte.
http://www.robotshop.com/dfrobotshop-rover-tracked-robot-basic-kit.html
Ich habe noch eine Änderung eingefügt, damit das Vorwärts nicht ständig
sondern nur einmal gegeben wird. Möglicherweise verschluckt sich die
Ansteuerung, wenn die PWM ständig d.h. bei jedem loop() Durchlauf neu
initialisiert wird.
1 | int M1 = 5; // Motor 1 Speed-Control (ENA am L293B)
|
2 | int M2 = 6; // Motor 2 Speed-Control (ENB am L293B)
|
3 | int R1 = 7; // Motor 1 Direction-Control (IN1/2 am L293B)
|
4 | int R2 = 8; // Motor 3 Direction-Control (IN3/4 am L293B)
|
5 |
|
6 | void setup()
|
7 | {
|
8 | int i;
|
9 | for(i=5;i<=8;i++)
|
10 | pinMode(i,OUTPUT);
|
11 | }
|
12 |
|
13 | void forward()
|
14 | {
|
15 | // Motor 1
|
16 | analogWrite(M1,255); // Speed (255=MAX) über PWM an ENA
|
17 | digitalWrite(R1,LOW); // Forward
|
18 |
|
19 | // Motor 2
|
20 | analogWrite(M2,255); // Speed (255=MAX) über PWM an ENB
|
21 | digitalWrite(R2,LOW); // Forward
|
22 | }
|
23 |
|
24 | void loop()
|
25 | {
|
26 | static char laeuft = 0;
|
27 | if ( laeuft == 0 )
|
28 | {
|
29 | laeuft = 1;
|
30 | forward();
|
31 | }
|
32 | }
|
L293 Tutorials
http://robotika.yweb.sk/skola/H-brigde/IC%20L293%20and%20Its%20avr%20%20interface%20v1.0.pdf
74HC00 Quad 2-input NAND gate:
digitalWrite(R1,LOW) => Motor runs anti-clockwise => Forward
Jetzt zur eigentlichen Fehlersuche:
Bei der Aufbauanleitung sind zwei IMPORTANT NOTES angegeben. Hast du die
beachtet?
Hast du Tools für eine Fehlersuche?
Ein Multimeter zum Messen von Spannungen wäre ganz gut.
Zur Not geht als Spannungsspion auch eine LED. Man könnte die LED_SEL
Brücke rausnehmen und dort an der Seite bei den LEDs einen Draht
einstecken.
Wenn die zweite Drahtseite dann mit einer spannungsführenden Stelle
verbunden ist, leuchten die LEDs 5 bis 10.
Damit kannst du an Pin D5 und D6 auf Jumperleiste J1 die Funktion der
PWM überprüfen (Spion leuchtet). Bei Änderung des Wertes 255 im Programm
ändert sich die Intensität der LED (statt 255 z.B. 100 probieren). Die
Änderung ist u.U. schwer zu sehen, wenn nur geringe Wertänderungen
gemacht werden (das liegt an der Anpassung des Auges).
Um die Pins D7 und D8 auf Jumperleiste J1 bzw. J2 zu überprüfen, kannst
du den Rover rückwärts fahren lassen (Spion leuchtet)
// Motor 1
analogWrite(M1,255); // Speed (255=MAX) über PWM an ENA
digitalWrite(R1,HIGH); // Rückwärts
// Motor 2
analogWrite(M2,255); // Speed (255=MAX) über PWM an ENB
digitalWrite(R2,HIGH); // Rückwärts
oder bei Vorwärtsfahrt dürfen D7 und D8 die LEDS nicht zum Leuchten
bringen.
Beide Tests würden zeigen, ob das Programm im µC überhaupt arbeitet.
Wenn das der Fall ist, geht es im nächsten Schritt an den Test des
74HC00 und des L293 und der Motoren. Aber melde dich erstmal wieder mit
dem ersten Ergebnis.