[LinuxでArduino!事始め編] Arduino Uno Rev3のピン配置等の基礎知識まとめと簡単なLチカ手順


2021/02/19

巷にはArduino〇〇と題して様々な製品バリェーションがありますが、搭載しているマイコンが違えば必然的にピン配置が違ってきます。

当然モデルごとのピンアサインメントが違うので、ArduinoIDEでプログラミングするのにも、ピン番号の理解は欠かすことのできない要素です。

さて前回はLinux環境でArduinoIDEが簡単にインストールできることをネタにそのインストール手順を説明ました。

今回はLinuxからArduinoIDEを使っても、ちゃんとLEDをチカチカさせることを確認します。


Arduino Uno Rev3

Arduino製品にはマイナーなモデルや既に販売したモデルもあるので全てのモデルのピン配置と対応するマイコンの説明をすると切がないですので、ここではArduinoの代名詞的なArduino Uno Rev3に絞った話をします。以降、Arduino Uno Rev3を便宜上Arduinoと称させていただきます。

Arduinoの公式にピン配置図がありますので、これを引用させていただきます。

合同会社タコスキングダム|蛸壺の中の工作室

搭載されているマイコンはマイクロチップ(旧Atmel)製ATmega328Pで、細長いソケットタイプ(PDIP28)のモデルと小型のソケットタイプ(QFN/MLF28)のモデルの2つがあります。

Arduinoを長く大切に使おうと思っている方は脱着可能なPDIP28を購入を検討すべきです。

QFN/MLF28もヒートガンなどを使えば基板から剥げなくは無いのですが、新しいマイコンを交換になったときにQFNのブートローダーを焼き込むソケットジグもおそらくは購入しなくてはいけないので、小型化する以外のメリットが薄いです。

それはさておき、Lチカの話です。

Arduinoには動作確認用のビルドインLEDが一つ付いています。(図中の
LED_BUILTINがそれです。)

これがマイコン側の
PB5というピンに接続されていることが分かります。

ATmega328Pの日本語のリファレンスから以下の図を拝借して説明しますと、

合同会社タコスキングダム|蛸壺の中の工作室

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との通信設定を確認するために、
[ツール] > [シリアルポート: ...]の項目で正常に接続されている状態であれば既にここで現在接続中のArduinoのシリアル通信ポート(ここでは/dev/ttyACM0)が候補として出てきます。

出てこない場合には接続ケーブルと良く確かめてみたりして、接続の甘いところを確認しましょう。

合同会社タコスキングダム|蛸壺の中の工作室

これでプログラムの書き込みはスタンバイOKですので、以下の図のように
ボタンでソースコードをコンパイルし間違いがないかをチェックし、問題がなければボタンでArduinoにプログラムを書き込みます。

合同会社タコスキングダム|蛸壺の中の工作室

書き込みが成功するとビルドイン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アーキテクチャに対応してきているので、ラズパイにArduinoIDEをインストールしてからArduino側に書き込めるような使い方も最近ではできるようになっているようで、本格的なパソコンを組まなくとも小学生向けのArduino教室などで、軽量な開発用ラズパイPCでも十分Arduinoのプログラミングが可能です。
記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

電子工作を身近に知っていただけるように、材料調達からDIYのハウツーまで気になったところをできるだけ細かく記事にしてブログ配信してます。