(57)【特許請求の範囲】
【請求項１】
電動工具であって、
工具要素を回転駆動させるモータと、
前記電動工具の操作者から前記モータの回転速度を操作するための操作入力を受け付ける操作入力受付手段と、
前記操作入力受付手段を介して入力される前記操作入力に応じて、前記モータの回転速度を制御する回転速度制御手段と、
前記モータが予め定められた所定量回転するのに要する経過時間をカウント値としてカウントするカウント動作を実行するカウンタと、
前記モータが前記所定量回転すると、前記カウンタの前記カウント値を初期値にリセットするリセット手段と、
前記モータのロック状態が発生したか否かを判定するための判定基準となる基準時間を、前記操作入力受付手段を介して入力される前記操作入力に応じて変更する基準時間変更手段と、
前記カウンタの前記カウント値が前記基準時間に達すると、前記ロック状態が発生したと判定するロック状態判定手段と、
前記操作入力受付手段を介して入力される前記操作入力に起因して前記ロック状態の発生の誤判定が生じる場合に、前記ロック状態判定手段を無効化する第１の無効化操作と、前記カウンタによる前記カウント動作の継続を無効化する第２の無効化操作とのうちの少なくとも一方を実行する無効化手段と
を備えることを特徴とする電動工具。
【請求項２】
請求項１に記載の電動工具であって、
前記無効化手段は、前記カウンタによる前記カウント動作を停止させる停止操作、及び前記カウンタの前記カウント値を前記初期値にリセットするリセット操作のうちの少なくとも一方を実行することで、前記第２の無効化操作を実行する
ことを特徴とする電動工具。
【請求項３】
請求項１または請求項２に記載の電動工具であって、
前記無効化手段は、前記操作入力受付手段を介して入力される前記操作入力が予め指定された指定範囲内の操作入力である場合に、前記第１の無効化操作と前記第２の無効化操作とのうちの少なくとも一方を実行する
ことを特徴とする電動工具。
【請求項４】
請求項１〜３のいずれかに記載の電動工具であって、
前記無効化手段は、前記操作入力受付手段を介して入力される前記操作入力が予め指定された指定量変化した場合に、前記第１の無効化操作と前記第２の無効化操作とのうちの少なくとも一方を実行する
ことを特徴とする電動工具。
【請求項５】
請求項１〜４のいずれかに記載の電動工具であって、
前記基準時間変更手段は、前記操作入力受付手段を介して入力される前記操作入力に応じて前記基準時間を連続的に変更する連続変更操作と、前記操作入力受付手段を介して入力される前記操作入力に応じて前記基準時間を段階的に変更する段階変更操作のうちの一方を実行する
ことを特徴とする電動工具。
【請求項６】
請求項１〜５のいずれかに記載の電動工具であって、
前記基準時間変更手段は、前記操作入力受付手段を介して入力される前記操作入力に応じた前記モータの回転速度が高いほど、前記基準時間が短くなるように前記基準時間を変更する
ことを特徴とする電動工具。
【請求項７】
請求項１〜６のいずれかに記載の電動工具であって、
前記カウンタは、
周期的に変化する電気信号に基づいて、予め設定されたタイマ値をインクリメントする第１のサブカウンタと、
前記タイマ値が予め設定された閾値に達すると、予め確保された記憶領域に設定された前記カウンタの前記カウント値を繰り返しインクリメントする第２のサブカウンタと
を備えることを特徴とする電動工具。
【請求項８】
請求項１〜７のいずれかに記載の電動工具であって、
前記ロック状態が発生したと前記ロック状態判定手段が判定すると、前記モータを停止させるモータ停止手段を備える
ことを特徴とする電動工具。
【請求項９】
請求項１〜８のいずれかに記載の電動工具であって、
前記回転速度制御手段は、前記操作入力受付手段を介して入力される前記操作入力に応じて、前記モータを回転駆動させるために前記モータに印加する電圧をＰＷＭ制御することで、前記モータの回転速度を制御する
ことを特徴とする電動工具。
【請求項１０】
請求項１〜９のいずれかに記載の電動工具であって、
前記操作入力受付手段は、
前記モータの回転速度の増速操作、定速操作、及び減速操作のうちの１つを前記操作入力として受け付ける第１のスイッチと、
前記モータの回転速度の変化の割合と、前記モータの回転速度の最大値とのうちの少なくとも一方を設定する設定操作を前記操作入力として受け付ける第２のスイッチと
を備え、
前記回転速度制御手段は、前記第１のスイッチを介して入力される前記操作入力と、前記第２のスイッチを介して入力される前記操作入力とに応じて、前記モータの回転速度を制御する
ことを特徴とする電動工具。
【請求項１１】
請求項１０に記載の電動工具であって、
前記第１のスイッチは、前記第１のスイッチの位置を前記操作入力として受け付けるように、複数の位置の間で変位可能に構成されている
ことを特徴とする電動工具。
【請求項１２】
電動工具の工具要素を回転駆動させるモータが予め定められた所定量回転するのに要する経過時間をカウント値としてカウントするカウント動作を実行するカウンタと、
前記モータが前記所定量回転すると、前記カウンタの前記カウント値を初期値にリセットするリセット手段と、
前記電動工具の操作者によって入力される前記モータの回転速度を操作するための操作入力に応じて、前記モータのロック状態が発生したか否かを判定するための判定基準となる基準時間を変更する基準時間変更手段と、
前記カウンタの前記カウント値が前記基準時間に達すると、前記ロック状態が発生したと判定するロック状態判定手段と、
前記操作入力に起因して前記ロック状態の発生の誤判定が生じる場合に、前記ロック状態判定手段を無効化する第１の無効化操作と、前記カウンタによる前記カウント動作の継続を無効化する第２の無効化操作とのうちの少なくとも一方を実行する無効化手段と
を備えることを特徴とするロック状態発生判定装置。
【請求項１３】
コンピュータを、請求項１２に記載のロック状態発生判定装置における、カウンタと、リセット手段と、基準時間変更手段と、ロック状態判定手段と、無効化手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電動工具の工具要素を回転駆動させるモータがロックしたか否かを判定する技術に関する。
【背景技術】
【０００２】
特許文献１に開示されている電動工具では、モータがロックしたか否かを判定するための複数のロック判定時間と、複数のロック判定時間の各々に対応する、トリガスイッチの操作量とが記憶されている。より具体的には、速度モードが同一の場合において、大きな操作量に対しては、短いロック判定時間が対応づけられ、小さな操作量に対しては、長いロック判定時間が対応づけられている。
【０００３】
そして、この電動工具では、以下のような制御処理が実行される。
すなわち、初期処理が実行されたのち、電動工具がアブノーマル状態であるか否かが判定され、電動工具が正常状態であると判定されると、トリガスイッチがＯＮされているか否かが判定される。トリガスイッチがＯＮされていると判定されると、トリガスイッチの操作量に応じたロック判定時間が選択され、トリガスイッチの操作量に応じたデューティ比でモータが駆動されるとともに、モータが一定量回転するのに要する経過時間を計測するカウンタがインクリメントされる。カウンタの値が、選択されたロック判定時間に達する前にモータが一定量回転すれば、カウンタの値がゼロにリセットされ、バッテリ電圧に関する判定手順を実行したのち、上述のアブノーマル状態に関する判定手順及びそれ以降の手順が再度実行される一方、モータがロックして、カウンタの値が、選択されたロック判定時間に達すると、モータがロックしたと判定されて、上述のアブノーマル状態の判定手順が再度実行され、電動工具がアブノーマル状態であると判定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２８５８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の制御処理では、カウンタがインクリメントされたのち、アブノーマル状態の判定手順及びそれ以降の手順が再度実行されるときに、新たなロック判定時間がトリガスイッチの操作量に応じて再度選択される。
【０００６】
このため、小さなトリガスイッチの操作量に対して長いロック判定時間が選択されてから新たなロック判定時間が選択されるまでの間に、トリガスイッチの操作量が著しく大きくなり、そして、短いロック判定時間が新たに選択されると、カウンタの値が直ちにロック判定時間に達してしまう可能性がある。そして、これに起因して、モータがロックしていないにもかかわらず、モータがロックしたと誤判定される可能性がある。
【０００７】
そこで、本発明は、電動工具の工具要素を回転駆動させるモータの回転速度を操作するために電動工具の操作者によって入力される操作入力に起因して、モータのロック状態の発生を誤判定することを防止可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた本発明の第１局面における電動工具は、モータと、操作入力受付手段と、回転速度制御手段と、カウンタと、リセット手段と、基準時間変更手段と、ロック状態判定手段と、無効化手段とを備える。
【０００９】
モータは、工具要素を回転駆動させ、操作入力受付手段は、電動工具の操作者からモータの回転速度を操作するための操作入力を受け付け、回転速度制御手段は、操作入力受付手段を介して入力される操作入力に応じて、モータの回転速度を制御する。カウンタは、モータが予め定められた所定量回転するのに要する経過時間をカウント値としてカウントするカウント動作を実行し、リセット手段は、モータが所定量回転すると、カウンタのカウント値を初期値にリセットする。基準時間変更手段は、モータのロック状態が発生したか否かを判定するための判定基準となる基準時間を、操作入力受付手段を介して入力される操作入力に応じて変更し、ロック状態判定手段は、カウンタのカウント値が基準時間に達すると、ロック状態が発生したと判定する。無効化手段は、操作入力受付手段を介して入力される操作入力に起因してロック状態の発生の誤判定が生じる場合に、ロック状態判定手段を無効化する第１の無効化操作と、カウンタによるカウント動作の継続を無効化する第２の無効化操作とのうちの少なくとも一方を実行する。
【００１０】
このように構成された電動工具では、操作入力に起因してロック状態の発生の誤判定が生じる場合に、ロック状態判定手段が無効化されることで、あるいは、カウンタによるカウント動作の継続が無効化されて、カウンタのカウント値が基準時間に達することが回避されることで、誤判定の発生を防止できる。
【００１１】
工具要素は、電動工具に離脱可能に取り付けられてもよいし、あるいは、電動工具に離脱不能に取り付けられてもよい。
無効化手段は、第２の無効化操作において、カウンタによるカウント動作の継続をどのように無効化してもよく、例えば、カウンタによるカウント動作を停止させる停止操作を実行することでカウント動作の継続を無効化してもよい。
【００１２】
カウント動作が停止されれば、カウンタのカウント値が増加しなくなるので、カウント値が基準時間に達することを確実に防止することができる。
あるいは、無効化手段は、例えば、カウンタのカウント値を初期値にリセットするリセット操作を実行することで、カウンタによるカウント動作の継続を無効化してもよい。
【００１３】
カウンタのカウント値が初期値にリセットされれば、カウント値が初期値にリセットされるまでにカウントされたカウント値が無効となるので、カウンタのカウント値が基準時間に達することを確実に防止することができる。
【００１４】
また、無効化手段は、操作入力受付手段を介して入力される操作入力に起因してロック状態の発生の誤判定が生じるあらゆる場合において、第１の無効化操作と第２の無効化操作とのうちの少なくとも一方を実行してもよい。
【００１５】
無効化手段は、例えば、操作入力受付手段を介して入力される操作入力が予め指定された指定範囲内の操作入力である場合に、第１の無効化操作と第２の無効化操作とのうちの少なくとも一方を実行してもよい。
【００１６】
つまり、ロック状態の発生の誤判定が生じる操作入力の範囲を指定範囲に設定すれば、無効化手段は、操作入力に起因してロック状態の発生の誤判定が生じる場合に、ロック状態判定手段を無効化、あるいはカウンタによるカウント動作の継続を無効化できる。
【００１７】
あるいは、無効化手段は、例えば、操作入力受付手段を介して入力される操作入力が予め指定された指定量変化した場合に、第１の無効化操作と第２の無効化操作とのうちの少なくとも一方を実行してもよい。
【００１８】
つまり、ロック状態の発生の誤判定が生じる操作入力の変化量を指定量に設定すれば、無効化手段は、操作入力に起因してロック状態の発生の誤判定が生じる場合に、ロック状態判定手段を無効化、あるいはカウンタによるカウント動作の継続を無効化できる。
【００１９】
また、基準時間変更手段は、操作入力受付手段を介して入力される操作入力に応じて基準時間をどのように変更してもよく、例えば、連続的に基準時間を変更してもよい。
この場合、操作入力に対して連続的に適切な基準時間を設定することができる。
【００２０】
あるいは、基準時間変更手段は、操作入力受付手段を介して入力される操作入力に応じて、例えば、段階的に基準時間を変更してもよい。
この場合、操作入力に対して段階的に適切な基準時間を設定することができる。
【００２１】
また、基準時間変更手段は、操作入力受付手段を介して入力される操作入力に応じたモータの回転速度が高いほど、基準時間が短くなるように基準時間を変更してもよい。
モータの回転速度が高いほど、モータが所定量回転するのに要する経過時間は短くなるので、このように基準時間を変更すれば、ロック状態が発生したことをより適切に判定することができる。
【００２２】
また、カウンタは、経過時間をカウント値としてカウントするためにどのように構成されていてもよく、例えば、第１のサブカウンタと、第２のサブカウンタとを備えてもよい。
【００２３】
第１のサブカウンタは、周期的に変化する電気信号に基づいて、予め設定されたタイマ値をインクリメントし、第２のサブカウンタは、第１のサブカウンタによってインクリメントされたタイマ値が予め設定された閾値に達すると、予め確保された記憶領域に設定されたカウンタのカウント値を繰り返しインクリメントする。
【００２４】
この場合、例えば、基準時間に相当する値よりも小さく、且つ、ロック状態が発生していないときにタイマ値が到達し得ない値を閾値に設定することで、ロック状態が明らかに発生していないにも拘わらず、第２のサブカウンタによって、カウンタのカウント値が無駄にインクリメントされることを防止できる。
【００２５】
また、上述の電動工具は、ロック状態が発生したとロック状態判定手段が判定すると、モータを停止させるモータ停止手段を備えてもよい。
この場合、ロック状態が発生したときにモータを停止させることで、ロック状態に起因してモータが損傷することを防止することができる。
【００２６】
また、回転速度制御手段は、操作入力受付手段を介して入力される操作入力に応じて、モータの回転速度をどのように制御してもよく、例えば、モータを回転駆動させるためにモータに印加する電圧をＰＷＭ制御することで、モータの回転速度を制御してもよい。
【００２７】
この場合、モータに供給される電力を著しく損失させることなく、モータの回転速度を制御することができる。
また、操作入力受付手段は、電動工具の操作者からの操作入力を受け付けるためにどのように構成されていてもよく、例えば、モータの回転速度の増速操作、定速操作、及び減速操作のうちの１つを操作入力として受け付ける第１のスイッチと、モータの回転速度の変化の割合と、モータの回転速度の最大値とのうちの少なくとも一方を設定する設定操作を操作入力として受け付ける第２のスイッチとを備えてもよい。
【００２８】
そして、この場合、回転速度制御手段は、第１のスイッチを介して入力される操作入力と、第２のスイッチを介して入力される操作入力とに応じて、モータの回転速度を制御してもよい。
【００２９】
このように構成された電動工具によれば、電動工具の操作者は、モータの回転速度の増速操作、定速操作、及び減速操作を行うとともに、モータの回転速度の変化の割合と、モータの回転速度の最大値とのうちの少なくとも一方を設定することができ、ひいては、電動工具をより好適に操作することができる。
【００３０】
第１のスイッチは、増速操作、定速操作、及び減速操作のうちの１つを操作入力として受け付けるためにどのように構成されていてもよく、例えば、第１のスイッチの位置を操作入力として受け付けるように、複数の位置の間で変位可能に構成されていてもよい。
【００３１】
この場合、電動工具の操作者は、第１のスイッチの位置を変化させることで、モータの回転速度の増速操作、定速操作、及び減速操作を実行することができる。
次に、本発明の第２局面におけるロック状態発生判定装置は、カウンタと、リセット手段と、基準時間変更手段と、ロック状態判定手段と、無効化手段とを備える。
【００３２】
カウンタは、電動工具の工具要素を回転駆動させるモータが予め定められた所定量回転するのに要する経過時間をカウント値としてカウントするカウント動作を実行する。リセット手段は、モータが所定量回転すると、カウンタのカウント値を初期値にリセットする。基準時間変更手段は、電動工具の操作者によって入力されるモータの回転速度を操作するための操作入力に応じて、モータのロック状態が発生したか否かを判定するための判定基準となる基準時間を変更する。ロック状態判定手段は、カウンタのカウント値が基準時間に達すると、ロック状態が発生したと判定する。無効化手段は、操作入力に起因してロック状態の発生の誤判定が生じる場合に、ロック状態判定手段を無効化する第１の無効化操作と、カウンタによるカウント動作の継続を無効化する第２の無効化操作とのうちの少なくとも一方を実行する。
【００３３】
このように構成されたロック状態発生判定装置では、操作入力に起因してロック状態の発生の誤判定が生じる場合に、ロック状態判定手段が無効化されることで、あるいはカウンタによるカウント動作の継続が無効化されて、カウンタのカウント値が基準時間に達することが回避されることで、誤判定の発生を防止できる。
【００３４】
次に、本発明の第３局面におけるプログラムは、コンピュータを、第２局面におけるロック状態発生判定装置における、カウンタと、リセット手段と、基準時間変更手段と、ロック状態判定手段と、無効化手段として機能させるためのプログラムである。
【００３５】
このプログラムによれば、コンピュータを第２局面のロック状態判定装置として機能させることができる。
ここで、上述のコンピュータは、周知のコンピュータであってもよいし、電動工具に好適に構成されたコンピュータであってもよい。
【００３６】
また、上述のプログラムは、コンピュータに組み込まれるＲＯＭやバックアップＲＡＭに記憶され、これらＲＯＭやバックアップＲＡＭからコンピュータにロードされて用いられてもよいし、ネットワークを介してコンピュータにロードされて用いられてもよい。
【００３７】
また、上述のプログラムは、コンピュータにて読み取り可能なあらゆる形態の記録媒体に記録されて用いられてもよい。記録媒体としては、例えば、持ち運び可能な半導体メモリ（例えばＵＳＢメモリ、メモリカード（登録商標）など）などが含まれる。
【図面の簡単な説明】
【００３８】
【図１】第１実施形態における電動工具の外観を表す斜視図である。
【図２】電動工具に搭載された、モータの駆動装置の構成を表す電気回路図である。
【図３】トリガスイッチの引き量（ＬＥＶＥＬ）に対するＤＵＴＹ（デューティ比）の変化の概略を表す説明図である。
【図４】トリガスイッチの引き量（ＬＥＶＥＬ）に対する、ＤＵＴＹ（デューティ比）及びロック判定時間の各値が設定されたテーブルを表す説明図である。
【図５】電動工具のＣＰＵによって実行されるメインルーチンの流れを示すフローチャートである。
【図６】メインルーチンにおけるトリガスイッチ情報取得処理の一部の流れを示すフローチャートである。
【図７】トリガスイッチ情報取得処理の残りの流れを示すフローチャートである。
【図８】メインルーチンにおけるモータ制御処理の流れを示すフローチャートである。
【図９】メインルーチンにおけるロック状態判定処理の流れを示すフローチャートである。
【図１０】第２実施形態におけるロック状態判定処理の流れを示すフローチャートである。
【図１１】第３実施形態のＣＰＵによって実行されるカウンタ処理の流れを示すフローチャートである。
【図１２】第３実施形態におけるロック状態判定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００３９】
以下に本発明の実施形態を図面を参照しながら説明する。
［第１実施形態］
図１に示すように、本第１実施形態の電動工具１は、所謂インパクトドライバとして構成されている。
【００４０】
より具体的には、電動工具１は、本体ハウジング５と、バッテリパック６とを備えている。本体ハウジング５は、半割ハウジング２，３を組み付けることにより形成されており、当該本体ハウジング５の下方には、ハンドル部４が延設されている。バッテリパック６は、このハンドル部４の下端に離脱可能に装着されている。
【００４１】
本体ハウジング５の後部には、当該電動工具１の動力源となるモータ２０（図２参照）を収納するモータ収納部７が設けられており、モータ収納部７よりも前方には、図示しない、減速機構及び打撃機構が収納されている。
【００４２】
そして、本体ハウジング５の先端には、工具要素の一例である、図示しない工具ビット（例えばドライバビット）を打撃機構の先端に着脱可能なチャックスリーブ８が突設されている。
【００４３】
ここで、打撃機構は、例えば、スピンドルと、ハンマと、アンビルとを備える。スピンドルは、減速機構を介して回転され、ハンマは、スピンドルと共に回転し、且つ、軸方向へ移動可能であり、アンビルは、ハンマの前方に配設され、当該アンビルの先端に工具ビットが取り付けられる。
【００４４】
より具体的には、打撃機構は以下のように構成されている。
即ち、打撃機構では、モータ２０の回転に伴いスピンドルが回転すると、ハンマを介してアンビルが回転し、工具ビットを回転させる。その後、工具ビットによるねじ締めが進みアンビルへの負荷が高まると、ハンマが、コイルばねの付勢力に抗して後退し、アンビルから外れる。そして、ハンマが、スピンドルと共に回転しつつコイルばねの付勢力で前進してアンビルに再係合することで、アンビルに間欠的な打撃が加えられ、増し締めが行われる。尚、このような打撃機構は、例えば、特開２００６−２１８６０５号公報などに開示されているため、ここでは打撃機構の詳細な説明は省略する。
【００４５】
本体ハウジング５におけるハンドル部４の上端側には、電動工具１の操作者がハンドル部４を握った状態で操作可能なトリガスイッチ１０が設けられている一方、ハンドル部４の下端側には、モータ２０の回転速度の速度モード（延いては工具ビットの回転速度の速度モード）を設定するための、押しボタン式の速度モード切替スイッチ９が設けられている。
【００４６】
本第１実施形態の電動工具１は、操作者が速度モード切替スイッチ９を操作することにより、上述の速度モードを高速モード、中速モード、及び低速モードのうちのいずれか１つに切替可能に構成されている（初期設定では、高速モードが設定されている）。モータ２０の最大回転速度（最大デューティ比）は、速度モード毎に異なり、高速モードの場合の最大回転速度（最大デューティ比）が最も大きく、低速モードの場合の最大回転速度が最も小さい。つまり、操作者がトリガスイッチ１０を操作すると、速度モード切替スイッチ９により設定されている速度モードに対応した最大回転速度を上限として、そのトリガスイッチ１０の操作量（引き量）に応じた設定回転速度にてモータ２０が回転する。
【００４７】
図２に示すように、バッテリパック６には、バッテリ１８が内蔵されており、バッテリ１８は、所定の直流電圧を発生する、図示しない複数の二次電池セルが直列に接続されて構成されている。そして、ハンドル部４内に設けられた駆動装置１１は、バッテリ１８から電力の供給を受けて動作し、速度モード切替スイッチ９とトリガスイッチ１０とを介して入力される操作入力に応じてモータ２０を回転させるように構成されている。
【００４８】
より具体的には、駆動装置１１は、モータ駆動回路１２と、ゲート回路２１〜２６と、制御回路１３と、レギュレータ１５と、クロック信号発生器１９とを備えている。
本第１実施形態のモータ２０は、３相ブラシレス直流モータとして構成されており、モータ２０における端子Ｕ，Ｖ，Ｗが、モータ駆動回路１２を介して、バッテリパック６（より具体的にはバッテリ１８）に接続されている。端子Ｕ，Ｖ，Ｗはそれぞれ、モータ２０の図示しない回転子を回転させるためにモータ２０に設けられた図示しない３つのコイルのうちのいずれか１つに接続されている。
【００４９】
モータ駆動回路１２は、モータ２０の端子Ｕ，Ｖ，Ｗの各々とバッテリ１８の正極側とを接続する、所謂ハイサイドスイッチとしての３つのスイッチング素子Ｑ１〜Ｑ３と、同じくモータ２０の端子Ｕ，Ｖ，Ｗの各々とバッテリ１８の負極側とを接続する、所謂ローサイドスイッチとしての３つのスイッチング素子Ｑ４〜Ｑ６とを含むブリッジ回路として構成されている。本第１実施形態におけるスイッチング素子Ｑ１〜Ｑ６は、周知のＭＯＳＦＥＴである。
【００５０】
ゲート回路２１〜２６の各々は、制御回路１３に接続されている一方で、スイッチング素子Ｑ１〜Ｑ６のうちのいずれか１つのゲート及びソースに接続されている。ゲート回路２１〜２６の各々は、スイッチング素子Ｑ１〜Ｑ６の各々のオン／オフを制御するために制御回路１３から当該ゲート回路２１〜２６の各々に入力される制御信号に基づいて、スイッチング素子Ｑ１〜Ｑ６の各々をオン／オフするためのスイッチング電圧を各スイッチング素子Ｑ１〜Ｑ６のゲート−ソース間に印加して、各スイッチング素子Ｑ１〜Ｑ６をオン／オフする。
【００５１】
レギュレータ１５は、バッテリ１８が生成する直流電圧（例えば１４．４ＶＤＣ）を降圧して、所定の直流電圧である制御電圧Ｖｃｃ（例えば５ＶＤＣ）を生成し、生成した制御電圧Ｖｃｃを、制御回路１３を含む、駆動装置１１内の所定の回路に印加している。
【００５２】
クロック信号発生器１９は、図示しない経路を介して、制御回路１３から所定の直流電圧を印加されている間、周知のクロック信号を発生するように構成されている。本第１実施形態のクロック信号発生器１９は、制御回路１３の外部に設けられているが、制御回路１３の内部に設けられてもよい。
【００５３】
制御回路１３は、所謂ワンチップマイクロコンピュータとして構成されており、少なくとも、ＣＰＵ１３１と、メモリ１３２と、入出力（Ｉ／Ｏ）ポート１３３と、アナログ／デジタル（Ａ／Ｄ）変換器１３４と、タイマ１３５とを含んでいる。メモリ１３２は、ＲＯＭ、ＲＡＭ、及び書換可能な不揮発性メモリ素子（例えばフラッシュＲＯＭやＥＥＰＲＯＭなど）を含み、ＣＰＵ１３１は、上述のクロック信号に同期して動作し、メモリ１３２に記憶された各種プログラムに従って、各種処理を実行する。タイマ１３５は、上述のクロック信号、あるいは上述のクロック信号を分周して生成されるパルス列信号に基づいて、時間を計測する周知のタイマである。より具体的には、タイマ１３５は、上述のクロック信号、あるいは上述のクロック信号を分周して生成されるパルス列信号に基づいて、計測した時間を示すタイマ値をインクリメントする。
【００５４】
制御回路１３には、上述の速度モード切替スイッチ９と、上述のトリガスイッチ１０と、モータ２０に設けられた回転位置センサ１４とが接続されている。
速度モード切替スイッチ９は、常時開状態の周知の押しスイッチであり、当該速度モード切替スイッチ９の一端には、制御回路１３における所定の入力ポートが接続されているとともに、抵抗器Ｒ１を介して、制御電圧Ｖｃｃが印加されている。
【００５５】
速度モード切替スイッチ９の他端は、電動工具１における基準電位（０Ｖ）に設定されたグランドラインに接続されている。尚、本第１実施形態では、グランドラインは、バッテリ１８の負極に接続されているため、バッテリ１８の負極の電位が基準電位に設定されている。
【００５６】
つまり、制御回路１３には、速度モード切替スイッチ９の操作状態に応じて、電圧値が制御電圧Ｖｃｃに近い値もしくは０Ｖに近い値に設定される２値の電圧信号（速度モード切替信号）が入力される。
【００５７】
より具体的には、通常時は、速度モード切替スイッチ９の接点が開いているため、速度モード切替信号の電圧の論理レベルは、Ｈｉｇｈレベル（制御電圧Ｖｃｃ付近）となる。一方、操作者が速度モード切替スイッチ９を押して、当該速度モード切替スイッチ９の接点が閉じられると、速度モード切替信号の電圧の論理レベルは、Ｌｏｗレベル（０Ｖ付近）となる。尚、操作者が速度モード切替スイッチ９を離すと、速度モード切替スイッチ９は、図示しないバネの弾性力によって再び開状態となる。
【００５８】
トリガスイッチ１０は、駆動開始スイッチ１６と可変抵抗器１７とを含んでいる。
駆動開始スイッチ１６は、トリガスイッチ１０が引かれているか否かを検出するためのスイッチであり、駆動開始スイッチ１６の一端には、制御回路１３における所定の入力ポートが接続されているとともに、抵抗器Ｒ２を介して、制御電圧Ｖｃｃが印加されている。一方、駆動開始スイッチ１６の他端には、グランドラインが接続されている。
【００５９】
つまり、制御回路１３には、トリガスイッチ１０が引かれているか否かに応じて、電圧値が０Ｖに近い値もしくは制御電圧Ｖｃｃに近い値に設定される２値の電圧信号（駆動開始信号）が入力される。
【００６０】
可変抵抗器１７は、トリガスイッチ１０の操作量（引き量）を検出するための周知のポテンショメータである。より具体的には、可変抵抗器１７は、トリガスイッチ１０の操作量に応じて、電圧が０Ｖ付近から制御電圧Ｖｃｃ付近まで変化する電圧信号（トリガ操作量信号）を制御回路１３の所定の入力ポートに入力するように、上述のレギュレータ１５の出力端子（制御電圧Ｖｃｃの出力端子）と、グランドラインと、制御回路１３とに接続されている。
【００６１】
回転位置センサ１４は、少なくとも１つのホール素子を含み、モータ２０の回転子の回転位置が所定の回転位置に達する毎（即ち、モータ２０が所定量回転する毎）に、制御回路１３へパルス信号を出力する。
【００６２】
つまり、上述のように構成された駆動装置１１では、操作者がトリガスイッチ１０を引き始めると（例えば少量引くと）、駆動開始スイッチ１６がオンし、駆動開始信号の電圧の論理レベルがＬｏｗレベル（０Ｖ付近）となる。制御回路１３は、駆動開始信号の電圧の論理レベルがＬｏｗレベルになると、可変抵抗器１７から入力されるトリガ操作量信号の電圧値に応じた制御信号をゲート回路２１〜２６に出力して、モータ駆動回路１２内の各スイッチング素子Ｑ１〜Ｑ６をオン／オフさせることで、モータ２０を始動させる。そして、制御回路１３は、回転位置センサ１４からのパルス信号に基づいてモータ２０の回転位置及び回転速度を算出し、算出した回転速度が、速度モード切替スイッチ９及びトリガスイッチ１０の操作状態により定まる設定回転速度と一致するように、ゲート回路２１〜２６とモータ駆動回路１２とを介して、モータ２０を制御する。
【００６３】
より具体的には、制御回路１３は、速度モード切替スイッチ９により設定されている速度モードに対応した最大回転速度を上限として、トリガスイッチ１０の引き量が大きいほど回転速度が大きくなるように、ゲート回路２１〜２６及びモータ駆動回路１２を介してモータ２０の端子Ｕ，Ｖ，Ｗの各々に印加される電圧（駆動電圧）のデューティ比を設定する。
【００６４】
図３に示すように、本第１実施形態では、トリガスイッチ１０の引き量（ＬＥＶＥＬ）が２０段階（ＬＥＶＥＬ１〜ＬＥＶＥＬ２０）に設定され、各段階（ＬＥＶＥＬ）毎にデューティ比（ＤＵＴＹ）が設定されている。トリガスイッチ１０の引き量（ＬＥＶＥＬ）に対するＤＵＴＹは、各速度モードのいずれも、引き量が増すに従ってＤＵＴＹが増加（一部不変）するように設定されている。
【００６５】
但し、ＤＵＴＹの増減の傾向（つまり、モータ２０の回転速度の変化率）は、速度モード毎に異なっており、高速モードに設定されているときには、最大ＤＵＴＹをＮＨｍａｘ（本第１実施形態では１００％）として、トリガスイッチ１０の引き量が増すに従ってＤＵＴＹがこのＮＨｍａｘに向けて増加していく。そして、操作者がトリガスイッチ１０を最大限に引いたときには、ＤＵＴＹが最大のＮＨｍａｘとなる。中速モードに設定されているときには、最大ＤＵＴＹをＮＭｍａｘ（本第１実施形態では６５％）として、トリガスイッチ１０の引き量が増すに従ってＤＵＴＹがこのＮＭｍａｘに向けて増加していく。そして、操作者がトリガスイッチ１０を最大限に引いたときには、ＤＵＴＹが最大のＮＭｍａｘとなる。低速モードに設定されているときには、最大ＤＵＴＹをＮＬｍａｘ（本第１実施形態では３８％）として、トリガスイッチ１０の引き量が増すに従ってＤＵＴＹがこのＮＬｍａｘに向けて増加していく。そして、操作者がトリガスイッチ１０を最大限に引いたときには、ＤＵＴＹが最大のＮＬｍａｘとなる。
【００６６】
尚、図３に示したＤＵＴＹの変化は、トリガスイッチ１０の引き量に対するＤＵＴＹの変化の傾向を概略的に示したものであり、引き量に対するＤＵＴＹの具体的な値は、制御回路１３のメモリ１３２に記憶されたテーブルに設定されている。図４に示すように、本第１実施形態のメモリ１３２には、各々が各速度モードに対応する３つのテーブルが記憶されており、各テーブルには、トリガスイッチ１０の引き量（ＬＥＶＥＬ）に対する、ＤＵＴＹ（デューティ比）と、後述するロック判定時間Ｔｒとが設定されている。
【００６７】
制御回路１３は、さらに、回転位置センサ１４からのパルス信号に基づき、モータ２０のロック状態が発生しているか否かを判定する。より具体的には、電動工具１の使用中、インパクト機構の異常等によってモータ２０がロック状態になると、モータ２０に過電流が流れるアブノーマル状態となる。このため、ロック状態になったときには速やかに通電停止等の保護動作を行う必要がある。
【００６８】
ロック状態が発生したか否かを判定するための１つの手法としては、判定基準となるロック判定時間Ｔｒを予め設定しておき、回転位置センサ１４からのパルス信号がこのロック判定時間Ｔｒの間に入力されなかった場合に、ロック状態が発生したと判定するという手法がある。
【００６９】
ここで、デューティ比に対する回転速度の変化について考察すると、デューティ比が大きいほど、回転速度は大きくなって、単位時間あたりに回転位置センサ１４から制御回路１３に入力されるパルス信号の数も多くなる。そのため、デューティ比が大きい場合には、ロック判定時間Ｔｒを比較的短い時間に設定するとよい。仮にロック判定時間Ｔｒが長すぎる場合、デューティ比が大きいときにロック状態が発生すると、モータ２０に大きな過電流が流れ続けているにもかかわらず、ロック状態が発生したとはすぐには判定されず、モータ２０が損傷する可能性がある。
【００７０】
一方、デューティ比が小さければ小さいほど、回転速度は小さくなり、単位時間あたりに回転位置センサ１４から制御回路１３に入力されるパルス信号の数も少なくなる。そのため、デューティ比が小さい場合には、ロック判定時間Ｔｒを比較的長い時間に設定するとよい。仮にロック判定時間Ｔｒが短すぎる場合、デューティ比が小さいときには、ロック状態が発生することなくモータ２０が低速で正常に回転しているにもかかわらず、ロック状態が発生したと誤判定されてしまう可能性がある。
【００７１】
そこで、本第１実施形態では、デューティ比が大きいほどロック判定時間Ｔｒが短くなるようにロック判定時間Ｔｒを変更する。具体的には、図４に示すように、トリガスイッチ１０の引き量（ＬＥＶＥＬ）に応じてＤＵＴＹが大きくなるほど、ロック判定時間Ｔｒが短くなるように、逆に言えば、ＤＵＴＹが小さくなるほどロック判定時間Ｔｒは長くなるように、各ＤＵＴＹに対して、個別のロック判定時間Ｔｒが設定されている。ただし、トリガスイッチ１０の引き量（ＬＥＶＥＬ）に対するＤＵＴＹの値、及びロック判定時間の値は、速度モード毎に異なって設定されている。より具体的には、図４（ａ）に示すように、低速モードのためのテーブルでは、トリガスイッチ１０の引き量が所定値（ＬＥＶＥＬ４）を越えると、引き量が大きくなるほどロック判定時間Ｔｒが連続的に小さくなるようにロック判定時間Ｔｒの各値が設定されている。また、図４（ｂ），（ｃ）に示すように、中速モードのためのテーブル及び高速モードのためのテーブルでは、トリガスイッチ１０の引き量が所定値（ＬＥＶＥＬ３）を越えると、引き量が大きくなるほどロック判定時間Ｔｒが段階的に小さくなるようにロック判定時間Ｔｒの各値が設定されている。
【００７２】
以下、上述のような制御回路１３の動作を実現するために制御回路１３のＣＰＵ１３１が実行する各種処理について説明する。
ＣＰＵ１３１は、電動工具１にバッテリパック６が装着されて、制御回路１３に制御電圧Ｖｃｃが印加されると起動し、図５に示すメインルーチンを実行する。
【００７３】
図５に示すように、本メインルーチンでは、まず、メモリ１３２を初期化する初期化処理が実行される（Ｓ１０）。Ｓ１０において、ＣＰＵ１３１は、メモリ１３２に記憶されている各種情報のうち、初期化すべき情報を初期化する。
【００７４】
初期化処理が終了すると、図６，７に示す後述のトリガスイッチ情報取得処理（Ｓ２０）と、図８に示す後述のモータ制御処理（Ｓ３０）と、図９に示す後述のロック状態判定処理（Ｓ４０）とが順番に繰り返し実行される。
【００７５】
図６，７に示すように、トリガスイッチ情報取得処理では、まず、上述の駆動開始信号の電圧の論理レベルに基づいて、トリガスイッチ１０が引かれているか否かを判定する（Ｓ１１０）。トリガスイッチ１０が引かれている場合には（Ｓ１１０：ＹＥＳ）、トリガスイッチ１０が引かれていることを示すフラグ（ｔｒｉｇｇｅｒ＿ｏｎ＿ｆｌａｇ）をセットして（Ｓ１１５）、後述のＳ１３０へ移行する。
【００７６】
Ｓ１１０において、トリガスイッチ１０が引かれていない場合には（Ｓ１１０：ＮＯ）、ｔｒｉｇｇｅｒ＿ｏｎ＿ｆｌａｇをクリアし（Ｓ１２０）、上述のアブノーマル状態の発生を検出したことを示すフラグ（ｅｒｒｏｒ＿ｄｅｔｅｃｔｅｄ＿ｆｌａｇ）をクリアしたのち（Ｓ１２５）、トリガスイッチ１０の引き量を検出するための引き量検出処理を実行する（Ｓ１３０）。この引き量検出処理では、ＣＰＵ１３１は、上述のトリガ操作量信号の電圧に基づいて、トリガスイッチ１０の引き量を検出し、検出した引き量をメモリ１３２の所定の記憶領域（引き量記憶領域）に記憶する。
【００７７】
引き量検出処理が終了すると、ｔｒｉｇｇｅｒ＿ｏｎ＿ｆｌａｇがセットされているか否かを判定し（Ｓ１３５）、ｔｒｉｇｇｅｒ＿ｏｎ＿ｆｌａｇがセットされている場合には（Ｓ１３５：ＹＥＳ）、本トリガスイッチ情報取得処理を直ちに終了する。
【００７８】
一方、ｔｒｉｇｇｅｒ＿ｏｎ＿ｆｌａｇがセットされていない場合には（Ｓ１３５：ＮＯ）、上述の速度モード切替信号の電圧の論理レベルに基づいて、速度モード切替スイッチ９が押されたか否か判定する（Ｓ１４０）。速度モード切替スイッチ９が押されていない場合には（Ｓ１４０：ＮＯ）、速度モードの切替が完了したことを示すフラグ（ｍｏｄｅ＿ｓｗｉｔｃｈｅｄ＿ｆｌａｇ）をクリアして（Ｓ１４５）、本トリガスイッチ情報取得処理を直ちに終了する。一方、速度モード切替スイッチ９が押されている場合には（Ｓ１４０：ＹＥＳ）、ｍｏｄｅ＿ｓｗｉｔｃｈｅｄ＿ｆｌａｇがセットされているか否かを判定する（Ｓ１５０）。
【００７９】
ｍｏｄｅ＿ｓｗｉｔｃｈｅｄ＿ｆｌａｇがセットされている場合には（Ｓ１５０：ＹＥＳ）、本トリガスイッチ情報取得処理を直ちに終了する一方、ｍｏｄｅ＿ｓｗｉｔｃｈｅｄ＿ｆｌａｇがセットされていない場合には（Ｓ１５０：ＮＯ）、速度モードが低速モードに設定されていることを示すフラグ（ｌｏｗ＿ｓｐｅｅｄ＿ｆｌａｇ）がセットされているか否かを判定する（Ｓ１５５）。
【００８０】
ｌｏｗ＿ｓｐｅｅｄ＿ｆｌａｇがセットされている場合には（Ｓ１５５：ＹＥＳ）、ｌｏｗ＿ｓｐｅｅｄ＿ｆｌａｇをクリアして、速度モードが中速モードに設定されていることを示すフラグ（ｍｅｄｉｕｍ＿ｓｐｅｅｄ＿ｆｌａｇ）をセットし（Ｓ１６０）、後述のＳ１８０へ移行する。
【００８１】
Ｓ１５５において、ｌｏｗ＿ｓｐｅｅｄ＿ｆｌａｇがセットされていない場合には（Ｓ１５５：ＮＯ）、ｍｅｄｉｕｍ＿ｓｐｅｅｄ＿ｆｌａｇがセットされているか否かを判定する（Ｓ１６５）。
【００８２】
ｍｅｄｉｕｍ＿ｓｐｅｅｄ＿ｆｌａｇがセットされている場合には（Ｓ１６５：ＹＥＳ）、ｍｅｄｉｕｍ＿ｓｐｅｅｄ＿ｆｌａｇをクリアして、速度モードが高速モードに設定されていることを示すフラグ（ｈｉｇｈ＿ｓｐｅｅｄ＿ｆｌａｇ）をセットし（Ｓ１７０）、後述のＳ１８０へ移行する。
【００８３】
Ｓ１６５において、ｍｅｄｉｕｍ＿ｓｐｅｅｄ＿ｆｌａｇがセットされていない場合、つまり、ｍｅｄｉｕｍ＿ｓｐｅｅｄ＿ｆｌａｇがクリアされ、ｈｉｇｈ＿ｓｐｅｅｄ＿ｆｌａｇがセットされている場合には（Ｓ１６５：ＮＯ）、ｈｉｇｈ＿ｓｐｅｅｄ＿ｆｌａｇをクリアして、ｌｏｗ＿ｓｐｅｅｄ＿ｆｌａｇをセットする（Ｓ１７５）。そして、ｍｏｄｅ＿ｓｗｉｔｃｈｅｄ＿ｆｌａｇをセットして（Ｓ１８０）、本トリガスイッチ情報取得処理を終了する。
【００８４】
図８に示すように、モータ制御処理では、まず、ｅｒｒｏｒ＿ｄｅｔｅｃｔｅｄ＿ｆｌａｇがセットされているか否かを判定する（Ｓ２１０）。
ｅｒｒｏｒ＿ｄｅｔｅｃｔｅｄ＿ｆｌａｇがセットされている場合には（Ｓ２１０：ＹＥＳ）、後述のＳ２３０へ移行する一方、ｅｒｒｏｒ＿ｄｅｔｅｃｔｅｄ＿ｆｌａｇがセットされていない場合には（Ｓ２１０：ＮＯ）、上述のｔｒｉｇｇｅｒ＿ｏｎ＿ｆｌａｇがセットされているか否かを判定する（Ｓ２２０）。
【００８５】
ｔｒｉｇｇｅｒ＿ｏｎ＿ｆｌａｇがセットされていない場合には（Ｓ２２０：ＮＯ）、モータ２０を停止させるためのモータ停止処理を実行する（Ｓ２３０）。このモータ停止処理では、ＣＰＵ１３１は、モータ２０の各コイルに現時点とは逆極性の電流を供給するように、ゲート回路２１〜２６を介して、モータ駆動回路１２の各スイッチング素子Ｑ１〜Ｑ６をオン／オフして、モータ２０を制動させる逆転制動を実行することで、モータ２０を停止させてもよい。あるいは、ＣＰＵ１３１は、モータ２０の各コイルの両端をバッテリ１８の正極または負極に接続するように、ゲート回路２１〜２６を介して、モータ駆動回路１２の各スイッチング素子Ｑ１〜Ｑ６をオン／オフして、モータ２０を制動させる回生制動を実行することで、モータ２０を停止させてもよい。あるいは、ＣＰＵ１３１は、逆転制動と回生制動との双方を協働させることで、モータ２０を停止させてもよい。あるいは、ＣＰＵ１３１は、ゲート回路２１〜２６を介して、モータ駆動回路１２のスイッチング素子Ｑ１〜Ｑ６の全てをオフして、バッテリ１８からモータ２０への電流の供給を停止することで、モータ２０を停止させてもよい。
【００８６】
モータ停止処理が終了すると、モータ２０が駆動されていることを示すフラグ（ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇ）をクリアして（Ｓ２４０）、本モータ制御処理を終了する。
【００８７】
Ｓ２２０において、ｔｒｉｇｇｅｒ＿ｏｎ＿ｆｌａｇがセットされている場合には（Ｓ２２０：ＹＥＳ）、駆動電圧のデューティ比の設定を行う（Ｓ２５０）。
より具体的には、Ｓ２５０において、ＣＰＵ１３１は、ｌｏｗ＿ｓｐｅｅｄ＿ｆｌａｇ、ｍｅｄｉｕｍ＿ｓｐｅｅｄ＿ｆｌａｇ、及びｈｉｇｈ＿ｓｐｅｅｄ＿ｆｌａｇの状態に基づいて、現時点で設定されている速度モードに対応するテーブルを選択し、選択したテーブルに基づいて、引き量記憶領域に記憶されている引き量に対応するデューティ比を決定する。決定したデューティ比は、ＣＰＵ１３１によって、メモリ１３２の所定の記憶領域（デューティ比記憶領域）に設定される。尚、このデューティ比記憶領域には、現時点で設定されたデューティ比だけでなく、前回設定されたデューティ比も記憶される。
【００８８】
デューティ比の設定が終了すると、モータ２０を駆動するためのモータ駆動処理を実行する（Ｓ２６０）。このモータ駆動処理において、ＣＰＵ１３１は、現時点でデューティ比記憶領域に設定されたデューティ比を有する駆動電圧をモータ２０の各端子Ｕ，Ｖ，Ｗに印加するように、ゲート回路２１〜２６を介して、モータ駆動回路１２の各スイッチング素子Ｑ１〜Ｑ６をオン／オフして、モータ２０を駆動する。
【００８９】
モータ駆動処理が終了すると、上述のｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇをセットして（Ｓ２７０）、本モータ制御処理を終了する。
図９に示すように、ロック状態判定処理では、まず、ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされているか否かを判定し（Ｓ３１０）、ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされていない場合には（Ｓ３１０：ＮＯ）、後述のＳ３２５に移行する。
【００９０】
ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされている場合には（Ｓ３１０：ＹＥＳ）、ロック判定時間Ｔｒを設定する（Ｓ３１５）。
より具体的には、Ｓ３１５において、ＣＰＵ１３１は、ｌｏｗ＿ｓｐｅｅｄ＿ｆｌａｇ、ｍｅｄｉｕｍ＿ｓｐｅｅｄ＿ｆｌａｇ、及びｈｉｇｈ＿ｓｐｅｅｄ＿ｆｌａｇの状態に基づいて、現時点で設定されている速度モードに対応するテーブルを選択し、選択したテーブルに基づいて、現時点でデューティ比記憶領域に設定されているデューティ比に対応するロック判定時間Ｔｒを決定する。決定したロック判定時間Ｔｒは、ＣＰＵ１３１によって、メモリ１３２の所定の記憶領域（判定時間記憶領域）に設定される。
【００９１】
ロック判定時間Ｔｒの設定が終了すると、引き量記憶領域に記憶されている引き量が予め設定された引き量の閾値（操作閾値）未満であるか否かを判定する（Ｓ３２０）。本第１実施形態では、モータ２０がロックしていないにもかかわらず、モータ２０が所定量回転するのに時間を要してモータ２０がロックしたという誤判定が生じない最小の引き量が操作閾値として設定されている。
【００９２】
引き量記憶領域に記憶されている引き量が操作閾値未満である場合には（Ｓ３２０：ＹＥＳ）、モータ２０が所定量回転するのに要する経過時間をカウント値としてカウントするカウンタを停止させて（Ｓ３２５）、後述のＳ３４０へ移行する。より具体的には、本第１実施形態のカウンタは、制御回路１３に内蔵されている上述のタイマ１３５と、メモリ１３２の所定の記憶領域（カウンタ領域）に設定されたカウント値をインクリメントする処理とで構成されている。そして、本第１実施形態のＳ３２５では、ＣＰＵ１３１は、タイマ１３５を停止させる。
【００９３】
Ｓ３２０において、引き量記憶領域に記憶されている引き量が操作閾値以上である場合には（Ｓ３２０：ＮＯ）、カウンタをインクリメントする（Ｓ３３０）。本第１実施形態のＳ３３０では、上述のタイマ１３５のタイマ値が初期値（本第１実施形態ではゼロ）にリセットされ、タイマ１３５が停止している場合には、タイマ１３５を作動させる。また、タイマ１３５が作動中であって、タイマ１３５のタイマ値が予め設定された閾値（タイマ閾値）未満である場合には、タイマ１３５の作動を継続する。また、タイマ１３５のタイマ値がタイマ閾値に達している場合には、カウンタ領域に設定されているカウント値をインクリメントする。本第１実施形態では、カウンタ領域のカウント値の初期値はゼロに設定されている。また、本第１実施形態では、高速モードの最大デューティ比に対応するロック判定時間Ｔｒよりも小さく、且つ、高速モードの最大デューティ比においてロック状態が発生していないときにタイマ値が到達し得ない値がタイマ閾値に設定されている。
【００９４】
このようにカウンタをインクリメントしたのち、回転位置センサ１４からパルス信号が入力されたか否かを判定する（Ｓ３３５）。
パルス信号が入力されている場合には（Ｓ３３５：ＹＥＳ）、カウンタをリセットして（Ｓ３４０）、本ロック状態判定処理を終了する。本第１実施形態のＳ３４０では、タイマ１３５のタイマ値と、カウンタ領域に設定されているカウント値との双方を初期値に書き換えることで、カウンタをリセットする。
【００９５】
Ｓ３３５においてパルス信号が入力されていない場合には（Ｓ３３５：ＮＯ）、カウンタのカウント値が判定時間記憶領域に記憶されているロック判定時間Ｔｒに達しているか否かを判定する（Ｓ３４５）。尚、本第１実施形態のＳ３４５では、カウンタ領域のカウント値がロック判定時間Ｔｒに達しているか否かを判定する。
【００９６】
カウンタのカウント値がロック判定時間Ｔｒに未到達である場合には（Ｓ３４５：ＮＯ）、本ロック状態判定処理を直ちに終了する一方、カウンタのカウント値がロック判定時間Ｔｒに達している場合には（Ｓ３４５：ＹＥＳ）、上述のｅｒｒｏｒ＿ｄｅｔｅｃｔｅｄ＿ｆｌａｇをセットしたのち（Ｓ３５０）、本ロック状態判定処理を終了する。
【００９７】
以上の各処理をＣＰＵ１３１が実行することにより、電動工具１では、モータ２０の回転速度を操作するための操作入力として受け付けられたトリガスイッチ１０の引き量がロック状態発生の誤判定が生じるほど小さい場合に、カウンタのカウント値が更新されずに維持（つまり、カウンタによるカウント動作が停止）され、さらに、このカウント値が初期値に書き換えられる（つまり、カウンタのカウント値が初期値にリセットされる）。
【００９８】
つまり、電動工具１では、トリガスイッチ１０の引き量がロック状態発生の誤判定が生じるほど小さい場合に、カウンタによるカウント動作の継続が無効化され、カウンタのカウント値がロック判定時間Ｔｒに達することが防止されるため、トリガスイッチ１０の引き量が小さいことに起因して、ロック状態発生の誤判定が生じることを防止することができる。
【００９９】
また、電動工具１では、モータ２０の回転速度が高いほど、設定されるロック判定時間Ｔｒが連続的あるいは段階的に短くなるので、ロック状態が発生したことを適切に判定することができる。
【０１００】
また、電動工具１では、高速モードの最大デューティ比に対応するロック判定時間Ｔｒよりも小さく、且つ、高速モードの最大デューティ比においてロック状態が発生していないときにタイマ値が到達し得ない値がタイマ閾値に設定されているので、ロック状態が明らかに発生していないにも拘わらず、カウンタのカウント値を無駄にインクリメントすることを防止できる。
【０１０１】
また、電動工具１では、ロック状態が発生したときにモータ２０を停止させるため、ロック状態に起因してモータ２０が損傷（例えば、モータ２０のコイルの焼損など）することを防止することができる。
【０１０２】
また、電動工具１では、モータ２０の各端子Ｕ，Ｖ，Ｗに印加する駆動電圧をＰＷＭ制御しているため、モータ２０に供給される電力を著しく損失させることなく、モータ２０の回転速度を制御することができる。
【０１０３】
また、電動工具１では、トリガスイッチ１０の位置（引き量）を変化させることで、モータ２０の回転速度の増速操作、定速操作、及び減速操作を行うことができ、さらに、速度モード切替スイッチ９を押すことによって、モータ２０の回転速度の変化の割合と、モータ２０の回転速度の最大値とを設定することができるため、電動工具１の操作者は、電動工具１をより好適に操作することができる。
【０１０４】
尚、本第１実施形態では、モータ２０が本発明におけるモータの一例であり、速度モード切替スイッチ９とトリガスイッチ１０とが本発明における操作入力受付手段の一例であり、メインルーチンのＳ３０を実行しているＣＰＵ１３１と、ゲート回路２１〜２６と、モータ駆動回路１２とが本発明における回転速度制御手段の一例であり、タイマ１３５と、ロック状態判定処理のＳ３３０を実行しているＣＰＵ１３１とが本発明におけるカウンタの一例である。より具体的には、タイマ１３５が本発明における第１のサブカウンタの一例であり、ロック状態判定処理のＳ３３０にてカウンタ領域のカウント値をインクリメントするＣＰＵ１３１が本発明における第２のサブカウンタの一例である。
【０１０５】
また、ロック状態判定処理のＳ３３５，Ｓ３４０を実行しているＣＰＵ１３１が本発明におけるリセット手段の一例であり、ロック状態判定処理のＳ３１５を実行しているＣＰＵ１３１が本発明における基準時間変更手段の一例であり、ロック状態判定処理のＳ３４５，Ｓ３５０を実行しているＣＰＵ１３１が本発明におけるロック状態判定手段の一例である。
【０１０６】
また、ロック状態判定処理のＳ３２０，Ｓ３２５，Ｓ３４０を実行しているＣＰＵ１３１が本発明における無効化手段の一例であり、モータ制御処理のＳ２３０を実行しているＣＰＵ１３１が本発明におけるモータ停止手段の一例である。
【０１０７】
また、トリガスイッチ１０が本発明における第１のスイッチの一例であり、速度モード切替スイッチ９が本発明における第２のスイッチの一例である。
［第２実施形態］
次に、本発明の第２実施形態について説明する。
【０１０８】
本第２実施形態は、ロック状態判定処理を除いて、第１実施形態と同様である。
したがって、説明を簡単にするために、ここでは、本第２実施形態のロック状態判定処理についてのみ説明する。
【０１０９】
図１０に示すように、本第２実施形態のロック状態判定処理では、まず、ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされているか否かを判定し（Ｓ４１０）、ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされていない場合には（Ｓ４１０：ＮＯ）、第１実施形態のＳ３２５と同様に、カウンタを停止して（Ｓ４１５）、後述のＳ４５０へ移行する。
【０１１０】
ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされている場合には（Ｓ４１０：ＹＥＳ）、第１実施形態のＳ３１５と同様に、ロック判定時間Ｔｒを設定する（Ｓ４２０）。
ロック判定時間Ｔｒの設定が終了すると、デューティ比記憶領域に記憶されている、現時点で設定されたデューティ比と、前回設定されたデューティ比とを比較して、デューティ比が変更されているか否かを判定する（Ｓ４２５）。Ｓ４２５において、ＣＰＵ１３１は、比較したデューティ比が不一致であれば、デューティ比が変更されたと判定してもよいし、比較したデューティ比が不一致であって、比較したデューティ比の差が所定量以上である場合に、デューティ比が変更されたと判定してもよい。
【０１１１】
デューティ比が変更されていない場合には（Ｓ４２５：ＮＯ）、後述のＳ４４０へ移行する一方、デューティ比が変更されている場合には（Ｓ４２５：ＹＥＳ）、第１実施形態のＳ３２０と同様に、引き量記憶領域に記憶されている引き量が操作閾値未満であるか否かを判定する（Ｓ４３０）。
【０１１２】
引き量記憶領域に記憶されている引き量が操作閾値以上である場合には（Ｓ４３０：ＮＯ）、後述のＳ４４０へ移行する一方、引き量記憶領域に記憶されている引き量が操作閾値未満である場合には（Ｓ４３０：ＹＥＳ）、第１実施形態のＳ３４０と同様に、カウンタのカウント値を初期値にリセットする（Ｓ４３５）。
【０１１３】
カウンタのカウント値を初期値にリセットすると、第１実施形態のＳ３３０と同様に、カウンタをインクリメントしたのち（Ｓ４４０）、第１実施形態のＳ３３５と同様に、回転位置センサ１４からパルス信号が入力されたか否かを判定する（Ｓ４４５）。
【０１１４】
パルス信号が入力されている場合には（Ｓ４４５：ＹＥＳ）、上述のＳ４３５と同様に、カウンタをリセットして（Ｓ４５０）、本ロック状態判定処理を終了する。
Ｓ４４５においてパルス信号が入力されていない場合には（Ｓ４４５：ＮＯ）、第１実施形態のＳ３４５と同様に、カウンタのカウント値が判定時間記憶領域に記憶されているロック判定時間Ｔｒに達しているか否かを判定する（Ｓ４５５）。
【０１１５】
カウント値がロック判定時間Ｔｒに未到達である場合には（Ｓ４５５：ＮＯ）、本ロック状態判定処理を直ちに終了する一方、カウント値がロック判定時間Ｔｒに達している場合には（Ｓ４５５：ＹＥＳ）、第１実施形態のＳ３５０と同様に、ｅｒｒｏｒ＿ｄｅｔｅｃｔｅｄ＿ｆｌａｇをセットしたのち（Ｓ４６０）、本ロック状態判定処理を終了する。
【０１１６】
以上のロック状態判定処理が実行されることにより、本第２実施形態の電動工具では、トリガスイッチ１０の引き量が操作閾値未満である場合に、操作入力として受け付けられた引き量及び速度モードのうちの少なくとも一方が変化して、デューティ比が変更されると、カウンタをリセットして、カウンタによるカウント動作の継続を無効化する。
【０１１７】
つまり、本第２実施形態では、トリガスイッチ１０の引き量の変更操作、及び速度モードの切替操作のうちの少なくとも一方に起因して、ロック状態の発生の誤判定が生じる場合に、カウンタのカウント動作の継続を無効化することで、誤判定の発生を防止できる。
【０１１８】
尚、本第２実施形態では、ロック状態判定処理のＳ４４０を実行しているＣＰＵ１３１が本発明におけるカウンタの一例であり、ロック状態判定処理のＳ４４５，Ｓ４５０を実行しているＣＰＵ１３１が本発明におけるリセット手段の一例である。
【０１１９】
また、ロック状態判定処理のＳ４２０を実行しているＣＰＵ１３１が本発明における基準時間変更手段の一例であり、ロック状態判定処理のＳ４５５，Ｓ４６０を実行しているＣＰＵ１３１が本発明におけるロック状態判定手段の一例であり、ロック状態判定処理のＳ４２５，Ｓ４３０，Ｓ４３５を実行しているＣＰＵ１３１が本発明における無効化手段の一例である。
［第３実施形態］
次に、本発明の第３実施形態について説明する。
【０１２０】
本第３実施形態は、ロック状態判定処理の流れが第２実施形態と異なり、さらに、後述するカウンタ処理が追加されていることを除いて、第２実施形態と同様である。
したがって、説明を簡単にするために、ここでは、本第３実施形態のロック状態判定処理及びカウンタ処理についてのみ説明する。
【０１２１】
本第３実施形態におけるカウンタ処理は、後述のロック状態判定処理によって起動され、ロック状態判定処理から独立して実行される。
図１１に示すように、このカウンタ処理では、カウンタのカウント値のインクリメント（Ｓ５１０）を繰り返し実行する。より具体的には、Ｓ５１０では、上述のタイマ１３５のタイマ値が初期値（本第３実施形態ではゼロ）にリセットされ、タイマ１３５が停止している場合には、タイマ１３５を作動させる。また、タイマ１３５が作動中であって、タイマ１３５のタイマ値が予め設定されたタイマ閾値未満である場合には、タイマ１３５の作動を継続する。また、タイマ１３５のタイマ値がタイマ閾値に達している場合には、カウンタ領域に設定されているカウント値をインクリメントする。本第３実施形態では、カウンタ領域のカウント値の初期値はゼロに設定されている。また、本第３実施形態では、高速モードの最大デューティ比に対応するロック判定時間Ｔｒよりも小さく、且つ、高速モードの最大デューティ比においてロック状態が発生していないときにタイマ値が到達し得ない値がタイマ閾値に設定されている。
【０１２２】
図１２に示すように、本第３実施形態のロック状態判定処理では、まず、第２実施形態のＳ４１０と同様に、ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされているか否かを判定し（Ｓ６１０）、ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされていない場合には（Ｓ６１０：ＮＯ）、後述のＳ６４０へ移行する。
【０１２３】
ｍｏｔｏｒ＿ｄｒｉｖｅｎ＿ｆｌａｇがセットされている場合には（Ｓ６１０：ＹＥＳ）、第２実施形態のＳ４２０と同様に、ロック判定時間Ｔｒを設定する（Ｓ６１５）。
ロック判定時間Ｔｒの設定が終了すると、上述のカウンタ処理が起動されているか否かを判定する（Ｓ６２０）。
【０１２４】
カウンタ処理が起動されている場合には（Ｓ６２０：ＹＥＳ）、後述のＳ６３０へ移行する一方、カウンタ処理が起動されていない場合には（Ｓ６２０：ＮＯ）、カウンタ処理を起動する（Ｓ６２５）。
【０１２５】
カウンタ処理を起動すると、第２実施形態のＳ４２５と同様に、デューティ比記憶領域に記憶されている、現時点で設定されたデューティ比と、前回設定されたデューティ比とを比較して、デューティ比が変更されているか否かを判定する（Ｓ６３０）。
【０１２６】
デューティ比が変更されている場合には（Ｓ６３０：ＹＥＳ）、後述のＳ６４０へ移行する一方、デューティ比が変更されていない場合には（Ｓ６３０：ＮＯ）、第２実施形態のＳ４４５と同様に、回転位置センサ１４からパルス信号が入力されたか否かを判定する（Ｓ６３５）。
【０１２７】
パルス信号が入力されている場合には（Ｓ６３５：ＹＥＳ）、カウンタ処理を停止したのち（Ｓ６４０）、カウンタのカウント値を初期値にリセットして（Ｓ６４５）、本ロック状態判定処理を終了する。本第３実施形態のＳ６４５では、タイマ１３５のタイマ値と、カウンタ領域に設定されているカウント値との双方を初期値に書き換えることで、カウンタのカウント値を初期値にリセットする。
【０１２８】
Ｓ６３５においてパルス信号が入力されていない場合には（Ｓ６３５：ＮＯ）、第２実施形態のＳ４５５と同様に、カウンタのカウント値が判定時間記憶領域に記憶されているロック判定時間Ｔｒに達しているか否かを判定する（Ｓ６５０）。
【０１２９】
カウント値がロック判定時間Ｔｒに未到達である場合には（Ｓ６５０：ＮＯ）、本ロック状態判定処理を直ちに終了する一方、カウント値がロック判定時間Ｔｒに達している場合には（Ｓ６５０：ＹＥＳ）、第２実施形態のＳ４６０と同様に、ｅｒｒｏｒ＿ｄｅｔｅｃｔｅｄ＿ｆｌａｇをセットしたのち（Ｓ６５５）、本ロック状態判定処理を終了する。
【０１３０】
以上のカウンタ処理とロック状態判定処理とが実行されることにより、本第３実施形態の電動工具では、操作入力として受け付けられた引き量及び速度モードのうちの少なくとも一方が変化して、デューティ比が変更されると、カウンタをリセットして、カウンタによるカウント動作の継続を無効化するだけでなく、カウンタのカウント値がロック判定時間Ｔｒに達しているか否かの判定を実行せずに、この判定を無効化する。
【０１３１】
つまり、本第３実施形態では、このような２種類の無効化を行うことで、誤判定の発生を防止できる。
尚、本第３実施形態では、カウンタ処理のＳ５１０を実行しているＣＰＵ１３１が本発明におけるカウンタの一例であり、ロック状態判定処理のＳ６３５，Ｓ６４５を実行しているＣＰＵ１３１が本発明におけるリセット手段の一例である。
【０１３２】
また、ロック状態判定処理のＳ６１５を実行しているＣＰＵ１３１が本発明における基準時間変更手段の一例であり、ロック状態判定処理のＳ６５０，Ｓ６５５を実行しているＣＰＵ１３１が本発明におけるロック状態判定手段の一例であり、ロック状態判定処理のＳ６３０，Ｓ６４０，Ｓ６４５を実行しているＣＰＵ１３１が本発明における無効化手段の一例である。
【０１３３】
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
【０１３４】
例えば、本発明は、インパクトドライバ以外の電動工具に適用されてもよい。
また、本発明は、電動工具１のようなバッテリ式の電動工具だけでなく、コードを介して電力の供給を受ける電動工具に適用されてもよい。
【０１３５】
また、モータ２０は、２相のブラシレス直流モータとして構成されていてもよいし、４相以上のブラシレス直流モータとして構成されていてもよい。
また、モータ２０は、当該モータ２０の各コイルに誘起する誘起電力に基づいてモータの回転位置を検出するように構成されていてもよい。この場合、電動工具１には、モータ２０の各コイルに誘起する誘起電力を検出する検出回路を設けてもよい。そして、第１実施形態のロック状態判定処理におけるＳ３３５、第２実施形態のロック状態判定処理におけるＳ４４５、及び第３実施形態のロック状態判定処理におけるＳ６３５では、モータ２０が所定量回転したときの誘起電力が発生したか否かを判定することで、モータ２０が所定量回転したか否かを判定してもよい。
【０１３６】
また、スイッチング素子Ｑ１〜Ｑ６は、ＭＯＳＦＥＴ以外のスイッチング素子（例えば、バイポーラトランジスタなど）であってもよい。
また、制御回路１３は、ＡＳＩＣ（Application Specific Integrated Circuits）、ＦＰＧＡ（Field Programmable Gate Array）などのプログラマブル・ロジック・デバイスや、ディスクリート回路であってもよい。
【０１３７】
また、上述の各種処理のプログラムは、ＣＰＵ１３１にて読み取り可能なあらゆる形態の記録媒体に記録されて用いられても良い。記録媒体としては、例えば、持ち運び可能な半導体メモリ（例えばＵＳＢメモリ、メモリカード（登録商標）など）などが含まれる。
【０１３８】
また、工具ビットは、チャックスリーブ８に離脱不能に取り付けられてもよい。
また、第２実施形態のロック状態判定処理では、Ｓ４３０において、引き量記憶領域に記憶されている引き量が操作閾値未満である場合に、Ｓ４４０へ移行し、引き量記憶領域に記憶されている引き量が操作閾値以上である場合に、Ｓ４３５へ移行してもよい。
【０１３９】
また、第１−３実施形態のロック状態判定処理のＳ３４５，Ｓ４５５，Ｓ６５０では、タイマ１３５のタイマ値と、カウンタ領域のカウント値との和が、ロック判定時間Ｔｒに達しているか否かを判定してもよい。
【０１４０】
また、カウンタは、タイマ１３５のみで構成されてもよいし、カウンタのカウント値をインクリメントする処理のみで構成されてもよい。
また、タイマ１３５は、クロック信号以外の周期的に変化するあらゆる電気信号に基づいて、タイマ値をインクリメントしてもよい。
【０１４１】
また、本発明は、交流モータによって工具要素を回転駆動させるように構成された電動工具に適用されてもよい。
【符号の説明】
【０１４２】
１…電動工具、２，３…半割ハウジング、４…ハンドル部、５…本体ハウジング、６…バッテリパック、７…モータ収納部、８…チャックスリーブ、９…速度モード切替スイッチ、１０…トリガスイッチ、１１…駆動装置、１２…モータ駆動回路、１３…制御回路、１４…回転位置センサ、１５…レギュレータ、１６…駆動開始スイッチ、１７…可変抵抗器、１８…バッテリ、１９…クロック信号発生器、２０…モータ、２１，２２，２３，２４，２５，２６…ゲート回路、１３１…ＣＰＵ、１３２…メモリ、１３３…Ｉ／Ｏポート、１３４…Ａ／Ｄ変換器、１３５…タイマ。
【図１】
0005469000.tif 000002
【図２】
0005469000.tif 000003
【図３】
0005469000.tif 000004
【図４】
0005469000.tif 000005
【図５】
0005469000.tif 000006
【図６】
0005469000.tif 000007
【図７】
0005469000.tif 000008
【図８】
0005469000.tif 000009
【図９】
0005469000.tif 000010
【図１０】
0005469000.tif 000011
【図１１】
0005469000.tif 000012
【図１２】
0005469000.tif 000013