Previous: 9.1.4.5. ボタン |
Up: 9.1.4. ソフトウェアと外付け回路の詳細 |
Next: 9.1.4.7. PSDセンサ |
図 9?4 回路図
380クラスのモータは消費電力が大きくなりますので、TO-220パッケージのスイッチング用FETを使用しました。このクラスのFETは入力容量が大きく、高速でスイッチングしたい場合には、FETドライバを使用するのが簡便です。モータを2個使用しますので部品点数が多くなっています。ハイサイドはPWM駆動のためタイマ出力に接続していますが、ローサイドはPWMでコントロールする場合も、オンにしたままになりますので、通常のGPIOに接続しています。
prvTask_Motor_Control関数(motor.c/motor.h)がモータ制御用の関数です。この関数によるタスクは、モータのスムーズな制御をするため、「だんだん加速する」「だんだん減速する」ための処理をします。
キューxMotorQueueにMotorQueue_Type型のデータを送信してモータをコントロールします。
typedef struct { ? uint8_t Instruction; ? int8_t LSpeed_To; ? int8_t RSpeed_To; ? uint16_t Period; } MotorQueue_Type; |
Instructionは指示の内容で、以下の列挙型のいずれかで指定します。
typedef enum {STOP = 0, ACCEL = 1, BRAKE = 2, CLEAR = 3, STAY = 4} MotorStatus_Type; |
このうちACCELを指定すると、Periodで指定した時間をかけて、現在の速度から、
LSpeed_To/RSpeed_Toで指定した速度に加速(減速)します。
Previous: 9.1.4.5. ボタン |
Up: 9.1.4. ソフトウェアと外付け回路の詳細 |
Next: 9.1.4.7. PSDセンサ |