obnizのフォーラムは新しいシステムに移行しております。

新しいフォーラムはこちらになります

M5StackでPCA9685を使う方法がわかりません



  • こんにちは(^_^)

    M5StackにobnizOSをインストールしてHobbyライセンスで色々実験して楽しんでいるのですが、わからないことがあるので教えてください。

    Document>JS Parts Library>PCA9685 のページで

    var driver = obniz.wired("PCA9685", {scl:22, sda:21});
    var pwm0 = driver.getPWM(0);
    pwm0.freq(50);
    pwm0.duty(12);

    をtest runすると正常にサーボが動作するのですが、開発者コンソールで

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>obnizOS on M5Stack</title>
    <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
    <script src="https://unpkg.com/obniz@2.4.0/obniz.js"></script>
    <script src="https://unpkg.com/m5stackjs/m5stack.js"></script>
    </head>
    <!DOCTYPE html>
    <html>
    <body>
    <div id="obniz-debug"></div>
    <script>
    var obniz = new M5Stack(“xxxx-xxxx”);
    obniz.onconnect = async function () {
    var driver = obniz.wired("PCA9685", {scl:22, sda:21});
    var pwm0 = driver.getPWM(0);
    pwm0.freq(50);
    pwm0.duty(12);
    };
    </script>
    </body>
    </html>

    を実行すると下記エラーが出ます。

    Error: No More i2c Available.
    Object{message:No More i2c Available., url:https://unpkg.com/obniz@2.4.0/obniz.js, line:7864, colmun:11}

    どこを修正すればよろしいでしょうか?

    よろしくお願いいたします。



  • @JK さん

    I2Cが最大数使われていてこれ以上使えないエラーが出ています。
    obnizOS for ESP32ではI2Cが1本まで使えますが、
    m5stack.jsが内部で使用しているため、新しく使おうとするとエラーになってしまいます。

    これはobniz.wiredの書き方で、共通のi2cを使う設定ができますので、そちらで試していただけないでしょうか。

    obniz.wired("PCA9685", {i2c:obniz.m5i2c});
    


  • @kido 動きました!
    ありがとうございました。



SUGGESTED TOPICS