「Arduinoの基礎 - ペリフェラル」の版間の差分
(→SPI) |
(→RTC) |
||
245行目: | 245行目: | ||
<br> | <br> | ||
Arduinio UNO R4 WiFiのRTC機能の詳細を知りたい場合は、[https://docs.arduino.cc/tutorials/uno-r4-wifi/rtc 公式ドキュメント]を参照すること。<br> | Arduinio UNO R4 WiFiのRTC機能の詳細を知りたい場合は、[https://docs.arduino.cc/tutorials/uno-r4-wifi/rtc 公式ドキュメント]を参照すること。<br> | ||
<br><br> | |||
== QWIIC (Arduino UNO R4 WiFiのみ) == | |||
QUIICコネクタは、互換性のある周辺機器を接続することができる。<br> | |||
I2C接続であるため、それぞれが固有のI2Cアドレスを持っている限り、複数のデバイスを接続することができる。<br> | |||
<br> | |||
QUIICコネクタを使用する場合の注意点が2つある。<br> | |||
* 3.3[V]のI2Cバスである。そのため、5[V]のペリフェラルには接続してはならない。 | |||
* QUIIC接続は2番目のI2Cポートを使用するため、QUIICデバイスを使用する場合は、既存のスケッチを修正する必要がある。 | |||
<br><br> | |||
== ブート / リセット == | |||
ブートプロセスに関連するピンが存在する。<br> | |||
<br> | |||
* BOOT | |||
*: BOOTピンはマイコンのブートモードを変更するために使用されていたが、Arduino Uno R4ボードでは接続されていない。 | |||
* IOREF | |||
*: IOREFピンは出力となっており、5[V]に接続されている。 | |||
*: このピンの目的は、ボードのロジックレベルの電圧基準を提供することである。 | |||
* RESET | |||
*: RESETピンは、LOWに保持するとマイクロコントローラをリセットする。 | |||
<br><br> | <br><br> | ||
2024年12月9日 (月) 13:57時点における版
ピン配置
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アダプタが電源となる。
SPI
Arduino UNO R3 / R4のSPI用のピンは、D10 - D13である。
ICSP端子を使えば、他ボードとピン互換にできる。(SSは除く)
UNO R3 /R4 | LEONARDO | MEGA 2560 | |
---|---|---|---|
SCL | D13 / ICSP3 | ICSP3 | D52 / ICSP3 |
MISO | D12 / ICSP1 | ICSP1 | D50 / ICSP1 |
MOSI | D11 / ICSP4 | ICSP4 | D51 / ICSP4 |
SS | 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 |
DAC
Arduino UNO R4 WiFiのDACピンのデフォルトの書き込み分解能は8ビットである。
これは、このピンに書き込まれる値が0~255の間であることを意味する。
ただし、この書き込み分解能を12ビットまで変更することができ、ピンに書き込まれる値は0~4096の間となる。
analogWriteResolution(12);
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が使用できない。
RTC
リアルタイムクロック (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デバイスを使用する場合は、既存のスケッチを修正する必要がある。
ブート / リセット
ブートプロセスに関連するピンが存在する。
- BOOT
- BOOTピンはマイコンのブートモードを変更するために使用されていたが、Arduino Uno R4ボードでは接続されていない。
- IOREF
- IOREFピンは出力となっており、5[V]に接続されている。
- このピンの目的は、ボードのロジックレベルの電圧基準を提供することである。
- RESET
- RESETピンは、LOWに保持するとマイクロコントローラをリセットする。
Arduino言語マニュアル
言語リファレンスは [ヘルプ] - [リファレンス]で閲覧できる。(Arduino IDEのインストールフォルダのreferenceフォルダにある)
Arduino日本語リファレンス(Arduino Wiki)