趣味的なIT・ネットの話題

Raspberry PiでIoTなシステム開発:オンボードLEDのコントロールはBCMナンバーで、WiringPiのコントロールは独自のナンバーで

当たり前のことではあるのですが、PiでGPIOを指定するときはコアであるBCMの番号が原則です。が、WiringPiは何故かGPIOに対して独自の付番をしているので、対照関係が結構ややこしいです。ヘッダピンの番号がさらにまた別になっています。

スクリーンショット 2016-02-13 19.02.05

で、今回オンボードLEDのコントロールのため、以下のコマンドでGPIOに対応させるようにしたのですが、このコマンドはBCMの番号で指定します。

    system("echo gpio | sudo tee /sys/class/leds/led0/trigger");
    system("echo 21 | sudo tee /sys/class/leds/led0/gpio");

一方このGPIOをWiring PiでコントロールするときはWiring PiでコントロールするときはWiring Piの番号でコントロールします。

    while(1) {
        digitalWrite(29, 1);
        usleep( 50000);
        digitalWrite(29, 0);
        usleep(950000);
   }

コード上ではWiring Piの世界とBCMの世界の区別がぱっと見ではわかりにくいので、気をつけた方がいいですね。


Facebooktwitterpinterestlinkedinmail
納得したらすぐにシェア!