I2C Problem


#1

Ich habe hier den micro Maqueen. Der läuft auch am microbit wunderbar. Die Motoren laufen über I2C. Ich habe den Calliobit easy aufgesteckt und lasse die Motoren über Grove-Stecker am microbit mit dem Grove-Shield laufen --> läuft wunderbar.


Gleicher Code am Calliope Mini – nichts rührt sich. Woran könnte es liegen?
Code folgt weiter unten

input.onButtonPressed(Button.A, () => {
maqueen.MotorRun(maqueen.aMotors.M1, maqueen.Dir.CW, 255)
maqueen.MotorRun(maqueen.aMotors.M2, maqueen.Dir.CW, 255)
led.plot(0, 0)

})

// % weight=10 color=#008B00 icon="\uf136"
// block=“maqueen”
namespace maqueen {

export enum aMotors {
    //% blockId="M1" block="M1"
    M1 = 0,
    //% blockId="M2" block="M2"
    M2 = 1
}

export enum Dir {
    //% blockId="CW" block="CW"
    CW = 0x0,
    //% blockId="CCW" block="CCW"
    CCW = 0x1
}

export function MotorRun(index: aMotors, direction: Dir, speed: number): void {
    let buf = pins.createBuffer(3);
    if (index == 0) {
        buf[0] = 0x00;
    }
    if (index == 1) {
        buf[0] = 0x02;
    }
    buf[1] = direction;
    buf[2] = speed;
    pins.i2cWriteBuffer(0x10, buf);
}

}


#2

nur eine Vermutung:
Beim Calliope sind die beiden I2C Pins auf C18/C19 gelegt.
Beim micro:bit jedoch auf C19/C20


#3

Leider nein, diese Änderung ist in der Calliobit-Platine schon eingebaut und funktioniert auch so bei anderen Microbiterweiterungen wie dem Scrollbit :cry: