### プロジェクト21:ファン
#### **(1)概要:**

このファンモジュールはHR1124Sモーター制御チップを使用しており、低導電抵抗のPMOSおよびNMOSパワートランジスタを含む単チャンネルHブリッジドライバチップです。低導電抵抗により消費電力を抑えることができ、チップを長時間安全に動作させることができます。
また、低スタンバイ電流および低静的動作電流により、玩具への応用に適しています。IN+およびIN-信号とPWM信号を出力することで、ファンの回転方向と速度を制御できます。
#### **(2)仕様:**
動作電圧:5V
電流:200MA
最大電力:2W
動作温度:-10℃~+50℃
サイズ:47.6MM \*23.8MM
#### **(3)接続図:**
ファンモジュールは大電流による駆動が必要なため、バッテリーホルダーを取り付けます。

ファンモジュールのGND、VCC、IN+、IN-ピンは、シールドのG、V、D12、D13ピンに接続されます。
#### **(4)テストコード:**
(**注意:** コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードもシリアル通信を使用するため、Bluetoothシリアル通信と競合し、アップロードに失敗する可能性があります。)
```C
/*
Keyestudio Mini Tank Robot V3 (Popular Edition)
lesson 21.1
130 motor
http://www.keyestudio.com
*/
int INA = 12;
int INB = 13;
void setup()
{
pinMode(INA, OUTPUT);//デジタルポートINAを出力に設定
pinMode(INB, OUTPUT);//デジタルポートINBを出力に設定
}
void loop()
{
//ファンを3秒間反時計回りに回転させる
digitalWrite(INA, LOW);
digitalWrite(INB, HIGH);
delay(3000);
//ファンを1秒間停止させる
digitalWrite(INA, LOW);
digitalWrite(INB, LOW);
delay(1000);
//ファンを3秒間時計回りに回転させる
digitalWrite(INA, HIGH);
digitalWrite(INB, LOW);
delay(3000);
}
```
#### **(5)テスト結果:**
コードをアップロードし、部品を配線して電源を接続します。小型ファンは3000ms間反時計回りに回転し、1000ms間停止し、300ms間時計回りに回転します。

#### **(6)応用練習:**
炎センサーの動作原理を理解しました。次に、以下に示すように炎センサーを回路に接続し、炎センサーを使用してファンで火を消す制御を行います。

(**注意:** コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードもシリアル通信を使用するため、Bluetoothシリアル通信と競合し、アップロードに失敗する可能性があります。)
```C
/*
Keyestudio Mini Tank Robot V3 (Popular Edition)
lesson 21.2
130 motor
http://www.keyestudio.com
*/
int INA = 12;
int INB = 13;
int flame = A1; //炎ピンをアナログピンA1として定義
int val = 0; //デジタル変数を定義
void setup()
{
pinMode(INA, OUTPUT);//デジタルポートINAを出力に設定
pinMode(INB, OUTPUT);//デジタルポートINBを出力に設定
pinMode(flame, INPUT); //炎センサーを入力として定義
}
void loop()
{
val = analogRead(flame); //炎センサーのアナログ値を読み取る
if (val <= 700) //アナログ値が700以下のとき、ファンをオンにする
{
//炎が検出されたときにファンをオンにする
digitalWrite(INA, LOW);
digitalWrite(INB, HIGH);
}
else
{
//それ以外の場合は動作を停止する
digitalWrite(INA, LOW);
digitalWrite(INB, LOW);
}
}
```
コードをアップロードした後、モータードライブシールドの電源スイッチをオンにすると、ロボットの左側の炎センサーが炎を検知したときにファンをオンにすることができます。
