Hallo inka,
es tut mir leid, dass sich das bei Dir nicht kompilieren läßt und Dich unnötig Zeit kostet.
Die einzige Erklärung die ich habe ist, das wir unterschiedliche Arduino IDE Versionen benutzen.
Ich habe das Ganze unter Version 1.6.5 sowohl in meinen Nano hineinbekommen als auch gegen das Mega 2560 er Board fehlerfrei kompilieren können.
Ich meine das mit dem String ließe sich mit direkter Ausgabe auf Serial umgehen. Was aber an "attachInterrupt()" als Parameter übegeben werden muß wenn "digitalPinToInterrupt()" nicht da ist müßte ich nachschlagen (oder weiß daß jemand anderes hier aus dem Kopf?).
Die andere Variante, wenn Du 'ne ältere IDE Version benutzt, wäre die neueste Version zu installieren. Das würde ich aber nur machen, wenn andere Projekte von Dir dadurch nicht gefährdet werden, was nur Du abschätzen kannst.
Zu den Einstellungen:
Wenn das
Code:
M_Hl = 1
M_Hr = 2
M_Vr = 3
M_Vl = 4
Deine PWM Kanäle sind, sieht die Initialisierung so aus:
Code:
struct motor motoren[M_MAX] = {
{ AF_DCMotor(4), 18, 0, 0, 0 }, // M_VL
{ AF_DCMotor(1), 19, 0, 0, 0 }, // M_HL
{ AF_DCMotor(3), 20, 0, 0, 0 }, // M_VR
{ AF_DCMotor(2), 21, 0, 0, 0 } // M_HR
};
testen kannst Du das indem Du erstmal die Funktionen loopMulti, setupMulti, loop und setup auskommentierst oder löscht.
der Test ob die Zuordnung stimmt ohne Encoder/Interrupt geraffel sähe dann so aus:
Code:
void setup() {
}
void loop() {
motoren[M_VL].mot.setSpeed(128);
motoren[M_VL].mot.run(FORWARD);
delay(1000);
motoren[M_VL].mot.setSpeed(0);
motoren[M_VL].mot.run(RELEASE);
}
und synonym mit den anderen Symbolen aus "enum motor_e" für "M_VL".
Grüße
Chris
Lesezeichen