MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Arduinoの基礎 - ペリフェラルのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Arduinoの基礎 - ペリフェラル
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== ピン配置 == ==== Arduino UNO R3 ==== 下表に、Arduino UNO R3の全IOピンの機能を示す。<br> <br> <center> {| class="wikitable" | style="background-color:#fefefe;" |+ Arduino UNO R3のピン配置 ! style="background-color:#66CCFF;" | ピン ! style="background-color:#66CCFF;" | 種類 ! style="background-color:#66CCFF;" | 説明 |- | D0 || デジタル || UART受信 (RX) |- | D1 || デジタル || UART送信 (TX) |- | D2 || デジタル || デジタル入出力 |- | D3 || デジタル || デジタル入出力, PWM (~)<br><br>(~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。<br>Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |- | D4 || デジタル || デジタル入出力 |- | D5 || デジタル || デジタル入出力, PWM (~)<br><br>(~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。<br>Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |- | D6 || デジタル || デジタル入出力, PWM (~)<br><br>(~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。<br>Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |- | D7 || デジタル || デジタル入出力 |- | D8 || デジタル || デジタル入出力 |- | D9 || デジタル || デジタル入出力, PWM (~)<br><br>(~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。<br>Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |- | D10 || デジタル || デジタル入出力, PWM (~), SPI (SS)<br><br>(~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。<br>Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |- | D11 || デジタル || デジタル入出力, PWM (~), SPI (MOSI)<br><br>(~)は、デジタルのON / OFF (0 / 1) だけでなく、PWMによる擬似的なアナログ出力が可能であることを示している。<br>Arduino UNO R3では、0-255の範囲で出力の強さを制御できる。 |- | D12 || デジタル || デジタル入出力, SPI (MISO) |- | D13 || デジタル || デジタル入出力, SPI (SCK), 内蔵LED |- | A0 || アナログ入力 || アナログ入力 |- | A1 || アナログ入力 || アナログ入力 |- | A2 || アナログ入力 || アナログ入力 |- | A3 || アナログ入力 || アナログ入力 |- | A4 || アナログ入力 || アナログ入力, I2C (SDA) |- | A5 || アナログ入力 || アナログ入力, I2C (SCL) |} </center> <br> ==== Arduino UNO R4 WiFi ==== 下表に、Arduino UNO R4 WiFiの全IOピンの機能を示す。<br> <br> <center> {| class="wikitable" | style="background-color:#fefefe;" |+ Arduino UNO R4 WiFiのピン配置 ! style="background-color:#66CCFF;" | ピン ! style="background-color:#66CCFF;" | 種類 ! style="background-color:#66CCFF;" | 説明 |- | 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出力<br><br>UNO R4 WiFiは、最大12ビットの分解能を持つDACを搭載しており、PWMピンよりも高性能なアナログ出力ピンとして機能する。 |- | A1 || アナログ入力 || Analog入力, OPアンプ +<br><br>RA4M1には内蔵OPAMPがある。 |- | A2 || アナログ入力 || Analog入力, OPアンプ -<br><br>RA4M1には内蔵OPAMPがある。 |- | A3 || アナログ入出力 || Analog入力, OPアンプ出力<br><br>RA4M1には内蔵OPAMPがある。 |- | A4 || アナログ入力 || Analog入力, SDA<br><br>A4ピンとA5ピンは同じI2Cバスに接続されている。 |- | A5 || アナログ入力 || Analog入力, SCL<br><br>A4ピンとA5ピンは同じI2Cバスに接続されている。 |} </center> <br><br> == 各部詳細 == Arduino UNO R3の各部詳細は下図の通りである。<br> [[ファイル:Arduino UNO R3 01.jpg|フレームなし|中央]] 図の左上のUSBコネクタの近くに、ICSP2(6ピンのピンヘッダ)が無いArduinoは、<br> USB - シリアル変換にATmega16U2が使用されていない(恐らくCH340Gが使用されている)と思われるので避けたほうがよい。<br> [[ファイル:Arduino UNO R3 02.jpg|フレームなし|中央]] <br> ==== GPIO ==== 14本のデジタルIOピン(D0 - D13)、6本のアナログINピン(A0 - A5)、6本のアナログOUTピン(D3, D5, D6, D9, D10, D11)がある。<br> <br> '''・デジタルIOピン(D0 - D13)'''<br> Arduino IDEのソースコード上で入出力(INPUT, OUTPUT)として設定する。<br> センサから読み取る時は入力、アクチュエータに接続するときは出力である。<br> このピンで扱う電圧値は、HIGHとLOWの2値のみである。<br> <br> '''・アナログINピン(A0 - A5)'''<br> アナログセンサを読み取る時に使用する。<br> このピンで扱う電圧値は、0 - 1023である。<br> <br> '''・アナログOUTピン(D3, D5, D6, D9, D10, D11)'''<br> デジタルIOピンの6本のみアナログ出力として使用できる。<br> このピンで扱う電圧値は、0 - 255である。<br> どのピンをアナログ出力とするかは、Arduino IDEのソースコード上で設定する。<br> <br> ==== 電源 ==== USB電源、ACアダプタ等を電源として使用できる。(ACアダプタは9[V] 2.1[mm]センタープラス型を推奨)<br> ACアダプタとUSB電源を同時に接続しても構わないが、その場合は、ACアダプタが電源となる。<br> <br><br> == UART == UARTは、R4ボードがR3ボードと異なる部分の1つである。<br> <br> * Arduino UNO R3 *: UARTは1つでUSBコネクタとD0およびD1ピンの両方に接続されている。 * Arduino UNO R4 *: 2つのハードウェアシリアルポートを使用しており、1つはUSB、もう1つはD0とD1に接続されている。 <br> そのため、Arduino UNO R4でD0とD1を介してシリアル通信を行う場合は、Serialオブジェクトの代わりにSerial1オブジェクトを使用する必要がある。<br> <br> * D0 (TX) *: TXD1 出力 * D1 (RX) *: RXD1 入力 <br><br> == SPI == Arduino UNO R3 / R4のSPI用のピンは、D10 - D13である。<br> ICSP端子を使えば、他ボードとピン互換にできる。(SSは除く)<br> <br> [[ファイル:Arduino UNO R3 03.jpg|フレームなし|中央]] <br> <center> {| class="wikitable" |- ! !! 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 |} </center> <br><br> == I<sup>2</sup>C == I<sup>2</sup>C用のピンは、A4 / A5である。<br> Arduino UNO R3で拡張されたSCL / SDAピンを使用すれば、他ボードとピン互換にできる。<br> {| class="wikitable" |- ! I<sup>2</sup>C !! UNO R3 / R4 !! LEONARDO !! MEGA 2560 |- | SCL || A5 / SCL || D3 / SCL || D21 / SCL |- | SDA || A4 / SDA || D2 / SDA || D20 / SDA |} <br> [[ファイル:Arduino UNO R3 04.jpg|フレームなし|中央]] <br><br> == Timer == Arduino UNOには、Timer0 / Timer1 / Timer2の3つのタイマーがある。<br> {| class="wikitable" |- ! Timer0 !! Timer1 !! Timer2 |- | D5 / D6 || D9 / D10 || D3 / D11 |} <br> <u>Timerを使用する関数やサードパーティ製ライブラリを使用する場合は、以下に示す事柄に注意する必要がある。</u><br> * delay関数、millis関数、micros関数等を使用する場合、Timer0およびDピン、D6ピンをPWMに使用するとデューティ比が高めになる。 * ServoライブラリはTimer1を使用するため、D9ピンおよびD10ピンでPWMが使用できない。 * ToneライブラリはTimer2を使用するため、D3ピンおよびD11ピンでPWMが使用できない。 * SPIを使用する場合は、D11ピンでPWMが使用できない。 <br><br> == DAC (Arduino UNO R4のみ) == Arduino UNO R4 WiFiのDACピンのデフォルトの書き込み分解能は8ビットである。<br> これは、このピンに書き込まれる値が0~255の間であることを意味する。<br> <br> ただし、この書き込み分解能を12ビットまで変更することができ、ピンに書き込まれる値は0~4096の間となる。<br> <br> <syntaxhighlight lang="c++"> analogWriteResolution(12); </syntaxhighlight> <br><br> == OPアンプ == ルネサスのRA4M1マイコンには4つのオペアンプが内蔵されており、そのうちの1つがUNO R4ボードのピンに出力されている。<br> <br> このOPアンプはプログラム制御が可能であり、ADCで使用する。<br> ADCの入力感度を上げることができるため、オーディオ設計に有効である。<br> <br> * A1 *: OPアンプの正入力 * A2 *: OPアンプの負入力 * A3 *: OPアンプの出力 <br><br> == RTC (Arduino UNO R4のみ) == リアルタイムクロック (RTC) は、時刻を計測するために使用される。<br> これは、時刻追跡アプリケーション等に使用することが多い。<br> <br> Arduino UNO R4 WiFiにはVRTCピンがあり、電源が遮断されてもオンボードRTCを動作させ続けることができる。<br> <br> これを使用するには、VRTCピンに1.6~3.6[V]の範囲の電圧を印加する必要がある。<br> バックアップ用の電池ホルダ (CR1220電池) も基板上に実装済みである。<br> <br> 以下の例では、RTCから日付と時刻を取得している。<br> <syntaxhighlight lang="c++"> #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); } </syntaxhighlight> <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> == CAN通信 (Arduino UNO R4のみ) == コントローラエリアネットワーク (CAN通信) は、マイコンとデバイスが相互に通信できるように設計された車両バス規格である。<br> <br> Arduino Uno R4には、CANバス接続が1つある。<br> これは、物理的に直接CANバスに接続することはできないが、ロジックレベルの信号をCAN通信互換の信号に変換するトランシーバが必要になる。<br> Arduino UNO R4のハードウェアおよびライブラリが、バスプロトコルとデータフォーマットの処理を担当する。<br> <br> <u>※注意</u><br> <u>MinimaとWiFiのCANバス接続が異なることに注意する。</u><br> <br> * Minima ** D4 **: CAN TX – CAN通信の送信 ** D5 **: CAN RX – CAN通信の受信 *: <br> * WiFi ** D10 **: CAN TX – CAN通信の送信 ** D13 **: CAN RX – CAN通信の受信 <br><br> == ESP32 Header (Arduino UNO R4 WiFiのみ) == ESPヘッダを使用する場合、基板上のESP32-S3の一部のGPIOピンに直接アクセスすることができる。<br> このヘッダ、あるいは、基板裏面のパッドを使用することにより、RA4M1マイコンとは独立してESP32をプログラミングすることが可能である。<br> <br><br> == LED Matrix (Arduino UNO R4 WiFiのみ) == Arduino UNO R4 WiFiを他のボードと区別するには、ワイヤレス機能の他に基板面積の約4分の1を占める12×8のLEDディスプレイマトリックスの存在である。<br> <br><br> == ブート / リセット == ブートプロセスに関連するピンが存在する。<br> <br> * BOOT *: BOOTピンはマイコンのブートモードを変更するために使用されていたが、Arduino Uno R4ボードでは接続されていない。 * IOREF *: IOREFピンは出力となっており、5[V]に接続されている。 *: このピンの目的は、ボードのロジックレベルの電圧基準を提供することである。 * RESET *: RESETピンは、LOWに保持するとマイクロコントローラをリセットする。 <br><br> == Arduino言語マニュアル == 言語リファレンスは [ヘルプ] - [リファレンス]で閲覧できる。(Arduino IDEのインストールフォルダのreferenceフォルダにある)<br> [http://www.musashinodenpa.com/arduino/ref/ Arduino日本語リファレンス(Arduino Wiki)]<br> <br><br> __FORCETOC__ [[カテゴリ:Arduino]]
Arduinoの基礎 - ペリフェラル
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse