# ループ処理したい(`loop`) ```c void loop() { // メイン処理ループ } ``` `loop`関数は、Arduinoを初期化したあとに繰り返し実行される特殊な関数です。 ボードを使って実現したいメインの処理はすべてこの`loop`関数の中に定義します。 ArduinoではC/C++言語が利用できます。 ループ内の処理を関数化/モジュール化して整理できます。 :::{tip} Arduinoの開発環境にArduino IDEとPlatformIOがあります。 複数ファイルに分けてモジュール化したい場合は、[PlatformIO](./arduino-platformio.md) の利用をオススメします。 Arduino IDEではスケッチファイルが1つのディレクトリで管理されるため、大規模なプロジェクトではPlatformIOの方が構造的に整理しやすいです。 ::: :::{note} Arduino環境の`loop()`関数は、FreeRTOS上のタスクとして実行されるそうです。 タスクがデフォルトで1msごとに呼ぶだされる設定(tick=1ms)となっています。 そのため、`loop()`自体は最速で1ms周期(+1-3msのゆらぎ)で呼び出されます。 ただし、`loop()`内に時間がかかる処理がある場合は、そこで律速し、 その処理が終了するまで次の`loop()`呼び出しが待たされることになります。 また、`loop()`内の処理速度はマイコンのCPUクロックに依存します。 ESP32のCPUは240MHzなので、1msで240000クロック分の処理が可能です。 :::