Welche Pins als Outputs wählen?

Gast #3124045
Lesenswert?

Hallo!
Ich habe mir einen Arduino Mega 2560 und ein SainSmart L293D Motor Drive 
Shield bestellt, um einen bipolaren Schrittmotor zu betreiben. Den Motor 
habe ich an den M3 und M4- Pins angeschlossen. Mit der AFMotor-Library 
habe ich den Motor schon zum Drehen gebracht, jedoch möchte ich die 
Spulen nun von Hand ansteuern, was bisher noch nicht so ganz 
funktioniert. Ich vermute, dass der Fehler darin liegt, dass ich nicht 
die richtigen Pins als Output wähle. Kann mir das jemand bestätigen und 
mir sagen, welche ich sattdessen wählen muss und wie man darauf kommt? 
Hier ist mein Code:

int Pin0=8;
int Pin1=9;
int Pin2=10;
int Pin3=11;

void setup(){
pinMode(Pin0,OUTPUT);
pinMode(Pin1,OUTPUT);
pinMode(Pin2,OUTPUT);
pinMode(Pin3,OUTPUT);
}

void loop(){
digitalWrite(Pin0,HIGH);
digitalWrite(Pin0,LOW);
digitalWrite(Pin0,LOW);
digitalWrite(Pin0,LOW);
delay(100);

digitalWrite(Pin0,LOW);
digitalWrite(Pin0,HIGH);
digitalWrite(Pin0,LOW);
digitalWrite(Pin0,LOW);
delay(100);

digitalWrite(Pin0,LOW);
digitalWrite(Pin0,LOW);
digitalWrite(Pin0,HIGH);
digitalWrite(Pin0,LOW);
delay(100);

digitalWrite(Pin0,LOW);
digitalWrite(Pin0,LOW);
digitalWrite(Pin0,LOW);
digitalWrite(Pin0,HIGH);
delay(100);
}

Danke schonmal im Voraus für die Antwort! =)
Gruß, Lars
Gast #3124265
Lesenswert?

ohja klar, das habe ich etwas verplant beim Eintippen - war natürlich 
nicht richtig :-D aber jetzt:

int Pin0=8;
int Pin1=9;
int Pin2=10;
int Pin3=11;

void setup(){
pinMode(Pin0,OUTPUT);
pinMode(Pin1,OUTPUT);
pinMode(Pin2,OUTPUT);
pinMode(Pin3,OUTPUT);
}

void loop(){
digitalWrite(Pin0,HIGH);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,LOW);
digitalWrite(Pin3,LOW);
delay(100);

digitalWrite(Pin0,LOW);
digitalWrite(Pin1,HIGH);
digitalWrite(Pin2,LOW);
digitalWrite(Pin3,LOW);
delay(100);

digitalWrite(Pin0,LOW);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,HIGH);
digitalWrite(Pin3,LOW);
delay(100);

digitalWrite(Pin0,LOW);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,LOW);
digitalWrite(Pin3,HIGH);
delay(100);
}

aber weiß jetzt jemand, welche pins ich als Output wählen muss bzw. wie 
ich das rausfinde?
#3124324
Lesenswert?

Lars schrieb:
> Ja das habe ich schon beides versucht, wurde aber nicht wirkilch schlau
> daraus. :/

Dann musst du weiter 'schauen'.

Aus dem Schaltplan geht ja hervor, welche Leitung vom L293 auf welchen 
Arduino Anschlusspin geht. Die musst du dir halt mal raussuchen.

Und mit dem Code bzw. einer Codeanalyse kann man das dann sicher auch 
bestätigen. Im Code sieht man ja, wie die Klasse den Shield ansteuert.
Gast #3124368
Lesenswert?

Ok, vielen Dank für die schnelle Antwort! Ich bin jetzt nochmal die 
AFMotor.cpp Datei durchgegangen und habe aus z.b. "pinMode(5,OUTPUT) 
[...] //on arduino mega, pin 5 is now PE3" geschlossen, dass nun 9 als 
OUTPUT gesetzt werden muss. bei den anderen pins bin ich genauso 
vorgegangen und daher hab ich jetzt insgesamt 4,8,9 und 13 als OUTPUT 
gesetzt. Jedoch möchte der Motor immernoch nicht laufen. Weiß jemand, 
was ich jetz noch falsch gemacht haben könnte?
#3184701
Lesenswert?

Wenn's analytisch nicht geht, dann vielleicht empirisch.

Mit anderen Worten: Wenn du es dem Schaltplan und dem Code nicht 
entnehmen kannst, hilft vielleicht rumprobieren.

Kurzes Testprogramm, welches an einem Port langsam blinkt. Mit einem 
Messgerät gucken, ob einer (und welcher) der Motorshield-Eingänge 
blinkt.

Mit einem Oszilloskop geht das natürlich schneller.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren