Also soweit ist das Verstanden habe, kann ich die Digital Ports nehmen beim MEGA 2560. Ich habe mal grob aufgeschrieben welche ich dafür nehmen würde (siehe Bild)Klicke auf die Grafik für eine größere Ansicht

Name:	Pin_Belegung.PNG
Hits:	5
Größe:	8,4 KB
ID:	35324.
Die In/Out Ports kann ich ja nehmen oder?

Programm für erstmal ein Motor testen würde so aussehen:
//Variable deklarieren+++++++++++++++++++++++++++++++++++++++ ++++++++++

//IC1.............
//1.Motor
int 1MotorEin=22;
int 1MotorOut1=24;
int 1MotorOut2=26;

//2.Motor
int 2MotorOut3=28;
int 2MotorOut4=30;
int 2MotorEin=32;


//IC2.............
//3.Motor
int 3MotorEin=34;
int 3MotorOut1=36;
int 3MotorOut2=38;

//4.Motor
int 4MotorOut3=40;
int 4MotorOut4=42;
int 4MotorEin=44;


//IC3.............
//5.Motor
int 5MotorEin=46;
int 5MotorOut1=48;
int 5MotorOut2=50;


//Taster
//1.Motor
int Button1MotorRechts=31;
int Button1MotorLinks=33;


//Hardware Ein-/Ausgänge setzen++++++++++++++++++++++++++++++++++++++++++
void setup() {
pinMode(Button1MotorRechts, INPUT); // Port als Eingang schalten für 1 Motor Rechts Test
pinMode(Button1MotorLinks, INPUT); // Port als Eingang schalten für 1 Motor Links Test

pinMode(1MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(1MotorOut1, OUTPUT); // Port als Ausgang schalten
pinMode(1MotorOut2, OUTPUT); // Port als Ausgang schalten

pinMode(2MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(2MotorOut3, OUTPUT); // Port als Ausgang schalten
pinMode(2MotorOut4, OUTPUT); // Port als Ausgang schalten

pinMode(3MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(3MotorOut1, OUTPUT); // Port als Ausgang schalten
pinMode(3MotorOut2, OUTPUT); // Port als Ausgang schalten

pinMode(4MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(4MotorOut3, OUTPUT); // Port als Ausgang schalten
pinMode(4MotorOut4, OUTPUT); // Port als Ausgang schalten

pinMode(5MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(5MotorOut1, OUTPUT); // Port als Ausgang schalten
pinMode(5MotorOut2, OUTPUT); // Port als Ausgang schalten

}

void loop() {
if ((digitalRead(Button1MotorRechts)==HIGH) && (digitalRead(Button1MotorLinks)==LOW)) {
//1 Motor Drehrichtung Rechts
digitalWrite(1MotorEin, HIGH);
digitalWrite(1MotorOut1, HIGH);
digitalWrite(1MotorOut2, LOW);
} else {
//1Motor steht
digitalWrite(1MotorOut1, LOW);
digitalWrite(1MotorOut2, LOW);
}

delay(10); // Kleine Pause

if ((digitalRead(Button1MotorRechts)==LOW) && (digitalRead(Button1MotorLinks)==HIGH)) {
//1Motor Drehrichtung Links
digitalWrite(1MotorEin, HIGH);
digitalWrite(1MotorOut1, LOW);
digitalWrite(1MotorOut2, HIGH);
} else {
//1Motor steht
digitalWrite(1MotorOut1, LOW);
digitalWrite(1MotorOut2, LOW);
}

delay(10); // Kleine Pause
}