(57)【要約】【課題】精度の高い電流設定によりモータを駆動できるモータ制御装置、モータ制御方法、及びこのようなモータを搭載したモータ制御装置を提供することを目的とする。【解決手段】モータ制御装置は、モータを駆動するモータドライバ部と、モータドライバ部を介して前記モータを制御する制御部と、を備え、制御部は、モータを励磁しているときの電流検出抵抗に発生する計測電圧を取得し、取得した計測電圧に基づいて、モータドライバ部が計測電圧と比較して電流制御を行うためのリファレンス電圧を補正する。【選択図】  図１
2017034886.tif 000002
【特許請求の範囲】
【請求項１】
モータを駆動するモータドライバ部と、
前記モータドライバ部を介して前記モータを制御する制御部と、
を備え、
前記制御部は、前記モータを励磁しているときの電流検出抵抗に発生する計測電圧を取得し、取得した前記計測電圧に基づいて、前記モータドライバ部が前記計測電圧と比較して電流制御を行うためのリファレンス電圧を補正する、モータ制御装置。
【請求項２】
前記制御部は、電源が投入された直後の初期化時に前記モータを励磁して前記計測電圧を取得する、請求項１に記載のモータ制御装置。
【請求項３】
前記制御部は、複数の励磁期間毎に異なる計測タイミングで順次計測電圧を取得して各励磁期間内での計測電圧の最大値である計測電圧最大値を取得し、前記複数の励磁期間それぞれで取得された計測電圧最大値の中の最大値を求め、求めた計測電圧最大値の中の最大値を用いて前記リファレンス電圧を補正する、請求項１または請求項２に記載のモータ制御装置。
【請求項４】
前記制御部は、前記計測電圧から前記モータに流れている電流値を算出し、前記算出した前記モータに流れている電流値と目標電流設定値との誤差が所定範囲以上の場合に、前記電流検出抵抗の計測電圧に基づいて、前記リファレンス電圧を補正する、請求項１から請求項３のいずれか１項に記載のモータ制御装置。
【請求項５】
請求項１から請求項４のいずれか１項に記載のモータ制御装置を、印字部の機械的な駆動を行うモータの制御に用いるプリンタ装置。
【請求項６】
モータドライバ部を介してモータを制御するモータ制御方法であって、
前記モータドライバ部には、電流検出抵抗が接続されており、
電源が投入された直後の初期化時に前記モータを励磁し、前記モータを励磁しているときの前記電流検出抵抗の計測電圧を取得する工程と、
前記電流検出抵抗の計測電圧に基づいて、前記モータドライバ部が前記計測電圧と比較して電流制御を行うためのリファレンス電圧を補正する工程と
を含む、モータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置、モータ制御方法、及びプリンタ装置に関する。
【背景技術】
【０００２】
ステッピングモータの定電流駆動は、モータのトルクを引き出す方法として、広く使用されている。ステッピングモータを定電流駆動する機能として搭載したモータドライバ用の集積回路は、周辺の部品点数を少なくでき、かつ簡単に制御できることから、広く普及している。
【０００３】
ステッピングモータを定電流駆動する機能として搭載したモータ駆動回路では、特許文献１及び特許文献２に記載されているように、リファレンス電圧（基準電圧）と電流検出抵抗からの計測電圧（帰還電圧）とを比較し、計測電圧がリファレンス電圧より小さいときにはスイッチング回路をオンし、計測電圧がリファレンス電圧を越えるとスイッチング回路をオフして、モータに流れる電流を制御している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０２−０７０２９６号公報
【特許文献２】特開２００６−２５４５４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のようなモータ駆動回路では、電流検出精度によって、モータに流れる電流が変動するという課題がある。すなわち、目標設定電流値でモータを定電流駆動するために、リファレンス電圧を設定したとしても、モータに実際に流れる電流が目標とする設定電流値になるとは限らない。電流検出精度の性能によっては、１０％程度の誤差が生じる場合もある。
【０００６】
モータに過剰に電流が流れると、消費電流が大きくなる。また、モータに流れる電流が目標設定電流より小さくなると、モータの必要トルクが得られなくなる。例えば、サーマルプリンタの紙送り用のモータを駆動する場合には、実際にモータに流れる電流が目標設定電流より小さくなると、モータの必要トルクが得られなくなり、十分な紙送り等ができなくなる。
【０００７】
また、サーマルプリンタにおいて、紙送りが確実にできるように、誤差を考慮して、目標設定電流を大きくすることが考えられる。しかしながら、目標設定電流を大きくすることにより、更にモータの発熱や消費電流が大きくなってしまう。
【０００８】
また、サーマルプリンタにおいては、印字動作を行う際に、紙送り用のモータとサーマルヘッドで同時に電流が消費される。したがって、紙送り用のモータとサーマルヘッドで同時に電流が消費されたときにも十分な電流を供給できるように、電源の最大電流を確保する必要がある。また、サーマルプリンタにおいて、電池駆動を行った場合には、電池が出力できる最大電流が決まっているので、モータ消費電流を大きく設定したとしても、電源の最大値を大きくできない。この場合には、モータ消費電流を大きく設定した分だけ、サーマルヘッドで消費できる電流を小さく設定しなければならない。しかしながら、サーマルヘッドで消費できる電流を小さく設定すると、印字速度が遅くなるなどの弊害が生じてくる。
【０００９】
本発明は上記の点に鑑みてなされたものであり、精度の高い電流設定によりモータを駆動できるモータ制御装置、モータ制御方法、及びこのようなモータを搭載したプリンタ装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
（１）上記目的を達成するため、本発明の一態様に係るモータ制御装置は、モータを駆動するモータドライバ部と、前記モータドライバ部を介して前記モータを制御する制御部と、を備え、前記制御部は、前記モータを励磁しているときの電流検出抵抗に発生する計測電圧を取得し、取得した前記計測電圧に基づいて、前記モータドライバ部が前記計測電圧と比較して電流制御を行うためのリファレンス電圧を補正する。
【００１１】
（２）また、本発明の一態様に係るモータ制御装置において、前記制御部は、電源が投入された直後の初期化時に前記モータを励磁して前記計測電圧を取得するようにしてもよい。
【００１２】
（３）また、本発明の一態様に係るモータ制御装置において、前記制御部は、複数の励磁期間毎に異なる計測タイミングで順次計測電圧を取得して各励磁期間内での計測電圧の最大値である計測電圧最大値を取得し、前記複数の励磁期間それぞれで取得された計測電圧最大値の中の最大値を求め、求めた計測電圧最大値の中の最大値を用いて前記リファレンス電圧を補正するようにしてもよい。
【００１３】
（４）また、本発明の一態様に係るモータ制御装置において、前記制御部は、前記計測電圧から前記モータに流れている電流値を算出し、前記算出した前記モータに流れている電流値と目標電流設定値との誤差が所定範囲以上の場合に、前記電流検出抵抗の計測電圧に基づいて、前記リファレンス電圧を補正するようにしてもよい。
【００１４】
（５）上記目的を達成するため、本発明の一態様に係るプリンタ装置は、（１）から（４）のいずれか１つに記載のモータ制御装置を、印字部の機械的な駆動を行うモータの制御に用いる。
【００１５】
（６）本発明の一態様に係るモータ制御方法は、モータドライバ部を介してモータを制御するモータ制御方法であって、前記モータドライバ部には、電流検出抵抗が接続されており、前記モータを励磁し、前記モータを励磁しているときの前記電流検出抵抗の計測電圧を取得する工程と、前記電流検出抵抗の計測電圧に基づいて、前記モータドライバ部が前記計測電圧と比較して電流制御を行うためのリファレンス電圧を補正する工程とを含む。
【発明の効果】
【００１６】
本発明によれば、部品を追加することなく、精度の高い電流値設定でモータを駆動できる。本発明によれば、適正な電流値でモータを動かすことにより、消費電流を抑えて、モータの必要トルクを得ることができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態に係るプリンタ装置の構成を示すブロック図である。
【図２】本実施形態に係るメモリ部に記憶されている情報の一例を示す図である。
【図３】本実施形態におけるモータ電流波形及び計測電圧波形を示すグラフである。
【図４】本実施形態における電流の補正処理のフローチャートである。
【図５】本実施形態におけるモータ初期化処理のフローチャートである。
【図６】本実施形態における測定処理のフローチャートである。
【図７】本実施形態における電流の補正処理の説明に用いるグラフである。
【図８】図７（Ｂ）における立ち上がり部分を拡大した図である。
【図９】本実施形態における測定処理回数ｎが（ｎ＝１）のときに取得される計測電圧と、測定処理回数ｎが（ｎ＝２）のときに取得される計測電圧とを比較して示したグラフである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について図面を参照しながら説明する。図１は、本実施形態に係るプリンタ装置１の構成を示すブロック図である。図１に示すように、プリンタ装置１は、制御回路ユニット１０と、モータドライバユニット２０と、モータ３０と、印字ユニット４０とを備えている。
【００１９】
制御回路ユニット１０は、モータドライバユニット２０や印字ユニット４０の制御を行っている。制御回路ユニット１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、モータ相出力部１２と、モータ電流設定電圧出力部１３と、電圧測定部１４と、メモリ部１５と、印字制御部１６と、サーマルヘッドデータ出力部１７とを備えている。
【００２０】
また、制御回路ユニット１０からは、ポートＰＨｏｕｔ１及びＰＨｏｕｔ２と、ポートＤＡｒｅｆと、ポートＡＤｒｓｅｎとが導出されている。ポートＰＨｏｕｔ１及びＰＨｏｕｔ２は、モータドライバユニット２０のポートＰＨｉｎ１及びＰＨｉｎ２に接続される。ポートＤＡｒｅｆ及びＡＤｒｓｅｎは、モータドライバユニット２０のポートＲＥＦ及びポートＲｓｅｎに接続される。
【００２１】
モータ相出力部１２は、ＣＰＵ１１に応じて、モータ励磁信号を生成し、生成したモータ励磁信号をポートＰＨｏｕｔ１及びＰＨｏｕｔ２から、モータドライバユニット２０のポートＰＨｉｎ及びＰＨｉｎ２に出力する。
【００２２】
モータ電流設定電圧出力部１３は、ＣＰＵ１１の制御に応じて、リファレンス電圧を設定し、設定したリファレンス電圧をアナログ電圧に変換し、ポートＤＡｒｅｆからモータドライバユニット２０のポートＲＥＦに出力する。なお、後述するように、リファレンス電圧は、ＣＰＵ１１により、モータ３０の駆動電流に基づいて設定される。また、本実施形態では、ＣＰＵ１１は、電圧測定部１４の計測電圧から実際にモータ３０に流れる電流の最大値を計測し、これに基づいて、モータ電流設定電圧出力部１３から出力するリファレンス電圧を補正する。
【００２３】
電圧測定部１４は、ポートＡＤｒｓｅｎから、電流検出抵抗５１の計測電圧を入力し、この計測電圧をディジタルデータに変換し、ＣＰＵ１１に出力する。電流検出抵抗５１の計測電圧は、後述するように、モータ駆動回路２３からモータ３０に流される電流を示している。
【００２４】
メモリ部１５は、各種のデータを記憶する。図２は、本実施形態に係るメモリ部１５に記憶されている情報の一例を示す図である。メモリ部１５には、図２に示すように、目標設定電流値Ｉｆ、設定電流値Ｉａ、リファレンス電圧Ｖｒｅｆ、電流検出抵抗５１の抵抗値Ｒｓ、計測電圧最大値Ｖｒｐ［ｎ］、実測電圧値Ｖｆｒ、実測電流値Ｉｆｒ等が記憶される。また、メモリ部１５には、設定電流値Ｉａからリファレンス電圧Ｖｒｅｆを算出する数式（Ｖｒｅｆ＝Ｉａ×Ｒｓ）、実測電圧値Ｖｆｒから実測電流値Ｉｆｒを求める数式（Ｉｆｒ＝Ｖｆｒ／Ｒｓ）、実測電流値Ｉｆｒから補正後の設定電流値Ｉａを算出する数式（Ｉａ＝Ｉａ×Ｉｆ／Ｉｆｒ）が記憶されている。
【００２５】
印字制御部１６は、ＣＰＵ１１の制御に応じて、用紙に文字や図形を印字する印字制御を行う。サーマルヘッドデータ出力部１７は、印字データを印字ユニットに送る。
印字ユニット４０は、サーマルヘッド印字部４１を備え、印字データに基づく文字や図形を紙に印字する。
【００２６】
モータドライバユニット２０は、例えば集積回路化されており、モータ３０を定電流制御で駆動する。モータドライバユニット２０は、モータ相制御回路２１と、電流制御回路２２と、モータ駆動回路２３を備えている。また、モータドライバユニット２０は、ポートＰＨｉｎ１及びＰＨｉｎ２と、ポートＲＥＦと、ポートＲｓｅｎと、ポートＶｐと、ポートＭＡ１及びＭＡ２とを有している。
【００２７】
モータ相制御回路２１からはポートＰＨｉｎ１及びＰＨｉｎ２が導出される。モータ相制御回路２１は、ポートＰＨｉｎ１及びＰＨｉｎ２からモータ励磁信号を入力し、このモータ励磁信号に基づくパルス信号を、モータ駆動回路２３に供給する。
【００２８】
電流制御回路２２からはポートＲＥＦ及びポートＲｓｅｎが導出される。ポートＲｓｅｎと接地間には、電流検出抵抗５１が接続される。モータ駆動回路２３からモータ３０に流される電流は、電流検出抵抗５１により検出される。
【００２９】
電流検出抵抗５１による計測電圧は、ポートＲｓｅｎから電流制御回路２２に入力されると共に、制御回路ユニット１０の電圧測定部１４で計測される。また、ポートＲＥＦには、リファレンス電圧が入力される。電流制御回路２２は、ポートＲＥＦから入力されるリファレンス電圧と、ポートＲｓｅｎから入力される電流の計測電圧とに基づいて、モータ駆動回路２３からモータ３０に流される電流を制御する。
【００３０】
モータ駆動回路２３からは、ポートＭＡ１及びＭＡ２が導出される。ポートＭＡ１及びＭＡ２には、モータ３０が接続される。モータ３０は、例えばステッピングモータである。モータ３０は、例えば、印字ユニット４０の紙送り等、プリンタ装置１の機械的な駆動に使用される。モータ相制御回路２１からのパルス信号に応じて、モータ３０に電流が流され、モータ３０が励磁される。なお、ポートＶｐは電源ポートである。
【００３１】
モータ３０を励磁したときに、モータ駆動回路２３からモータ３０に流される電流は、電流制御回路２２により、定電流に制御される。すなわち、電流制御回路２２は、ポートＲＥＦに入力されるリファレンス電圧をＶｒｅｆ、電流検出抵抗５１の計測電圧をＶｒｓｅｎとすると、リファレンス電圧Ｖｒｅｆと計測電圧Ｖｒｓｅｎとを比較し、計測電圧Ｖｒｓｅｎがリファレンス電圧Ｖｒｅｆより低いときにはモータ３０を励磁し、計測電圧Ｖｒｓｅｎがリファレンス電圧Ｖｒｅｆより高くなるとモータ３０の励磁を停止して、モータ３０を定電流駆動する。モータ駆動回路２３からモータ３０に流される電流は、ポートＲＥＦに入力されるリファレンス電圧Ｖｒｅｆに応じて設定される。実際にモータ駆動回路２３からモータ３０に流される電流は、電流検出抵抗５１の計測電圧Ｖｒｓｅｎから取得できる。
【００３２】
図３は、本実施形態におけるモータ電流波形及び計測電圧波形を示すグラフである。図３（Ａ）はモータ３０の電流波形を示し、図３（Ｂ）はこのときの電流検出抵抗５１の計測電圧Ｖｒｓｅｎの波形を示している。また、図３（Ａ）および図３（Ｂ）において、横軸は時間、図３（Ａ）において縦軸は電流、図３（Ｂ）において縦軸は電圧である。ここでは、リファレンス電圧Ｖｒｅｆは、（Ｖｒｅｆ＝Ｖｆｒ）に設定されているとし、設定電流値はＩｆｒであるとする。
【００３３】
図３（Ａ）に示すように、モータ３０を励磁すると、モータ電流が時間と共に上昇する。図３（Ｂ）に示すように、これに伴って、電流検出抵抗５１の計測電圧Ｖｒｓｅｎも上昇していく。図３（Ａ）に示すように、モータ電流がＩｆｒに達すると、図３（Ｂ）に示すように、計測電圧Ｖｒｓｅｎは設定電圧Ｖｆｒに達する。電流制御回路２２に働きにより、計測電圧Ｖｒｓｅｎが設定電圧Ｖｆｒを越えると、モータ３０の励磁が止められ、モータ内部で電流が還流させる動作に移行する。このため、電流検出抵抗５１には電流が流れなくなり、図３（Ｂ）に示すように、計測電圧Ｖｒｓｅｎは０Ｖとなる。その後、一定時間が経つと再度モータ３０の励磁を再開するため、計測電圧Ｖｒｓｅｎが上昇する。この繰り返しにより、図３（Ａ）に示すように、モータ３０の電流が一定に保たれる。
【００３４】
次に、本実施形態における電流の補正処理について説明する。上述のように、電流制御回路２２の働きにより、リファレンス電圧Ｖｒｅｆに応じて、モータ３０に流される電流は定電流に制御される。しかしながら、実際には、モータドライバユニット２０における電流検出精度の誤差等に起因して、リファレンス電圧をＶｒｅｆに設定しても、モータ３０に流される電流を目標設定電流に制御できないことがある。特に電池駆動を行った場合、電池が出力できる最大電流が決まっており、モータ３０に流される電流は、最大電流以下に設定する必要がある。
【００３５】
そこで、本実施形態では、電源が投入された直後の初期化時に、モータ３０を励磁し、このときのモータ駆動回路２３からモータ３０に流される電流を示す計測電圧を、電流検出抵抗５１の計測電圧から電圧測定部１４で取得し、計測電圧の最大値を検出している。そして、計測電圧が最大値のときにモータ３０に流される電流が目標設定電流となるように、リファレンス電圧Ｖｒｅｆを補正している。
【００３６】
図４は、本実施形態における電流の補正処理のフローチャートである。図５は、本実施形態におけるモータ初期化処理のフローチャートである。図６は、本実施形態における測定処理のフローチャートである。図４〜図６に示すフローチャートの処理は、計測電圧の最大値を検出し、計測電圧が最大値となるときのモータ電流が目標設定電流となるように、リファレンス電圧Ｖｒｅｆを補正する処理を実現するものである。
【００３７】
＜補正処理の全体動作＞
（ステップＳ１０１）ＣＰＵ１１は、モータ初期化処理を行う。なお、モータ初期化処理については、後述する。
（ステップＳ１０２）モータ初期化処理が終了した後、ＣＰＵ１１は、メモリ部１５から目標設定電流値Ｉｔを読み出し、この目標設定電流値Ｉｔを設定電流値Ｉａとする。
（ステップＳ１０３）ＣＰＵ１１は、設定電流値Ｉａと、電流検出抵抗５１の抵抗値Ｒｓとから、次式（１）により、リファレンス電圧Ｖｒｅｆを算出する。
【００３８】
Ｖｒｅｆ＝Ｉａ×Ｒｓ  …  （１）
【００３９】
（ステップＳ１０４）ＣＰＵ１１は、モータ電流設定電圧出力部１３の出力電圧を、（１）式で求められたリファレンス電圧Ｖｒｅｆに設定し、このリファレンス電圧Ｖｒｅｆをモータドライバユニット２０に出力する。
（ステップＳ１０５）ＣＰＵ１１は、測定処理回数ｎを（ｎ＝１）に初期化する。
【００４０】
（ステップＳ１０６）ＣＰＵ１１は、測定処理回数ｎ回目の測定処理を開始する。測定処理回数ｎ回目の測定処理では、ＣＰＵ１１は、モータ３０を励磁して、電流検出抵抗５１の計測電圧Ｖｒｓｅｎを計測し、測定処理回数ｎ回目における計測電圧最大値Ｖｒｐ［ｎ］を取得する。なお、測定処理については、後述する。
【００４１】
（ステップＳ１０７）ＣＰＵ１１は、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ−１］より大きいか否かを判定する。ＣＰＵ１１は、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ−１］より大きいと判定した場合（ステップＳ１０７；ＹＥＳ）、ステップＳ１０８に処理を進める。ＣＰＵ１１は、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ−１］より小さいと判定した場合（ステップＳ１０７；ＮＯ）、ステップＳ１０９に処理を進める。
【００４２】
（ステップＳ１０８）ＣＰＵ１１は、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］を実測電圧値Ｖｆｒ（Ｖｆｒ＝Ｖｒｐ［ｎ］）としてメモリ部１５に保存する。ＣＰＵ１１は、ステップＳ１０９に処理を進める。
【００４３】
（ステップＳ１０９）ＣＰＵ１１は、測定処理回数ｎが所定回数（例えば１０回）に達したか否かを判定する。ＣＰＵ１１は、測定処理回数ｎが所定回数に達したと判定した場合（ステップＳ１０９；ＹＥＳ）、ステップＳ１１１に処理を進め、測定処理回数ｎが所定回数に達していないと判定した場合（ステップＳ１０９；ＮＯ）、ステップＳ１１０に処理を進める。
【００４４】
（ステップＳ１１０）測定処理回数ｎが所定回数（例えば１０回）に達していない場合、ＣＰＵ１１は、測定処理回数ｎを「１」だけ増加して、処理をステップＳ１０６に戻す。これにより、各測定処理で、異なるタイミングで計測電圧が取得される。
【００４５】
（ステップＳ１１１）ＣＰＵ１１は、実測電圧値Ｖｆｒを用いて、実測電流値Ｉｆｒを計算により求める。ＣＰＵ１１は、実測電圧値をＶｆｒ、検出抵抗をＲｓとし、次式（２）により実測電流値Ｉｆｒを算出する。
【００４６】
Ｉｆｒ＝Ｖｆｒ／Ｒｓ  …  （２）
【００４７】
（ステップＳ１１２）ＣＰＵ１１は、実測電流値Ｉｆｒと、目標設定電流値Ｉｔとを比較し、実測電流値Ｉｆｒが目標設定電流値Ｉｔの誤差の範囲内にあるか否かを判定する。すなわち、誤差の範囲を５％とすると、ＣＰＵ１１は、実測電流値Ｉｆｒが目標設定電流値Ｉｔの０．９９５倍より大きいか否かを判定する。ＣＰＵ１１は、実測電流値Ｉｆｒが目標設定電流値Ｉｔの０．９９５倍より大きい場合（ステップＳ１１２：ＹＥＳ）、ステップＳ１１３に処理を進め、実測電流値Ｉｆｒが目標設定電流値Ｉｔの０．９９５倍より小さい場合（ステップＳ１１２：ＮＯ）、ステップＳ１１４に処理を進める。
【００４８】
（ステップＳ１１３）ＣＰＵ１１は、実測電流値Ｉｆｒが目標設定電流値Ｉｔの１．００５倍より小さいか否かを判定する。ＣＰＵ１１は、実測電流値Ｉｆｒが目標設定電流値Ｉｔの１．００５倍より小さい場合（ステップＳ１１３：ＹＥＳ）、補正処理を終了し、実測電流値Ｉｆｒが目標設定電流値Ｉｔの１．００５倍より大きい場合（ステップＳ１１３：ＮＯ）、ステップＳ１１４に処理を進める。
【００４９】
（ステップＳ１１４）ＣＰＵ１１は、補正後の設定電流値Ｉａを、次式（３）を用いて算出する。
【００５０】
Ｉａ＝Ｉａ×Ｉｆ／Ｉｆｒ  …  （３）
【００５１】
補正後の設定電流値Ｉａが算出されたら、ＣＰＵ１１は、ステップＳ１０３に処理を戻す。そして、ステップＳ１０３で、ＣＰＵ１１は、補正後の設定電流値Ｉａと、電流検出抵抗５１の抵抗値Ｒｓとから、リファレンス電圧Ｖｒｅｆを補正する（ステップＳ１０３）。リファレンス電圧Ｖｒｅｆを補正した後、ステップＳ１０４からステップＳ１１４の処理が繰り返される。
【００５２】
このように、実測電流値Ｉｆｒが目標設定電流値Ｉｔの誤差の範囲内にない場合には、ステップＳ１１４で、補正後の設定電流値Ｉａが算出される。そして、ステップＳ１０３で、補正後の設定電流値Ｉａで、補正後のリファレンス電圧Ｖｒｅｆが設定される。これにより、実測電流値Ｉｆｒは目標設定電流値Ｉｔに近づいていく。そして、ステップＳ１１２及びステップＳ１１３で、実測電流値Ｉｆｒが目標設定電流値Ｉｔの誤差の範囲（例えば５％以内）になると、補正処理が終了される。
【００５３】
＜モータ初期化処理＞
次に、モータ初期化処理について、図５を用いて説明する。
（ステップＳ２０１）ＣＰＵ１１は、モータ相出力部１２に指令を与え、モータ３０の励磁を開始する。
（ステップＳ２０２）ＣＰＵ１１は、モータ３０を２０ｍ秒間励磁する。
（ステップＳ２０３）ＣＰＵ１１は、モータ３０の励磁を停止させる。この動作によって、モータ３０の回転位置が指定の位置に移動する。
以上で、モータ初期化処を終了する。
【００５４】
＜測定処理＞
次に、ステップＳ１０６の測定処理を、図６を用いて説明する。
（ステップＳ３０１）ＣＰＵ１１は、まず、モータ相出力部１２に指令を与え、モータ３０の励磁を開始する。
（ステップＳ３０２）ＣＰＵ１１は、測定を（ｎ×２５０ｎ秒）間待機する。ここで、待機時間は、測定処理回数に応じて設定される。すなわち、測定処理回数ｎが（ｎ＝１）回目には、待機時間は（１×２５０＝２５０ｎ秒）となり、測定処理回数ｎが（ｎ＝２）回目には、待機時間は（２×２５０＝５００ｎ秒）となる。
【００５５】
（ステップＳ３０２）ＣＰＵ１１は、計測回数ｍを（ｍ＝１）に初期化する。
（ステップＳ３０４）ＣＰＵ１１は、電圧測定部１４から電流検出抵抗５１の計測電圧Ｖｒｓｅｎを取得し、測定を開始する。
【００５６】
（ステップＳ３０５）ＣＰＵ１１は、計測電圧Ｖｒｓｅｎの測定の終了を待つ。
（ステップＳ３０６）計測電圧Ｖｒｓｅｎの測定の終了後、ＣＰＵ１１は、取得された計測電圧Ｖｒｓｅｎを計測回数（ｍ＝１）の計測電圧値Ｖｒ［１］とする。
【００５７】
（ステップＳ３０７）ＣＰＵ１１は、今回の計測電圧値Ｖｒ［ｍ］が前回の計測電圧値Ｖｒ［ｍ−１］より大きいか否かを判定する。ＣＰＵ１１は、今回の計測電圧値Ｖｒ［ｍ］が前回の計測電圧値Ｖｒ［ｍ−１］より大きいと判定した場合（ステップＳ３０７；ＹＥＳ）、ステップＳ３０８に処理を進め、今回の計測電圧値Ｖｒ［ｍ］が前回の計測電圧値Ｖｒ［ｍ−１］より小さいと判定した場合（ステップＳ３０７；ＮＯ）、ステップＳ３０９に処理を進める。
【００５８】
（ステップＳ３０８）ＣＰＵ１１は、計測回数ｍを「１」だけ増加して（ｍ＝２）、ステップＳ３０４に処理を戻す。
【００５９】
（ステップＳ３０９）ＣＰＵ１１は、計測回数（ｍ−１）回目の計測値を、測定処理回数ｎの計測電圧最大値Ｖｒｐ［ｎ］（Ｖｒｐ［ｎ］＝Ｖｒ［ｍ−１］）としてメモリ部１５に記憶する。
（ステップＳ３１０）ＣＰＵ１１は、モータ３０の励磁を停止し、測定処理を終了する。
【００６０】
＜補正処理の例＞
ここで、補正処理の一例を、図７〜図９を用い、図４〜図６を参照して説明する。
図７は、本実施形態における電流の補正処理の説明に用いるグラフである。図８は、図７（Ｂ）における立ち上がり部分を拡大した図である。図９は、本実施形態における測定処理回数ｎが（ｎ＝１）のときに取得される計測電圧と、測定処理回数ｎが（ｎ＝２）のときに取得される計測電圧とを比較して示したグラフである。また、図７（Ａ）、図７（Ｂ）、図８、図９（Ａ）、図９（Ｂ）において、横軸は時間、図７（Ａ）において縦軸は電流、図７（Ｂ）、図８、図９（Ａ）、図９（Ｂ）において縦軸は電圧である。
【００６１】
ＣＰＵ１１は、モータ初期化処理を行う（ステップＳ１０１）。そして、ＣＰＵ１１は、ステップＳ１０２〜ステップＳ１０４の処理を行い、測定処理回数ｎを（ｎ＝１）に初期化する（ステップＳ１０５）。
【００６２】
＜＜ｎ＝１回目の処理＞＞
ＣＰＵ１１は、モータ相出力部１２に指令を与え、図７（Ｂ）に示すように、モータ３０の励磁を開始する（ステップＳ３０１）。そして、ＣＰＵ１１は、図９（Ａ）に示すように、測定を（１×２５０ｎ秒）間待機し（ステップＳ３０２）、計測回数ｍを（ｍ＝１）に初期化する（ステップＳ３０３）。
【００６３】
図４〜図６に示したフローチャートの処理では、（ｎ＝１）が１回目の励磁期間に対応し、（ｎ＝２）が２回目の励磁期間に対応し、（ｎ＝３）が３回目に対応し、（ｎ＝４）が４回目の励磁期間、・・・に対応する。
【００６４】
＜＜ｎ＝１回目、ｍ＝１回目の測定処理＞＞
ＣＰＵ１１は、ｍ＝１回目の計測電圧Ｖｒｓｅｎを測定する（ステップＳ３０４〜ステップＳ３０６）。ＣＰＵ１１は、今回の計測電圧値Ｖｒ［１］が前回の計測電圧値Ｖｒ［０］より大きいか否かを判定する（ステップＳ３０７）。計測回数（ｍ＝１）のとき、前回の計測電圧Ｖｒ［０］が取得されていないので、ＣＰＵ１１は、今回の計測電圧値Ｖｒ［１］が前回の計測電圧値Ｖｒ［０］より大きいと判定する。そして、ＣＰＵ１１は、計測回数ｍを「１」だけ増加して（ｍ＝２）（ステップＳ３０８）、ステップＳ３０４に処理を戻す。
【００６５】
＜＜ｎ＝１回目、ｍ＝２〜ｍ回目の測定処理＞＞
ＣＰＵ１１は、計測電圧Ｖｒｓｅｎを測定する（ステップＳ３０４〜ステップＳ３０６）。次に、ＣＰＵ１１は、今回の計測電圧値Ｖｒ［２］が前回の計測電圧値Ｖｒ［１］より大きいか否かを判定する（ステップＳ３０７）。ＣＰＵ１１は、今回の計測電圧値Ｖｒ［２］が前回の計測電圧値Ｖｒ［１］より大きい場合（ステップＳ３０７：ＹＥＳ）、計測回数ｍを「１」だけ増加して（ｍ＝３）とし（ステップＳ３０８）、ステップＳ３０４に処理を戻す。計測電圧の最大値に達するまでは、ステップＳ３０７において、今回の計測電圧値Ｖｒ［ｍ］が前回の計測電圧値Ｖｒ［ｍ−１］より大きいと判定される。このため、計測電圧の最大値に達するまで、ＣＰＵ１１は、ステップＳ３０４〜ステップＳ３０８の処理を繰り返す。
【００６６】
なお、上述した例において、モータ電流を一定に保つための励磁の停止を、モータドライバユニット２０側で行うようにしてもよい。
【００６７】
図８に示すように、計測電圧Ｖｒは時間と共に上昇し、最大値に達すると、急激に下降する。計測電圧Ｖｒは、時間と共に上昇していれば、今回の計測電圧値Ｖｒ［ｍ］が前回の計測電圧値Ｖｒ［ｍ−１］より大きくなる。計測電圧Ｖｒが最大値に到達して下降に転じれば、今回の計測電圧値Ｖｒ［ｍ］は前回の計測電圧値Ｖｒ［ｍ−１］より小さくなる。このため、ＣＰＵ１１は、ステップＳ３０７で、今回の計測電圧値Ｖｒ［ｍ］が前回の計測電圧値Ｖｒ［ｍ−１］より大きいか否かを判定し、今回の計測電圧値Ｖｒ［ｍ］が前回の計測電圧値Ｖｒ［ｍ−１］より小さくなった場合に最大値を越えたと判断し、ステップＳ３０９で、前回の計測電圧値Ｖｒ［ｍ−１］を計測電圧最大値Ｖｒｐ［ｍ］としている。
【００６８】
ステップＳ３０７で、今回の計測電圧値Ｖｒ［ｍ］が前回の計測電圧値Ｖｒ［ｍ−１］より小さいと判定された場合（ステップＳ３０７：ＮＯ）、ＣＰＵ１１は、計測回数（ｍ−１）回目の計測値を、測定処理回数ｎ＝１の計測電圧最大値Ｖｒｐ［１］としてメモリ部１５に記憶する（ステップＳ３０９）。そして、ＣＰＵ１１は、モータ３０の励磁を停止し（ステップＳ３１０）、測定処理を終了する。
【００６９】
次に、ＣＰＵ１１は、ステップＳ１０７、ステップＳ１０８において、各励磁期間において、計測電圧最大値Ｖｒｐ［１］、Ｖｒｐ［２］、Ｖｒｐ［３］、Ｖｒｐ［４］、…から、更に、その最大値を求め、この値を実測電圧値Ｖｆｒとする。
ｎ＝１回目において、ＣＰＵ１１は、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［１］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［０］より大きいか否かを判定する（ステップＳ１０７）。ｎ＝１回目の場合、前回の計測電圧最大値Ｖｒｐ［０］が取得されていないので、ＣＰＵ１１は、今回の計測電圧最大値Ｖｒｐ［１］が前回の計測電圧最大値Ｖｒｐ［０］より大きいと判定する。次に、ＣＰＵ１１は、実測電圧値Ｖｆｒを今回の測定処理で取得された計測電圧最大値Ｖｒｐ［１］に書き換えて（Ｖｆｒ＝Ｖｒｐ［１］）、メモリ部１５に保存する（ステップＳ１０８）。
【００７０】
ＣＰＵ１１は、測定処理回数ｎ＝１が所定回数に達したか否かを判定する（ステップＳ１０９）。ＣＰＩ１１は、定処理回数ｎ＝１が所定回数に達していないと判定して（ステップＳ１０９：ＮＯ）、測定処理回数ｎを「１」だけ増加してｎ＝２として（ステップＳ１１０）、処理をステップＳ１０６に戻す。
【００７１】
＜＜ｎ＝２回目の処理＞＞
ＣＰＵ１１は、ステップＳ１０６〜ステップＳ１１０の処理を繰り返す。
なお、ＣＰＵ１１は、測定処理のステップＳ３０２において、測定を５００ｎ秒（＝２×２５０）間待機させ、計測電圧最大値Ｖｒｐ［２］を測定する（ステップＳ３０４〜ステップＳ３１０）。そして、ＣＰＵ１１は、モータ３０の励磁を停止し（ステップＳ３１０）、測定処理を終了する。
【００７２】
ＣＰＵ１１は、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［２］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［１］より大きいか否かを判定する（ステップＳ１０７）。ＣＰＵ１１は、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［２］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［１］より大きいと判定した場合（ステップＳ１０７；ＹＥＳ）、実測電圧値Ｖｆｒを今回の測定処理で取得された計測電圧最大値Ｖｒｐ［２］に書き換えて（Ｖｆｒ＝Ｖｒｐ［２］）、メモリ部１５に保存する（ステップＳ１０８）。なお、ＣＰＵ１１は、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［２］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［１］より小さいと判定した場合（ステップＳ１０７；ＮＯ）、実測電圧値Ｖｆｒを今回の測定処理で取得された計測電圧最大値Ｖｒｐ［２］に書き換えない。
【００７３】
図９（Ａ）に示すように、測定処理回数（ｎ＝１）回目では、待機時間２５０ｎ秒の後に、計測が開始される。したがって、計測回数（ｍ＝１）、（ｍ＝２）、（ｍ＝３）、…で計測される測定値は、ｐ１、ｐ２、ｐ３、…となる。これに対して、図９（Ｂ）に示すように、測定処理回数（ｎ＝２）回目では、待機時間５００ｎ秒の後に、計測が開始される。したがって、計測回数（ｍ＝１）、（ｍ＝２）、（ｍ＝３）、…で計測される測定値は、ｑ１、ｑ２、ｑ３、…となる。このように、ｎが１回増加する毎に、測定タイミングが２５０ｎ秒右にシフトし、各計測回数での計測値は、異なるものとなる。
【００７４】
計測電圧最大値は、今回の計測電圧値が前回の計測電圧値より小さくなることを判定することにより行われる。図９（Ａ）に示すように、測定処理回数（ｎ＝１）回目では、計測回数（ｍ＝９）までは、今回の計測値が前回の計測値より大きくなる。計測回数（ｍ＝１０）で、今回の計測値が前回の計測値より小さくなり、計測回数（ｍ＝９）の計測値ｐ９が計測最大電圧値Ｖｒｐ［１］として判定される。
【００７５】
測定処理回数（ｎ＝２）回目では、図９（Ｂ）に示すように、計測回数（ｍ＝９）までは、今回の計測値が前回の計測値より大きくなる。計測回数（ｍ＝１０）で、今回の計測値が前回の計測値より小さくなり、計測回数（ｍ＝９）の計測値ｑ９が計測最大電圧値Ｖｒｐ［２］として判定される。
【００７６】
図９（Ａ）と図９（Ｂ）とを比較すれば分かるように、計測タイミングをずらすことで、計測最大電圧値Ｖｒｐが異なる。これにより、精度の高い最大値を検出できる。すなわち、図９の例では、測定処理回数（ｎ＝１）回目では、計測最大電圧値Ｖｒｐ［１］は、ｐ９となる。これに対して、測定処理回数（ｎ＝２）回目では、計測最大電圧値Ｖｒｐ［２］は、ｑ９となり、計測最大電圧値が（ｎ＝１）のときより大きいものとなる。
【００７７】
＜＜ｎ＝３〜ｎ回目の処理＞＞
以下、ＣＰＵ１１は、ｎ＝３〜ｎ回目の処理を繰り返す。
このようにステップＳ１０６からステップＳ１１０を１０回繰り返すことにより、（ｎ＝１回）から（ｎ＝１０回）までの測定処理における各計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［１０］が取得される。そして、ステップＳ１０７及びステップＳ１０８で、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ−１］より大きいと判定された場合、ＣＰＵ１１は、実測電圧値Ｖｆｒを、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］に書き換える。これにより、各計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［１０］の中での最大値が実測電圧値Ｖｆｒとしてメモリ部１５に保存される。
【００７８】
ステップＳ１０９で、測定処理回数ｎが所定回数（例えば１０回）以上になったと判定されたら（ステップＳ１０９：Ｙｅｓ）、ＣＰＵ１１は、実測電圧値Ｖｆｒから、実測電流値Ｉｆｒを計算により求める（ステップＳ１１１）。
次に、ＣＰＵ１１は、実測電流値Ｉｆｒが±５％の範囲に入っているか否かを判定する（ステップＳ１１２、Ｓ１１３）。ＣＰＵ１１は、実測電流値Ｉｆｒが±５％の範囲に入っていると判定した場合（ステップＳ１１２がＹＥＳ、及びＳ１１３がＹＥＳ）、補正処理を終了し、実測電流値Ｉｆｒが±５％の範囲に入っていないと判定した場合（ステップＳ１１２がＮＯ、またはＳ１１３がＮＯ）、補正後の設定電流値Ｉａを算出し（ステップＳ１１４）、ステップＳ１０３に処理を戻す。
以上で、補正処理を終了する。
【００７９】
このように、本実施形態では、各励磁期間で計測タイミングをずらして計測電圧最大値Ｖｒｐ［１］、Ｖｒｐ［２］、Ｖｒｐ［３］、Ｖｒｐ［４］、…を求め、これらの計測電圧最大値Ｖｒｐ［１］、Ｖｒｐ［２］、Ｖｒｐ［３］、Ｖｒｐ［４］、…の中の最大値を実測電圧値Ｖｆｒとすることで、高い精度で最大値を検出することができる。
【００８０】
図４におけるステップＳ１０６〜ステップＳ１１０の処理は、各励磁期間において、上述のように求められた計測電圧最大値Ｖｒｐ［１］、Ｖｒｐ［２］、Ｖｒｐ［３］、…、Ｖｒｐ［ｎ］から、更に、その最大値を求める処理を示している。
【００８１】
つまり、図４におけるステップＳ１０７で、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ−１］より大きいと判定された場合には、ステップＳ１０８で、実測電圧値Ｖｆｒが今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］により書き換えられる。これにより、計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］の中の最大値が求められる。ステップＳ１０８で、この計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］の中の最大値が実測電圧値Ｖｆｒとして保存される。
【００８２】
なお、この例では、ステップＳ１０７で、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ−１］とを比較する。そして、今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］が前回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ−１］より大きい場合には、ステップＳ１０８で、実測電圧値Ｖｆｒが今回の測定処理で取得された計測電圧最大値Ｖｒｐ［ｎ］により書き換えられる。これにより、本実施形態では、計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］を取得する処理と、計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］の中の最大値を求める処理とが同時に行える。なお、全ての計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］を取得した後に、計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］の最大値を求める処理を行ってもよい。
【００８３】
このように、図４におけるステップＳ１０６〜ステップＳ１１０で、計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］から、更に、その最大値を求める処理が行われ、ステップＳ１０８で、この最大値が実測電圧値Ｖｆｒとされる。そして、ステップＳ１１１で、実測電圧値Ｖｆｒから実測電流値Ｉｆｒが求められる。そして、ステップＳ１１２及びステップＳ１１３で、この実測電流値Ｉｆｒが所定の誤差範囲にあるか否かが判定される。この実測電流値Ｉｆｒが所定の誤差範囲になければ、ステップＳ１１４で、実測電流値Ｉｆｒと目標設定電流値Ｉｔとに応じて、補正後の設定電流値Ｉａが求められ、ステップＳ１０３で、この補正後の設定電流値Ｉａに基づいて、リファレンス電圧Ｖｒｅｆが補正される。
【００８４】
以上のように、本実施形態のモータ制御装置（プリンタ装置１）は、モータ３０を駆動するモータドライバ部（モータドライバユニット２０）と、モータドライバ部を介してモータを制御する制御部（制御回路ユニット１０）と、を備え、制御部は、モータを励磁しているときの電流検出抵抗５１に発生する計測電圧を取得し、取得した計測電圧に基づいて、モータドライバ部が計測電圧と比較して電流制御を行うためのリファレンス電圧を補正する。
【００８５】
この構成によって、本実施形態によれば、制御回路ユニット１０側で計測電圧を測定しているので、精度の高い電流値設定ができる。この結果、本実施形態によれば、測定された計測電圧を用いてリファレンス電圧Ｖｒｅｆを変更しているので、リファレンス電圧が固定されている従来技術と比較して、精度の高い電流設定によりモータを駆動できる。これにより、本実施形態によれば、適正な電流値でモータ３０を動かすことで、消費電流を抑えて、モータ３０の必要トルクを得ることができる。
【００８６】
また、本実施形態のモータ制御装置（プリンタ装置１）において、制御部（制御回路ユニット１０）は、電源が投入された直後の初期化時に前記モータを励磁して計測電圧を取得する。
この構成によって、モータ３０を電流制御して駆動する前に、リファレンス電圧Ｖｒｅｆを変更することができる。この結果、本実施形態によれば、リファレンス電圧が固定されている従来技術と比較して、精度の高い電流設定によりモータを駆動できる。
【００８７】
また、本実施形態のモータ制御装置（プリンタ装置１）において、制御部（制御回路ユニット１０）は、複数の励磁期間毎に異なる計測タイミングで順次計測電圧Ｖｒを取得して各励磁期間内での計測電圧の最大値である計測電圧最大値Ｖｒｐを取得し、複数の励磁期間それぞれで取得された計測電圧最大値の中の最大値を求め、求めた計測電圧最大値Ｖｒｐの中の最大値を用いてリファレンス電圧を補正する。
【００８８】
この構成によって、本実施形態によれば、ｎ回目毎に異なる計測タイミングで計測電圧を測定することで、精度良く計測電圧最大値Ｖｒｐを測定することができる。この結果、本実施形態によれば、精度良く測定された計測電圧を用いてリファレンス電圧Ｖｒｅｆを変更しているので、リファレンス電圧が固定されている従来技術と比較して、精度の高い電流設定によりモータを駆動できる。
【００８９】
また、本実施形態のモータ制御装置（プリンタ装置１）において、制御部（制御回路ユニット１０）は、計測電圧からモータ３０に流れている電流値を算出し、算出したモータに流れている電流値Ｉｆｒと目標電流設定値Ｉｔとの誤差が所定範囲以上の場合に、電流検出抵抗の計測電圧に基づいて、リファレンス電圧を補正する。
【００９０】
この構成によって、本実施形態によれば、測定された電流値Ｉｆｒが目標電流設定値Ｉｔに対して所定の誤差（例えば±５％）の範囲に入るようにリファレンス電津Ｖｒｅｆを設定することができる。この結果、本実施形態によれば、精度良く測定された計測電圧を用いてリファレンス電圧Ｖｒｅｆを変更しているので、リファレンス電圧が固定されている従来技術と比較して、精度の高い電流設定によりモータを駆動できる。
【００９１】
なお、図４〜図６に示したフローチャートの処理は、電源が投入された直後の初期化時に、常に行うようにしてもよく、あるいは、工場出荷時にのみ行うようにしてもよい。
【００９２】
また、電圧測定部１４のＡ／Ｄ（アナログ信号−デジタル信号）変換器として精度の高いものを用いることができれば、各励磁期間Ｔ１〜Ｔｎで計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］を求め、これらの計測電圧最大値Ｖｒｐ［１］〜Ｖｒｐ［ｎ］の中の最大値を求めて実測電圧値とする処理は不要である。この場合には、１つの励磁期間内で高いサンプリング周波数で計測電圧を取得し、計測した計測電圧最大値を実測電圧値として用いるようにしてもよい。
【００９３】
また、各励磁期間で、計測最大値となるタイミングは殆ど同じなるので、１つの励磁期間で計測最大電圧値が検出されたら、以降の期間では、計測最大電圧値が計測される可能性の高いタイミングでのみ、計測を行うようにしてもよい。図９の例では、計測回数ｍが（ｍ＝９）から（ｍ＝１０）のタイミングで、計測最大電圧値が検出される。例えば、図９の例では、１回目の計測で（ｍ＝９）から（ｍ＝１０）の付近で計測最大電圧値が検出されているので、以後の計測では、計測回数ｍが（ｍ＝７）あるいは（ｍ＝８）のタイミングから、計測を開始してもよい。
【００９４】
なお、本実施形態では、プリンタに用いられるモータの制御に適用する例を説明したが、これに限られない。プリンタ以外の製品におけるステッピングモータの制御に適用してもよい。
【００９５】
なお、プリンタ装置１の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【００９６】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００９７】
１…プリンタ装置、１０…制御回路ユニット、１２…モータ相出力部、１３…モータ電流設定電圧出力部、１４…電圧測定部、１５…メモリ部、１６…印字制御部、１７…サーマルヘッドデータ出力部、２０…モータドライバユニット、２１…モータ相制御回路、２２…電流制御回路、２３…モータ駆動回路、３０…モータ、４０…印字ユニット、４１…サーマルヘッド印字部、５１…電流検出抵抗
【図１】
2017034886.tif 000003
【図２】
2017034886.tif 000004
【図３】
2017034886.tif 000005
【図４】
2017034886.tif 000006
【図５】
2017034886.tif 000007
【図６】
2017034886.tif 000008
【図７】
2017034886.tif 000009
【図８】
2017034886.tif 000010
【図９】
2017034886.tif 000011