[LinuxでArduino!事始め編] Arduino Uno Rev3のピン配置等の基礎知識まとめと簡単なLチカ手順
※ 当ページには【広告/PR】を含む場合があります。
2021/02/19
巷にはArduino〇〇と題して様々な製品バリェーションがありますが、搭載しているマイコンが違えば必然的にピン配置が違ってきます。
当然モデルごとのピンアサインメントが違うので、ArduinoIDEでプログラミングするのにも、ピン番号の理解は欠かすことのできない要素です。
さて前回はLinux環境でArduinoIDEが簡単にインストールできることをネタにそのインストール手順を説明ました。
今回はLinuxからArduinoIDEを使っても、ちゃんとLEDをチカチカさせることを確認します。
Arduino Uno Rev3
Arduino製品にはマイナーなモデルや既に販売したモデルもあるので全てのモデルのピン配置と対応するマイコンの説明をすると切がないですので、ここではArduinoの代名詞的な
Arduino Uno Rev3
Arduinoの公式にピン配置図がありますので、これを引用させていただきます。

搭載されているマイコンはマイクロチップ(旧Atmel)製ATmega328Pで、細長いソケットタイプ(PDIP28)のモデルと小型のソケットタイプ(QFN/MLF28)のモデルの2つがあります。
Arduinoを長く大切に使おうと思っている方は脱着可能なPDIP28を購入を検討すべきです。
QFN/MLF28もヒートガンなどを使えば基板から剥げなくは無いのですが、新しいマイコンを交換になったときにQFNのブートローダーを焼き込むソケットジグもおそらくは購入しなくてはいけないので、小型化する以外のメリットが薄いです。
それはさておき、Lチカの話です。
Arduinoには動作確認用のビルドインLEDが一つ付いています。(図中の
LED_BUILTIN
これがマイコン側の
PB5

PB5はマイコンの19番ピンにアサインされていることが分かります。
この記事ではLチカするだけなのであまり関係がないのですが、Arduinoもどきを自作するときにはマイコンのピン番号を間違って接続してしまうと、ショートしてお陀仏になってしまう可能性もありますのでピンアサインメントはデリケートに扱う必要があります。
話をArduinoに戻すと、このマイコンのPB5がArduino側の13番ピン(D13)に接続されていることが分かります。
Lチカ
ということでビルドインLEDだけをとりあえずLチカさせてみようと思います。
#define LED_PIN 13
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
まずはパソコン(手元ではLinuxですがArduinoIDEがインストールしてあればどんなPCでも)とArduinoをUSB接続させます。
次にArduinoIDEを起動して作業します。
まずは以下のように
[ツール] > [ボード: "Arduino Uno"] > [Arduino Uno]

次にArduinoとの通信設定を確認するために、
[ツール] > [シリアルポート: ...]
/dev/ttyACM0
出てこない場合には接続ケーブルと良く確かめてみたりして、接続の甘いところを確認しましょう。

これでプログラムの書き込みはスタンバイOKですので、以下の図のように
✔
➜

書き込みが成功するとビルドインLEDはチカチカしているはずです。

...当然かも知れませんが、Linux側からでもArduinoへの書き込みが無事行えました。
ディスクリートのLEDでLチカ
ビルドインのLEDだけチカチカさせては見たものの、実際のArduino側のポートから出力が出ているのかを確かめて見るために、適当なLEDを使ってLチカさせてみます。
ArduinoのD13のポートを+側、GNDの一つのポートをー側に設定し、どこのメーカーか分からないLEDを目分量で500Ωくらいの抵抗を一つ噛まして直列に繋ぎますと、以下の写真のようにビルドインLEDと一緒にチカチカしております。

これでマイコン側のPB5ポートとArduino側のD13ポートが内部で接続されていることが確認できました。
まとめ
今回はLinuxにインストールしたArduinoIDEを利用して、ArduinoのLチカを簡単に行ってみました。
ArduinoIDEも色々なOSやCPUアーキテクチャに対応してきています。
ラズパイにArduino IDEをインストールしてからArduino側に書き込めるような使い方も最近ではできるようになっているようで、本格的なパソコンを組まなくとも小学生向けのArduino教室などで、軽量な開発用ラズパイPCでも十分Arduinoのプログラミングが可能です。