📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

190行目: 190行目:
|}
|}
<br>
<br>
Timerを使用する関数やライブラリを使用すると、思わぬ落とし穴に遭遇する事がある。<br>
<u>Timerを使用する関数やサードパーティ製ライブラリを使用する場合は、以下に示す事柄に注意する必要がある。</u><br>
・delay(), millis(), micros() 等の関数でTimer0を利用しており、D5, D6をPWMに使用するとデューティ比が高めになる。<br>
* delay関数、millis関数、micros関数等を使用する場合、Timer0およびDピン、D6ピンをPWMに使用するとデューティ比が高めになる。
・ServoライブラリはTimer1を利用しており、D9およびD10でPWMが使用できなくなる。<br>
* ServoライブラリはTimer1を使用するため、D9ピンおよびD10ピンでPWMが使用できない。
・ToneライブラリはTimer2を利用しており、D3およびD11でPWMが使用できなくなる。<br>
* ToneライブラリはTimer2を使用するため、D3ピンおよびD11ピンでPWMが使用できない。
・SPIを利用する場合、D11でPWMが使用できなくなる。<br>
* SPIを使用する場合は、D11ピンでPWMが使用できない。
<br><br>
 
== RTC ==
リアルタイムクロック (RTC) は、時刻を計測するために使用される。<br>
これは、時刻追跡アプリケーション等に使用することが多い。<br>
<br>
Arduino UNO R4 WiFiにはVRTCピンがあり、電源が遮断されてもオンボードRTCを動作させ続けることができる。<br>
これを使用するには、VRTCピンに1.6~3.6[V]の範囲の電圧を印加する必要がある。<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>
<br><br>