「Arduinoの基礎 - ペリフェラル」の版間の差分
編集の要約なし |
細 (Wiki がページ「Arduinoの各部詳細」を「Arduinoの基礎 - ペリフェラル」に、リダイレクトを残さずに移動しました) |
2024年12月9日 (月) 14:21時点における版
ピン配置
Arduino UNO R3
下表に、Arduino UNO R3の全IOピンの機能を示す。
ピン | 種類 | 説明 |
---|---|---|
D0 | デジタル | UART受信 (RX) |
D1 | デジタル | UART送信 (TX) |
D2 | デジタル | デジタル入出力 |
D3 | デジタル | デジタル入出力, PWM (~) (~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。 Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |
D4 | デジタル | デジタル入出力 |
D5 | デジタル | デジタル入出力, PWM (~) (~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。 Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |
D6 | デジタル | デジタル入出力, PWM (~) (~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。 Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |
D7 | デジタル | デジタル入出力 |
D8 | デジタル | デジタル入出力 |
D9 | デジタル | デジタル入出力, PWM (~) (~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。 Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |
D10 | デジタル | デジタル入出力, PWM (~), SPI (SS) (~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。 Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |
D11 | デジタル | デジタル入出力, PWM (~), SPI (MOSI) (~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。 Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |
D12 | デジタル | デジタル入出力, SPI (MISO) |
D13 | デジタル | デジタル入出力, SPI (SCK), 内蔵LED |
A0 | アナログ入力 | アナログ入力 |
A1 | アナログ入力 | アナログ入力 |
A2 | アナログ入力 | アナログ入力 |
A3 | アナログ入力 | アナログ入力 |
A4 | アナログ入力 | アナログ入力, I2C (SDA) |
A5 | アナログ入力 | アナログ入力, I2C (SCL) |
Arduino UNO R4 WiFi
下表に、Arduino UNO R4 WiFiの全IOピンの機能を示す。
ピン | 種類 | 説明 |
---|---|---|
D0 | デジタル | UART受信 |
D1 | デジタル | UART送信 |
D2 | デジタル | GPIOピン, 割り込み |
D3 | デジタル | GPIOピン, 割り込み, PWM |
D4 | デジタル | GPIOピン |
D5 | デジタル | GPIOピン, PWM |
D6 | デジタル | GPIOピン, PWM |
D7 | デジタル | GPIOピン |
D8 | デジタル | GPIOピン |
D9 | デジタル | GPIOピン, PWM |
D10 | デジタル | SPI (CS), GPIOピン, PWM |
D11 | デジタル | SPI (COPI), GPIOピン, PWM |
D12 | デジタル | SPI (CIPO), GPIOピン |
D13 | デジタル | SPI (SCK), GPIOピン, ビルトインLED |
A0 | アナログ | Analog入力, DAC出力 UNO R4 WiFiは、最大12ビットの分解能を持つDACを搭載しており、PWMピンよりも高性能なアナログ出力ピンとして機能する。 |
A1 | アナログ入力 | Analog入力, OPアンプ + RA4M1には内蔵OPAMPがある。 |
A2 | アナログ入力 | Analog入力, OPアンプ - RA4M1には内蔵OPAMPがある。 |
A3 | アナログ入出力 | Analog入力, OPアンプ出力 RA4M1には内蔵OPAMPがある。 |
A4 | アナログ入力 | Analog入力, SDA A4ピンとA5ピンは同じI2Cバスに接続されている。 |
A5 | アナログ入力 | Analog入力, SCL A4ピンとA5ピンは同じI2Cバスに接続されている。 |
各部詳細
Arduino UNO R3の各部詳細は下図の通りである。
図の左上のUSBコネクタの近くに、ICSP2(6ピンのピンヘッダ)が無いArduinoは、
USB - シリアル変換にATmega16U2が使用されていない(恐らくCH340Gが使用されている)と思われるので避けたほうがよい。
GPIO
14本のデジタルIOピン(D0 - D13)、6本のアナログINピン(A0 - A5)、6本のアナログOUTピン(D3, D5, D6, D9, D10, D11)がある。
・デジタルIOピン(D0 - D13)
Arduino IDEのソースコード上で入出力(INPUT, OUTPUT)として設定する。
センサから読み取る時は入力、アクチュエータに接続するときは出力である。
このピンで扱う電圧値は、HIGHとLOWの2値のみである。
・アナログINピン(A0 - A5)
アナログセンサを読み取る時に使用する。
このピンで扱う電圧値は、0 - 1023である。
・アナログOUTピン(D3, D5, D6, D9, D10, D11)
デジタルIOピンの6本のみアナログ出力として使用できる。
このピンで扱う電圧値は、0 - 255である。
どのピンをアナログ出力とするかは、Arduino IDEのソースコード上で設定する。
電源
USB電源、ACアダプタ等を電源として使用できる。(ACアダプタは9[V] 2.1[mm]センタープラス型を推奨)
ACアダプタとUSB電源を同時に接続しても構わないが、その場合は、ACアダプタが電源となる。
UART
UARTは、R4ボードがR3ボードと異なる部分の1つである。
- Arduino UNO R3
- UARTは1つでUSBコネクタとD0およびD1ピンの両方に接続されている。
- Arduino UNO R4
- 2つのハードウェアシリアルポートを使用しており、1つはUSB、もう1つはD0とD1に接続されている。
そのため、Arduino UNO R4でD0とD1を介してシリアル通信を行う場合は、Serialオブジェクトの代わりにSerial1オブジェクトを使用する必要がある。
- D0 (TX)
- TXD1 出力
- D1 (RX)
- RXD1 入力
SPI
Arduino UNO R3 / R4のSPI用のピンは、D10 - D13である。
ICSP端子を使えば、他ボードとピン互換にできる。(SSは除く)
UNO R3 /R4 | LEONARDO | MEGA 2560 | |
---|---|---|---|
SCL (SSLA0) | D13 / ICSP3 | ICSP3 | D52 / ICSP3 |
MISO (CIPOA) | D12 / ICSP1 | ICSP1 | D50 / ICSP1 |
MOSI (COPIA) | D11 / ICSP4 | ICSP4 | D51 / ICSP4 |
SS (SSLA0) | D10 | (TX LED) | D53 |
I2C
I2C用のピンは、A4 / A5である。
Arduino UNO R3で拡張されたSCL / SDAピンを使用すれば、他ボードとピン互換にできる。
I2C | UNO R3 / R4 | LEONARDO | MEGA 2560 |
---|---|---|---|
SCL | A5 / SCL | D3 / SCL | D21 / SCL |
SDA | A4 / SDA | D2 / SDA | D20 / SDA |
Timer
Arduino UNOには、Timer0 / Timer1 / Timer2の3つのタイマーがある。
Timer0 | Timer1 | Timer2 |
---|---|---|
D5 / D6 | D9 / D10 | D3 / D11 |
Timerを使用する関数やサードパーティ製ライブラリを使用する場合は、以下に示す事柄に注意する必要がある。
- delay関数、millis関数、micros関数等を使用する場合、Timer0およびDピン、D6ピンをPWMに使用するとデューティ比が高めになる。
- ServoライブラリはTimer1を使用するため、D9ピンおよびD10ピンでPWMが使用できない。
- ToneライブラリはTimer2を使用するため、D3ピンおよびD11ピンでPWMが使用できない。
- SPIを使用する場合は、D11ピンでPWMが使用できない。
DAC (Arduino UNO R4のみ)
Arduino UNO R4 WiFiのDACピンのデフォルトの書き込み分解能は8ビットである。
これは、このピンに書き込まれる値が0~255の間であることを意味する。
ただし、この書き込み分解能を12ビットまで変更することができ、ピンに書き込まれる値は0~4096の間となる。
analogWriteResolution(12);
OPアンプ
ルネサスのRA4M1マイコンには4つのオペアンプが内蔵されており、そのうちの1つがUNO R4ボードのピンに出力されている。
このOPアンプはプログラム制御が可能であり、ADCで使用する。
ADCの入力感度を上げることができるため、オーディオ設計に有効である。
- A1
- OPアンプの正入力
- A2
- OPアンプの負入力
- A3
- OPアンプの出力
RTC (Arduino UNO R4のみ)
リアルタイムクロック (RTC) は、時刻を計測するために使用される。
これは、時刻追跡アプリケーション等に使用することが多い。
Arduino UNO R4 WiFiにはVRTCピンがあり、電源が遮断されてもオンボードRTCを動作させ続けることができる。
これを使用するには、VRTCピンに1.6~3.6[V]の範囲の電圧を印加する必要がある。
以下の例では、RTCから日付と時刻を取得している。
#include "RTC.h"
void setup()
{
Serial.begin(9600);
RTC.begin();
RTCTime mytime(30, Month::JUNE, 2023, 13, 37, 00, DayOfWeek::WEDNESDAY, SaveLight::SAVING_TIME_ACTIVE);
RTC.setTime(mytime);
}
void loop()
{
RTCTime currenttime;
// RTCを使用して現在時刻を取得
RTC.getTime(currenttime);
// DD/MM//YYYY形式で出力する場合
Serial.print(currenttime.getDayOfMonth());
Serial.print("/");
Serial.print(Month2int(currenttime.getMonth()));
Serial.print("/");
Serial.print(currenttime.getYear());
Serial.print(" - ");
// HH/MM/SS形式で出力する場合
Serial.print(currenttime.getHour());
Serial.print(":");
Serial.print(currenttime.getMinutes());
Serial.print(":");
Serial.println(currenttime.getSeconds());
delay(1000);
}
Arduinio UNO R4 WiFiのRTC機能の詳細を知りたい場合は、公式ドキュメントを参照すること。
QWIIC (Arduino UNO R4 WiFiのみ)
QUIICコネクタは、互換性のある周辺機器を接続することができる。
I2C接続であるため、それぞれが固有のI2Cアドレスを持っている限り、複数のデバイスを接続することができる。
QUIICコネクタを使用する場合の注意点が2つある。
- 3.3[V]のI2Cバスである。そのため、5[V]のペリフェラルには接続してはならない。
- QUIIC接続は2番目のI2Cポートを使用するため、QUIICデバイスを使用する場合は、既存のスケッチを修正する必要がある。
CAN通信 (Arduino UNO R4のみ)
コントローラエリアネットワーク (CAN通信) は、マイコンとデバイスが相互に通信できるように設計された車両バス規格である。
Arduino Uno R4には、CANバス接続が1つある。
これは、物理的に直接CANバスに接続することはできないが、ロジックレベルの信号をCAN通信互換の信号に変換するトランシーバが必要になる。
Arduino UNO R4のハードウェアおよびライブラリが、バスプロトコルとデータフォーマットの処理を担当する。
※注意
MinimaとWiFiのCANバス接続が異なることに注意する。
- Minima
- D4
- CAN TX – CAN通信の送信
- D5
- CAN RX – CAN通信の受信
- D4
- WiFi
- D10
- CAN TX – CAN通信の送信
- D13
- CAN RX – CAN通信の受信
- D10
ESP32 Header (Arduino UNO R4 WiFiのみ)
ESPヘッダを使用する場合、基板上のESP32-S3の一部のGPIOピンに直接アクセスすることができる。
このヘッダ、あるいは、基板裏面のパッドを使用することにより、RA4M1マイコンとは独立してESP32をプログラミングすることが可能である。
LED Matrix (Arduino UNO R4 WiFiのみ)
Arduino UNO R4 WiFiを他のボードと区別するには、ワイヤレス機能の他に基板面積の約4分の1を占める12×8のLEDディスプレイマトリックスの存在である。
ブート / リセット
ブートプロセスに関連するピンが存在する。
- BOOT
- BOOTピンはマイコンのブートモードを変更するために使用されていたが、Arduino Uno R4ボードでは接続されていない。
- IOREF
- IOREFピンは出力となっており、5[V]に接続されている。
- このピンの目的は、ボードのロジックレベルの電圧基準を提供することである。
- RESET
- RESETピンは、LOWに保持するとマイクロコントローラをリセットする。
Arduino言語マニュアル
言語リファレンスは [ヘルプ] - [リファレンス]で閲覧できる。(Arduino IDEのインストールフォルダのreferenceフォルダにある)
Arduino日本語リファレンス(Arduino Wiki)