見出し画像

Wio BG770Aの研究6〜ピン番号定義を確認し、内蔵LEDを光らせる〜

Wio BG770Aの研究シリーズでは、Seeed社のLTE-M対応IoT開発ボードWio BG770Aについて深堀りしてきます。今回からはコーディングに入っていきますが、まずはピン番号の定義を確認します。これが非常に重要で、別のマイコンでの開発において、ピン番号を正しく把握できていないことでハマってしまい、時間をロスした経験があります。本記事では、Wio BG770Aのピン番号の定義を正しく理解し、その上で内蔵LEDを光らせることを目指します。
なお、本記事は、SORACOM Advent Calendar 2024シーズン2にもエントリーしています。


■ まずはピン番号を確認する

まずは、下記の4つのGrove端子のピン配置図をご覧ください。

出典:Wio BG770A公式サイト

Wio BG770Aは4つのGrove端子が搭載されており、アナログ用、デジタル用、UART用、I2C用となっています。各Grove端子を別用途でも使えるようですが、ここでは割愛します。

右上のGrove-Digital中のD30ピンに着目すると、「D30」、「A6」、「P0.30」の3つが併記されています。これはどういう意味でしょうか?

■ ピン番号はどこで定義されているのか?

ピン番号がどこで定義されているか気になり探してみると、SeeedJP nRF52 Boardsをインストールした時に追加された下記variant.hで定義されていました。

## mac
/Users/<ユーザー名>/Library/Arduino15/packages/SeeedJP/hardware/nrf52/1.4.0/variants/Seeed_Wio_BG770A/variant.h

## Windows
C:\Users\<ユーザー名>\AppData\Local\Arduino15\packages\SeeedJP\hardware\nrf52\1.4.0\variants\Seeed_Wio_BG770A\variant.h

この定義ファイルにおいて、D30,A6,P0.30に関わる部分と、内蔵LEDに関わる部分を下記に抜粋します。

////////////////////////////////////////////////////////////////////////////////
// Digital pin definition

#define D30                     (30)            // Grove - Digital (P1)

////////////////////////////////////////////////////////////////////////////////
// Analog pin definition

#define A6                      (30)            // Grove - Digital (P1)

////////////////////////////////////////////////////////////////////////////////
// Builtin LEDs

#define LED_BUILTIN             (6)             // USER LED

////////////////////////////////////////////////////////////////////////////////

これを見ると、D30=30、A6=30と定義されています。下記に示した回路図のマイコン部を見ると、D30がP0.30につながっていることがわかります。

出典:Wio BG770A回路図に加筆

つまり、マイコンのP0.30を指定したい場合、コード内で「30」と書いたらいいのですが、この定義ファイルのおかげで、「D30」と書くことも、「A6」と書くこともできます。

■ 内蔵LEDを光らせる(Lチカ)

ピン配置やピン定義を理解したうえで、早速内蔵LEDを光らせてみます。まず、これを参考に開発環境を作ってください。その上で、このサンプルコードを実行します。下記は、サンプルコードに、コメントを加筆しています。

/*
 * blink.ino
 * Copyright (C) Seeed K.K.
 * MIT License
 */

#include <Adafruit_TinyUSB.h>  // USB接続関連

void setup(void) {
}

void loop(void) {
  digitalWrite(LED_BUILTIN, HIGH);  //LED_BUILTIN=6
  delay(200);                       //[msec]
  digitalWrite(LED_BUILTIN, LOW);   //LED_BUILTIN=6
  delay(800);                       //[msec]
}

ここで、

digitalWrite(LED_BUILTIN, HIGH);

とありますが、このコードでLEDを光らせています。コード内にLED_BUILTINが出てきましたが、前述の定義ファイルで、LED_BUILTIN=6と定義されており、回路図を確認するとP0.06に繋がっていることがわかります。また、回路図上で「USERLED」という名前が付いていることがわかります。

出典:Wio BG770A回路図に加筆

回路図で「USERLED」を探すと、青色LEDに繋がっていることが確認できました。

出典:Wio BG770A回路図
Lチカ成功!

■ まとめ

別のマイコンでの開発において、ピン番号を正しく把握できていないことでハマったことがあるので、詳しく調べました。ピン番号の定義ファイルを理解しておくと、後々ハマらないので、是非ご確認ください!

この記事が参考になった方は、スキ、コメント、フォロー頂けると励みになります!ここまでお読み頂き、ありがとうございます。

■ 参考

・Wio 770Aの研究シリーズの各記事を、マガジンにまとめています。


いいなと思ったら応援しよう!