pdf-icon

Arduino入門

2. デバイス&サンプル

Module Fan v1.1 Arduino チュートリアル

1. 準備

2. サンプルプログラム

サンプル説明
Module Fan v1.1 はファン冷却モジュールで、I2C通信インターフェースを使用しています。PWM周波数やデューティサイクルなどのモーター設定をサポートし、モーター速度の制御を実現して、デバイスの冷却を効果的に助けます。このサンプルでは、Module Fan v1.1 を CoreS3 主制御ユニットと組み合わせて、ファンモーターの制御を行い、状態情報を表示します。
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
#include <M5Unified.h>
#include <m5_module_fan.hpp>
M5ModuleFan moduleFan;
uint8_t deviceAddr = MODULE_FAN_BASE_ADDR;
uint8_t dutyCycle = 80;
bool fan_status = true;
M5Canvas canvas(&M5.Display);
void setup()
{
M5.begin();
Serial.begin(115200);
canvas.createSprite(320, 240);
canvas.setFont(&fonts::FreeSerifBold12pt7b);
canvas.setTextDatum(top_center);
canvas.setTextColor(WHITE);
while (!moduleFan.begin(&Wire1, deviceAddr, 12, 11, 400000)) {
Serial.printf("Module FAN Init faile\r\n");
canvas.drawString("Module FAN Init faile", 160, 120);
canvas.pushSprite(0, 0);
delay(1000);
}
// ファンを80%のデューティサイクルで回転させる
moduleFan.setPWMDutyCycle(dutyCycle);
moduleFan.setPWMFrequency(PWM_48KHZ);
moduleFan.setStatus(MODULE_FAN_ENABLE);
}
void loop()
{
int pwm_config_index = moduleFan.getPWMFrequency();
String pwm_config_str = "";
switch (pwm_config_index) {
case PWM_1KHZ:
pwm_config_str = "1KHz";
break;
case PWM_12KHZ:
pwm_config_str = "12KHz";
break;
case PWM_24KHZ:
pwm_config_str = "24KHz";
break;
case PWM_48KHZ:
pwm_config_str = "48KHz";
break;
}
canvas.setCursor(0, 10);
canvas.clear();
canvas.printf("Work Status : %s\r\n", moduleFan.getStatus() == MODULE_FAN_ENABLE ? "RUNNING" : "STOP");
canvas.printf("PWM Frequency : %s\r\n", pwm_config_str.c_str());
canvas.printf("PWM Duty Cycle : %d\r\n", moduleFan.getPWMDutyCycle());
canvas.printf("RPM : %d\r\n", moduleFan.getRPM());
canvas.pushSprite(0, 0);
M5.update();
auto t = M5.Touch.getDetail();
if (t.wasClicked() || M5.BtnA.wasClicked()) {
fan_status = !fan_status;
if (fan_status) {
moduleFan.setStatus(MODULE_FAN_ENABLE);
} else {
moduleFan.setStatus(MODULE_FAN_DISABLE);
}
}
}

3. コンパイルとアップロード

    1. ダウンロードモード: 異なるデバイスではプログラム書き込み前にダウンロードモードを設定する必要があります。異なる主制御ユニットではこの手順が異なる場合があります。詳細な手順については、Arduino IDE 入門チュートリアルページ下部のデバイスプログラムダウンロード手順リストを参照し、具体的な操作方法を確認してください。
  • CoreS3の場合、リセットボタンを長押し(約2秒)して、内部の緑色LEDが点灯したら放すと、デバイスがダウンロードモードに入り、書き込み待機状態になります。

    1. デバイスのポートを選択し、Arduino IDE の左上のコンパイルアップロードボタンをクリックして、プログラムのコンパイルとアップロードを行います。

4. ファンの起動

タッチスクリーンでファンの起動と停止を制御し、スクリーンで現在のファン回転速度と設定情報を表示します。

冷却モジュールの取り付け
Module Fan v1.1 の吸気口はモジュールの底面に設計されています。効果的な冷却を実現するためには、冷却が必要なモジュールの上部に積み重ねることをお勧めします。以下の図を参照してください。
On This Page