(57)【要約】【課題】乗物の運転中にヒータの通電状態等の視認とヒータの温度の操作とを容易に行うことを可能としつつ、その操作と視認のための構成を省スペースなものとすることができるグリップヒータ制御装置を提供する。【解決手段】グリップ１の端部にヒータ温度操作子５，６と併設された１個の発光素子４を表示手段として備える。表示制御手段は、ヒータ温度操作子５，６が操作された場合に、その操作に対応して目標電力量設定手段が設定した目標電力量に応じて、発光素子４の点滅周期である第１所定周期を可変的に設定する処理と、ヒータ温度操作子５，６が操作された直後の所定期間において、発光素子４を設定した第１所定周期で点滅表示させる処理とからなる操作時表示制御処理を実行する手段を備える。【選択図】図２
2006282042.tif 000002
【特許請求の範囲】
【請求項１】
バッテリを備えた乗物のステアリングハンドルのグリップに設けられ、前記バッテリから供給される電力により発熱するヒータと、該ヒータの温度を調節するために運転者によって操作されるヒータ温度操作子と、該ヒータ温度操作子の操作に応じた信号を出力する操作信号出力手段と、該操作信号出力手段の出力に応じて前記ヒータへの目標電力量を設定する目標電力量設定手段と、少なくとも所定の条件下で前記バッテリから前記ヒータに供給される電力量を前記目標電力量に制御するヒータ制御手段と、少なくとも前記ヒータの通電状態を表示する表示手段と、該表示手段の表示を制御する表示制御手段とを備えたグリップヒータ制御装置において、
前記表示手段は、前記グリップの端部に前記ヒータ温度操作子と併設された１個の発光素子であり、前記表示制御手段は、前記ヒータ温度操作子が操作された場合に、その操作に対応して前記目標電力量設定手段が設定した目標電力量に応じて、前記発光素子の点滅周期である第１所定周期を可変的に設定する処理と、前記ヒータ温度操作子が操作された直後の所定期間において、前記発光素子を前記設定した第１所定周期で点滅表示させる処理とからなる操作時表示制御処理を実行する手段を備えることを特徴とするグリップヒータ制御装置。
【請求項２】
前記表示制御手段は、前記第１所定周期を、前記目標電力量が大きくなるほど短くなるように設定することを特徴とする請求項１記載のグリップヒータ制御装置。
【請求項３】
前記表示制御手段は、前記ヒータ温度操作子が操作された直後の前記所定期間内において、前記ヒータ温度操作子が再度操作された場合には、その再度の操作前の前記操作時表示制御処理を中断して、該操作時表示制御処理を新たに行うことを特徴とする請求項１又は２記載のグリップヒータ制御装置。
【請求項４】
前記表示制御手段は、前記所定期間以外の期間において、前記ヒータ制御手段によって前記ヒータに供給される電力量が前記目標電力量に制御されている場合に、前記発光素子を継続的に点灯表示させる定常時表示制御処理を実行する手段を備えることを特徴とする請求項１〜３のいずれかに記載のグリップヒータ制御装置。
【請求項５】
前記乗物は、推進源であるエンジンと、該エンジンの回転に連動して発電し、前記バッテリを充電する発電機とを備える乗物であり、前記エンジン又は発電機の回転数を検出する回転数検出手段と、検出された前記回転数に応じて前記ヒータへの上限電力量を設定する上限電力量設定手段とを備え、前記ヒータ制御手段は、前記ヒータに供給される電力量を、前記目標電力量と前記上限電力量とのうちの小さいほうの電力量に制御するものであり、前記定常時表示制御処理を実行する手段は、前記所定期間以外の期間において、前記ヒータ制御手段によって前記ヒータに供給される電力量が前記上限電力量に制御されている場合は、前記発光素子を第２所定周期で点滅表示させる処理を行うことを特徴とする請求項４記載のグリップヒータ制御装置。
【請求項６】
前記上限電力量設定手段が前記検出された回転数に応じて設定する前記上限電力量の値は複数種類あり、前記表示制御手段は、前記第２所定周期を該上限電力量の値に応じて可変的に設定することを特徴とする請求項５記載のグリップヒータ制御装置。
【請求項７】
前記目標電力量設定手段が設定する目標電力量は０を含むと共に、前記ヒータ制御手段は、該目標電力量が０である場合には、前記ヒータの通電を停止させる手段を備えており、前記表示制御手段は、前記ヒータ制御手段によって前記ヒータの通電が停止されている場合には、前記操作時表示制御処理及び定常時表示制御処理を禁止して、前記発光素子を継続的に消灯表示させる通電停止時表示制御処理を実行する手段を備えることを特徴とする請求項４〜６のいずれかに記載のグリップヒータ制御装置。
【請求項８】
前記ヒータ温度操作子の異常を検出する操作子異常検出手段を備え、前記表示制御手段は、前記ヒータ温度操作子の異常が検出されている場合には、前記操作時表示制御処理及び定常時表示制御処理を禁止して、前記発光素子を、前記第１所定周期と異なる周期である第３所定周期で点滅表示させる操作子異常時表示制御処理を実行する手段を備えることを特徴とする請求項４記載のグリップヒータ制御装置。
【請求項９】
前記ヒータ温度操作子の異常を検出する操作子異常検出手段を備え、前記表示制御手段は、前記ヒータ温度操作子の異常が検出されている場合には、前記操作時表示制御処理及び定常時表示制御処理処理を禁止して、前記発光素子を、前記第１及び第２所定周期と異なる周期である第３所定周期で点滅表示させる操作子異常時表示制御処理を実行する手段を備えることを特徴とする請求項５又は６記載のグリップヒータ制御装置。
【請求項１０】
前記バッテリの電圧を検出するバッテリ電圧検出手段を備え、前記表示制御手段は、検出された前記バッテリの電圧が所定の電圧以下である場合には、前記操作時表示制御処理及び定常時表示制御処理を禁止して、前記発光素子を、前記定常時表示制御処理における点灯時よりも減光して継続的に点灯表示させる電圧低下時表示制御処理を実行する手段を備えることを特徴とする請求項４〜６のいずれかに記載のグリップヒータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オートバイ、スノーモービル、水上バイク等の乗物のステアリングハンドルのグリップに設けられるヒータの制御装置に関するものである。
【背景技術】
【０００２】
従来、オートバイ、スノーモービル、水上バイク等の、エンジンを推進源として備える乗物においては、ステアリングハンドルのグリップ（運転者が把持する部分）にヒータ（電熱ヒータ）が設けられ、ヒータへの通電量を制御することによってグリップを加温し、運転者に快適な運転環境を提供しているものが知られている（例えば特許文献１）。この特許文献１のグリップヒータ制御装置においては、車体の左側面に装着されたカウリングに設けられたスイッチユニットに、運転者の操作によってヒータの温度を増減させるアップスイッチ及びダウンスイッチと、点灯数によって運転者にヒータの通電状態を認識させる４個の発光ダイオードとが備えられている。このグリップヒータ制御装置では、アップスイッチのオン回数及びダウンスイッチのオン回数に基づいて発光ダイオードの点灯数が定められ、該発光ダイオードの点灯数に応じて定められたヒータへの通電率（ヒータへの目標電力量）に基づいて、ヒータへの通電がＰＷＭ制御により制御される。このとき、発光ダイオードの点灯数から、アップスイッチ及びダウンスイッチの操作により指定されたヒータへの目標電力量を視認することができる。
【０００３】
一方、運転者が乗物の運転中にヒータの通電状態を確認しながら温度を操作する場合があるので、グリップヒータ制御装置は、ヒータの温度の操作やヒータの通電状態の視認が、運転中に容易に行えることが望ましい。よって、ヒータの温度を操作するためのスイッチやヒータの通電状態を視認するための表示手段は、例えばグリップ周辺の場所に設置されることが望ましいと考えられる。ただし、グリップ周辺には、一般に、メータやランプスイッチ等、乗物の走行に必要な機器を取り付ける必要があるので、グリップヒータ制御装置に係るスイッチや表示手段を設置するスペースが限られている。
【０００４】
しかしながら、特許文献１のものでは、複数の発光ダイオードを用いているため、グリップ周辺の限られたスペースにスイッチユニットを設置することが困難であり、また、スイッチユニットが乗物の左側面に装着されたカウリングに設けられているため、運転中のスイッチの操作や発光ダイオードの視認が十分に容易ではないという不都合があった。
【特許文献１】特開２００４−６７０７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、かかる不都合を解消して、乗物の運転中にヒータの通電状態等の視認とヒータの温度の操作とを容易に行うことを可能としつつ、その操作と視認のための構成を省スペースなものとすることができるグリップヒータ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
かかる目的を達成するために、本発明は、バッテリを備えた乗物のステアリングハンドルのグリップに設けられ、前記バッテリから供給される電力により発熱するヒータと、該ヒータの温度を調節するために運転者によって操作されるヒータ温度操作子と、該ヒータ温度操作子の操作に応じた信号を出力する操作信号出力手段と、該操作信号出力手段の出力に応じて前記ヒータへの目標電力量を設定する目標電力量設定手段と、少なくとも所定の条件下で前記バッテリから前記ヒータに供給される電力量を前記目標電力量に制御するヒータ制御手段と、少なくとも前記ヒータの通電状態を表示する表示手段と、該表示手段の表示を制御する表示制御手段とを備えたグリップヒータ制御装置において、前記表示手段は、前記グリップの端部に前記ヒータ温度操作子と併設された１個の発光素子であり、前記表示制御手段は、前記ヒータ温度操作子が操作された場合に、その操作に対応して前記目標電力量設定手段が設定した目標電力量に応じて、前記発光素子の点滅周期である第１所定周期を可変的に設定する処理と、前記ヒータ温度操作子が操作された直後の所定期間において、前記発光素子を前記設定した第１所定周期で点滅表示させる処理とからなる操作時表示制御処理を実行する手段を備えることを特徴とする。
【０００７】
本発明によれば、前記ヒータの通電状態を表示する前記表示手段として、１個の発光素子のみを用いるので省スペースである。このため、前記表示手段を前記ヒータ温度操作子と併せて前記グリップの端部に容易に設置することができる。また、前記ヒータ温度操作子が操作された場合に、その操作に対応して前記目標電力量設定手段が設定した目標電力量に応じて、第１所定周期が可変的に設定され、前記ヒータ温度操作子が操作された直後の所定期間（例えば一定時間の期間）において、前記発光素子が前記設定した第１所定周期で点滅するので、前記１個の発光素子の表示によって、運転者の操作により設定された前記ヒータへの目標電力量を、運転者に明確に認識させることができる。これにより、運転者が運転中に前記ヒータの通電状態（前記ヒータ温度操作子の操作によって指定した通電状態）を容易に視認しながら前記ヒータの温度を操作することができる。
【０００８】
ここで、前記表示制御手段は、前記第１所定周期を、前記目標電力量が大きくなるほど短くなるように設定することが好ましい。
【０００９】
これによれば、前記ヒータへの目標電力量の変化の度合に応じて、該目標電力量が大きくなるほど、前記発光ダイオードの点滅する周波数が高く（周期が短く）なるので、運転者にとって該目標電力量の大きさが感覚的に把握しやすくなる。よって、運転者に前記ヒータの通電状態をより容易に認識させることができる。
【００１０】
また、運転者が短時間内に前記ヒータに供給される電力量を変更しようとしたとき等に、前記ヒータ温度操作子が前記所定期間内に複数回、操作されることが考えられる。よって、前記表示制御手段は、前記ヒータ温度操作子が操作された直後の前記所定期間内において、前記ヒータ温度操作子が再度操作された場合には、その再度の操作前の前記操作時表示制御処理を中断して、該操作時表示制御処理を新たに行うことが好ましい。
【００１１】
これによれば、前記ヒータ温度操作子が操作された直後の所定期間内において、前記ヒータ温度操作子が再度操作された場合には、その再度の操作前の前記操作時表示制御処理が中断され、該操作時表示制御処理が新たに行われるので、最新の前記ヒータ操作子の操作に応じた表示が速やかに行われ、新たに設定された前記ヒータへの目標電力量を運転者に明確に認識させることができる。
【００１２】
また、前記表示制御手段は、前記所定期間以外の期間において、前記ヒータ制御手段によって前記ヒータに供給される電力量が前記目標電力量に制御されている場合に、前記発光素子を継続的に点灯表示させる定常時表示制御処理を実行する手段を備えることが好ましい。
【００１３】
これによれば、前記所定期間以外の期間において、前記ヒータ制御手段によって前記ヒータに供給される電力量が前記目標電力量に制御されている場合に、前記発光素子が継続的に点灯するので、前記操作時表示制御処理が行われていないときに、前記ヒータが運転者の設定した前記目標電力量で定常的に通電されていることを、運転者に明確に認識させることができる。
【００１４】
さらに、前記乗物は、推進源であるエンジンと、該エンジンの回転に連動して発電し、前記バッテリを充電する発電機とを備える乗物であり、前記エンジン又は発電機の回転数を検出する回転数検出手段と、検出された前記回転数に応じて前記ヒータへの上限電力量を設定する上限電力量設定手段とを備え、前記ヒータ制御手段は、前記ヒータに供給される電力量を、前記目標電力量と前記上限電力量とのうちの小さいほうの電力量に制御するものである場合には、前記定常時表示制御処理を実行する手段は、前記所定期間以外の期間において、前記ヒータ制御手段によって前記ヒータに供給される電力量が前記上限電力量に制御されている場合は、前記発光素子を第２所定周期で点滅表示させる処理を行うことが好ましい。
【００１５】
これによれば、前記所定期間以外の期間において、前記ヒータ制御手段によって前記ヒータに供給される電力量が前記上限電力量に制御されている場合は、前記発光素子は、前記第２所定周期で点滅するので、前記ヒータへの実際の電力量が前記上限電力量に制限されていることを、運転者に明確に認識させることができる。なお、前記第２所定周期は、前記上限電力量を前記目標電力量であるとみなしたときに前記表示制御手段によって設定される前記第１所定周期と同じ周期に設定されることが好ましい。
【００１６】
ここで、前記上限電力量設定手段が前記検出された回転数に応じて設定する前記上限電力量の値が複数種類ある場合には、前記表示制御手段は、前記第２所定周期を該上限電力量の値に応じて可変的に設定することが好ましい。
【００１７】
これによれば、前記上限電力量の値に応じて、前記第２所定周期が可変的に設定されるので、前記ヒータへの実際の電力量が前記上限電力量に制限されているときに、前記上限電力量の値を、運転者に明確に認識させることができる。なお、前記第２所定周期は、前記上限電力量が大きくなるほど短くなるように設定されることが好ましい。
【００１８】
また、前記目標電力量設定手段が設定する目標電力量は０を含むと共に、前記ヒータ制御手段は、該目標電力量が０である場合には、前記ヒータの通電を停止させる手段を備えており、前記表示制御手段は、前記ヒータ制御手段によって前記ヒータの通電が停止されている場合には、前記操作時表示制御処理及び定常時表示制御処理を禁止して、前記発光素子を継続的に消灯表示させる通電停止時表示制御処理を実行する手段を備えることが好ましい。
【００１９】
これによれば、前記目標電力量が０に設定されて、前記ヒータの通電が停止されている場合には、前記発光素子が消灯するので、運転者の操作によって前記ヒータが停止されていることを、運転者に明確に認識させることができる。
【００２０】
また、前記ヒータ温度操作子に係る回路（前記操作信号出力手段）がショートしていたり、前記ヒータ温度操作子が運転者によって意図せずに押さえつけられていたりして、前記ヒータ温度操作子が異常に操作されることが考えられる。このような場合には、ヒータ温度操作子の機能やその操作に異常が生じている旨を、速やかに運転者に認識させることが望ましい。従って、前記ヒータ温度操作子の異常を検出する操作子異常検出手段を備え、前記表示制御手段は、前記ヒータ温度操作子の異常が検出されている場合には、前記操作時表示制御処理及び定常時表示制御処理を禁止して、前記発光素子を、前記第１所定周期と異なる周期である第３所定周期で点滅表示させる操作子異常時表示制御処理を実行する手段を備えることが好ましい。又は、前記定常時表示制御処理を実行する手段が、前記所定期間以外の期間において、前記ヒータ制御手段によって前記ヒータに供給される電力量が前記上限電力量に制御されている場合に、前記発光素子を第２所定周期で点滅表示させる処理を行うものであるときには、前記表示制御手段は、前記ヒータ温度操作子の異常が検出されている場合には、前記操作時表示制御処理及び定常時表示制御処理処理を禁止して、前記発光素子を、前記第１及び第２所定周期と異なる周期である第３所定周期で点滅表示させる操作子異常時表示制御処理を実行する手段を備えることが好ましい。
【００２１】
これによれば、前記ヒータ温度操作子の異常が検出されている場合は、前記操作時表示制御処理及び定常時表示制御処理が禁止されて、前記操作子異常時表示制御処理が行われるので、前記ヒータ温度操作子の機能やその操作に異常が生じている旨が確実に表示される。このとき、前記発光素子を、前記第１及び第２所定周期のいずれとも異なる周期である第３所定周期で点滅させる。例えば、前記第３所定周期は、前記第１所定周期（目標電力量に応じて設定され得る任意の第１所定周期）より長い周期であり、かつ、前記第２所定周期（上限電力量に応じて設定され得る任意の第２所定周期）より長い周期である。よって、前記操作時表示制御処理及び定常時表示制御処理と異なる表示になり、前記ヒータ温度操作子の異常を、運転者に明確に認識させることができる。
【００２２】
また、バッテリの電圧が、所定の電圧（例えばエンジンを始動する（スタータモータを駆動する）のに必要な最低限の電圧よりも若干高い電圧）以下に低下している場合には、例えば、ヒータを強制的にＯＦＦして（ヒータの通電を停止）、バッテリの電圧が過剰に低下することを防止することが考えられる。このとき、バッテリの電圧が低下している旨を、速やかに運転者に認識させることが望ましい。従って、前記バッテリの電圧を検出するバッテリ電圧検出手段を備え、前記表示制御手段は、検出された前記バッテリの電圧が所定の電圧以下である場合には、前記操作時表示制御処理及び定常時表示制御処理を禁止して、前記発光素子を、前記定常時表示制御処理における点灯時よりも減光して継続的に点灯表示させる電圧低下時表示制御処理を実行する手段を備えることが好ましい。
【００２３】
これによれば、前記電圧の低下が検出された場合には、前記操作時表示制御処理及び定常時表示制御処理が禁止されて、前記電圧低下時表示制御処理が行われるので、前記バッテリの電圧が低下している旨が確実に表示される。このとき、前記発光素子を、前記定常時表示制御処理における点灯時より減光して（点灯時の発光素子の明るさを低くする）、継続的に点灯させるので、前記操作時表示制御処理及び定常時表示制御処理とは異なる表示になり、前記バッテリの電圧の低下を、運転者に明確に認識させることができる。
【発明を実施するための最良の形態】
【００２４】
本発明の一実施形態を添付の図面を参照して説明する。
【００２５】
図１は、本実施形態であるグリップヒータ制御装置が備えられた乗物の左側グリップの外観図であり、図２は、本実施形態であるグリップヒータ制御装置のシステムブロック図であり、図３は、図２のグリップヒータ制御装置における発電機から出力されるピックアップ信号の時間変化を示すグラフであり、図４は、図２のグリップヒータ制御装置の回路図である。また、図５〜図１２は、図２のグリップヒータ制御装置の制御処理を示すフローチャートである。また、図１３は図２のグリップヒータ制御装置における発電機の発電周期とヒータへの上限電力量との関係を示すグラフである。また、図１４は、図２のグリップヒータ制御装置におけるヒータ出力レベルとスイッチの操作とＬＥＤのＯＮ・ＯＦＦとの関係を示すグラフであり、図１５は、図２のグリップヒータ制御装置におけるＡＣＧレベル制限作動中のヒータ出力レベルとスイッチの操作とＬＥＤのＯＮ・ＯＦＦとの関係を示すグラフである。なお、本実施形態では、乗物としてオートバイ（自動二輪車）を例にとる。
【００２６】
まず、図１を参照して、本実施形態におけるグリップヒータ制御装置は、オートバイのステアリングハンドルＳＨに設けられる左側グリップ１及び図示しない右側グリップにそれぞれ内蔵されるフレキシブルプリント配線基板等からなるヒータ（電熱ヒータ）２への電力量を制御するものである。左側グリップ１及び右側グリップは、ゴム等の樹脂から形成された有底筒状のものであり、ステアリングハンドルＳＨのフレームＳＨＦの各端部（左端部および右端部）にそれぞれ挿着されている。左側グリップ１のヒータ２は、該グリップ１の内周面とステアリングハンドルＳＨのフレームＳＨＦの外周面との間に介装され、このヒータ２の発熱によって左側グリップ１が加温される。図示を省略するが、右側グリップのヒータも、左側グリップ１のヒータ２と同様に設けられている。なお、以降の説明では、右側グリップのヒータにも参照符号２を付する。
【００２７】
また、左側グリップ１の右端部（オートバイの中心寄りの端部）に形成されたフランジ部３には、両ヒータ２，２への通電状態を表示して運転者に報知するＬＥＤ４と、両ヒータ２，２の温度を調節する（より正確には、両ヒータ２，２への電力量を設定する）ために運転者によって操作されるヒータ温度操作子であるＵＰスイッチ５及びＤＯＷＮスイッチ６が備えられている。ＵＰスイッチ５はヒータ２，２の温度（電力量）を上げるとき、あるいはヒータ２，２の通電を開始するときに操作される押圧操作型のスイッチであり、ＤＯＷＮスイッチ６はヒータ２，２の温度（電力量）を下げるとき、あるいはヒータ２，２の通電を停止するときに操作される押圧操作型のスイッチである。
【００２８】
次に、図２を参照して、本実施形態におけるグリップヒータ制御装置７は、電子回路等で構成されたコントローラ８と、前記ヒータ２，２と、前記ＬＥＤ４、ＵＰスイッチ５及びＤＯＷＮスイッチ６とを備えている。また、グリップヒータ制御装置７は、オートバイに搭載され、図示しないエンジンの回転に連動して発電する発電機９と、発電機９によって充電されるバッテリ１０とに接続されている。なお、エンジンはオートバイの推進源である。
【００２９】
発電機９は、例えば、三相交流発電機（ＡＣＧ）であり、そのロータが、エンジンの出力軸の回転に連動して回転するように、エンジンの出力軸に接続されている。この発電機９の発電量は、エンジンの回転数（出力軸の回転速度）が低いほど小さくなる。また、発電機９のロータには、９個の爪状の突起２９ａを外周に備えた金属板であるピックアップロータ２９が、該ロータと同軸に接続されている。ピックアップロータ２９の近傍には、ピックアップロータ２９の回転に応じたピックアップ信号を出力するためのピックアップコイル３０が取り付けられている。ピックアップコイル３０は、ピックアップロータ２９の回転時に、各突起２９ａに順次対向し、その都度、パルス状のピックアップ信号を出力する。これにより、発電機９の回転数（ロータの回転速度）に応じたピックアップ信号が出力され、コントローラ８に入力される。
【００３０】
ここで、図３は、発電機９からコントローラ８へ出力されるピックアップ信号の時間変化を示すグラフであり、縦軸は信号電圧を示し、横軸は時間を示す。ピックアップ信号は、発電機９の回転数に応じた周期を有する波形を示すものであり、その周期は、発電機９の回転数の増加に伴い短くなる。なお、本実施形態の発電機９では、前記ピックアップロータ２９の突起２９ａは、該ロータ２９の外周の全周に等間隔で配列されていないので、発電機９のロータが連続的に回転している状態であっても、図３の期間ｔａ〜ｔｂのように、ピックアップ信号が出力されない期間が周期的に現れるようになっている。
【００３１】
バッテリ１０は、例えば、鉛蓄電池であり、オートバイの全電気系統に電力を供給するものである。バッテリ１０は、その負極１０ａと正極１０ｂとが、整流回路３１を介して、発電機９に接続されており、発電機９の発電電圧を整流回路３１で整流してなる直流電圧により充電される。ここで、整流回路３１は、例えば、全波整流回路または半波整流回路である。また、バッテリ１０は、その負極１０ａが接地されると共に、正極１０ｂにオートバイのメインスイッチ１１とヒューズ１２とが直列に接続され、これらのメインスイッチ１１とヒューズ１２とを介してコントローラ８にバッテリ１０の出力電圧を供給するように該コントローラ８に接続されている。
【００３２】
さらに、バッテリ１０は、メインスイッチ１１とヒューズ１２とを介してヒータ２，２に通電するように該ヒータ２，２に接続されている。さらに詳しくは、ヒータ２，２は直列に接続され、その直列回路の一端がバッテリ１０の正極１０ｂにメインスイッチ１１とヒューズ１２とを介して接続されると共に、該直列回路の他端がコントローラ８に接続されている。この場合、ヒータ２，２の直列回路の他端は、コントローラ８の後述するヒータ出力Ｉ／Ｆ２０により接地又は開放されるようになっており、その接地時に、バッテリ１０からヒータ２，２の直列回路に通電される。
【００３３】
コントローラ８は、本実施形態では、例えばオートバイのヘッドランプのハウジング（図示しない）に収容されており、制御演算を行うＣＰＵ１３と、ＣＰＵ１３にクロック信号を発信するクロック発信部１４と、ＣＰＵ１３を初期化する外部リセット回路１５とを備える。また、コントローラ８は、バッテリ１０の出力電圧（以下、バッテリ電圧という）を供給される電源入力部１６と、電源入力部１６の出力電圧から５Ｖの定電圧Ｖｄｄを生成して出力する５Ｖ電源部１７と、電源入力部１６の出力電圧を分圧してなる分圧電圧Ｖｓを出力する電源電圧分圧部１８とを備える。
【００３４】
また、コントローラ８は、発電機９から出力されるピックアップ信号を受けて、このピックアップ信号に同期したパルス信号をＣＰＵ１３に出力するＡＣＧ信号入力Ｉ／Ｆ１９と、ＣＰＵ１３の指令に応じてバッテリ１０からヒータ２へ通電及びその遮断を制御し、ヒータ２への電力量を制御（ＰＷＭ制御）するヒータ出力Ｉ／Ｆ２０とを備えている。ヒータ２への電力量は、ＵＰスイッチ５及びＤＯＷＮスイッチ６の操作によって、レベル０〜レベル５の６段階に設定可能とされている。レベル０ではヒータ２はＯＦＦ（ヒータ２の通電停止状態）であり、レベルが高くなるほどヒータ２への電力量は大きくなる。なお、本明細書では、「Ｉ／Ｆ」はインタフェース回路を意味する。
【００３５】
また、コントローラ８は、ＣＰＵ１３からの出力（動作指令信号）に応じてＬＥＤ４を点灯・消灯させるＬＥＤ出力Ｉ／Ｆ２１と、ＵＰスイッチ５の操作に応じた信号を生成して、それをＣＰＵ１３に出力するＵＰスイッチ入力Ｉ／Ｆ２２と、ＤＯＷＮスイッチ６の操作に応じた信号を生成して、それをＣＰＵ１３に出力するＤＯＷＮスイッチ入力Ｉ／Ｆ２３とを備えている。
【００３６】
コントローラ８について、図４を参照して、より詳細に説明する。ＣＰＵ１３は、外部リセット回路１５、電源電圧分圧部１８、ＡＣＧ信号入力Ｉ／Ｆ１９、ヒータ出力Ｉ／Ｆ２０、ＬＥＤ出力Ｉ／Ｆ２１、ＵＰスイッチ入力Ｉ／Ｆ２２、ＤＯＷＮスイッチ入力Ｉ／Ｆ２３に、ＣＰＵ１３の端子とそれぞれ接続された複数の信号線を束にした信号線群２６を介して接続されている。なお、図４において、ＣＰＵ１３中の参照符号「Ｐｎｍ」（ｎ，ｍは整数）と、信号線群２６の近くに併記した参照符号「Ｐｎｍ」は、ＣＰＵ１３の端子と、この端子に信号線群２６を介して接続される回路との関係を示している。例えば「Ｐ２３」は、ＣＰＵ１３の端子Ｐ２３がＡＣＧ信号入力Ｉ／Ｆ１９に信号線群２６を介して接続されていることを示している。
【００３７】
電源入力部１６は、ダイオードＤ１，Ｄ２、電解コンデンサＣ１、およびコンデンサＣ５を図示の如く接続して構成されており、バッテリ１０から供給されるバッテリ電圧（これは発電機９の発電電圧による変動を生じる）を、整流用のダイオードＤ１を介して電解コンデンサＣ１に充電し、その充電したバッテリ電圧を５Ｖ電源部１７と電源電圧分圧部１８とに供給する。なお、コンデンサＣ５は、電解コンデンサＣ１の充電電圧からノイズ成分を除去するためのものである。また、電源入力部１６は、バッテリ１０から供給されるバッテリ電圧をダイオードＤ２を介してＬＥＤ出力Ｉ／Ｆ２１に供給する。以降、電解コンデンサＣ１に充電されたバッテリ電圧に参照符号Ｖｂ＿Ａを付し、ダイオードＤ２から出力されるバッテリ電圧に参照符号Ｖｂ＿Ｂを付する。Ｖｂ＿Ａ，Ｖｂ＿Ｂは、概ね等しい電圧（例えば１２Ｖ）であるが、Ｖｂ＿Ａの方がＶｂ＿Ｂよりも安定性が高い。
【００３８】
なお、本実施形態においては、５Ｖ電源部１７及び電源電圧分圧部１８に供給するバッテリ電圧（Ｖｂ＿Ａ）と、ＬＥＤ出力Ｉ／Ｆ２１に供給するバッテリ電圧（Ｖｂ＿Ｂ）とを、ダイオードＤ１，Ｄ２を介して２つの回路に分けることで、ＬＥＤ４の点滅（ＬＥＤ４のＯＮ・ＯＦＦ）により生じるバッテリ電圧の変化によって電源電圧分圧部１８が受ける影響を少なくしている。
【００３９】
５Ｖ電源部１７は、トランジスタＱ１、抵抗Ｒ１、コンデンサＣ４、ツェナーダイオードＺＤ１、コイルＥＭＩ、コンデンサＣ３、および電解コンデンサＣ２を図示の如く接続して構成されており、基本的には、トランジスタＱ１、ツェナーダイオードＺＤ１、および抵抗Ｒ１とから構成された回路によって、電源入力部１６から供給されるバッテリ電圧Ｖｂ＿Ａから５Ｖの定電圧Ｖｄｄを生成し、それを電解コンデンサＣ２に充電しつつ出力する。なお、コンデンサＣ４と、コイルＥＭＩおよびコンデンサＣ３とは、定電圧Ｖｄｄからノイズ成分を除去のためのものである。この定電圧Ｖｄｄは、ＣＰＵ１３、外部リセット回路１５、ＡＣＧ信号入力Ｉ／Ｆ１９、ＵＰスイッチ入力Ｉ／Ｆ２２、ＤＯＷＮスイッチ入力Ｉ／Ｆ２３の電源電圧として使用される。
【００４０】
電源電圧分圧部１８は、抵抗Ｒ２，Ｒ３，Ｒ４、ダイオードＤ４、およびコンデンサＣ６を図示の如く接続して構成されており、電源入力部１６に入力されたバッテリ電圧Ｖｂ＿Ａを、直列接続された抵抗Ｒ２，Ｒ３によって分圧してなる分圧電圧Ｖｓを、抵抗Ｒ４および信号線群２６を介してＣＰＵ１３の入力端子Ｐ６０に出力する。分圧電圧Ｖｓは、バッテリ電圧Ｖｂ＿Ａのレベルを示す電圧信号である。なお、コンデンサＣ６は分圧電圧Ｖｓからノイズ成分を除去するためのコンデンサであり、ダイオードＤ４は分圧電圧ＶｓがＣＰＵ１３の電源電圧である定電圧Ｖｄｄを超えるのを防止するためのダイオードである。
【００４１】
ＡＣＧ信号入力Ｉ／Ｆ１９は、ダイオードＤ３、抵抗Ｒ２３、ツェナーダイオードＺＤ２、抵抗Ｒ２５，Ｒ２４、コンデンサＣ１１，Ｃ１２、トランジスタ（スイッチングトランジスタ）Ｑ５、および抵抗Ｒ２６，Ｒ２７を図示の如く接続して構成されている。このＡＣＧ信号入力Ｉ／Ｆ１９は、発電機９から入力されるピックアップ信号をダイオードＤ３で整流し、さらに、その整流した信号のピーク値をツェナーダイオードＺＤ２で５Ｖに制限した後、抵抗Ｒ２５，Ｒ２４およびコンデンサＣ１１，Ｃ１２から構成されたフィルタを介して矩形波状に整形してトランジスタＱ５のベースに入力するようにしている。また、トランジスタＱ５は、そのエミッタが接地されると共に、コレクタに５Ｖ電源部１７から抵抗Ｒ２６を介して定電圧Ｖｄｄが付与されている。このため、トランジスタＱ５は、ピックアップ信号に同期してＯＮ・ＯＦＦして、トランジスタＱ５のコレクタにピックアップ信号に同期したパルス信号が生成される。このパルス信号は、ピックアップ信号が正電圧になっている時に０Ｖとなり、ピックアップ信号が正電圧から負電圧に立ち下がった時に、０ＶからＶｄｄ（５Ｖ）に立ち上がる矩形波信号である。そして、このパルス信号が抵抗Ｒ２７および信号線群２６を介してＣＰＵ１３の入力端子Ｐ２３に出力される。
【００４２】
ヒータ出力Ｉ／Ｆ２０は、ＣＰＵ１３とヒータ２，２の直列回路との間で、トランジスタ（ＦＥＴ）Ｑ２、および抵抗Ｒ１７，Ｒ１８を図示の如く接続して構成されており、ＣＰＵ１３の端子Ｐ２１からトランジスタＱ２のゲートに信号線群２６および抵抗Ｒ１７を介して付与される指令信号（高電位または低電位の信号）によってトランジスタＱ２がＯＮ・ＯＦＦするようになっている。この場合、ＣＰＵ１３の端子Ｐ２１からの指令信号が高電位（５Ｖ）となる期間は、トランジスタＱ２がＯＮ状態になり、このとき、トランジスタＱ２のドレインに接続されているヒータ２，２の直列回路にバッテリ１０から通電される（バッテリ１０から電力が供給される）ようになっている。また、ＣＰＵ１３の端子Ｐ２１からの指令信号が低電位（約０Ｖ）となる期間は、トランジスタＱ２がＯＦＦ状態になり、このとき、ヒータ２，２の直列回路への通電が遮断されるようになっている。
【００４３】
ＬＥＤ出力Ｉ／Ｆ２１は、ＣＰＵ１３とＬＥＤ４との間で、トランジスタ（スイッチングトランジスタ）Ｑ３，Ｑ４と抵抗Ｒ１５とを図示の如く接続して構成されており、ＣＰＵ１３の端子Ｐ１０から信号線群２６を介してトランジスタＱ４のベースに付与される指令信号（高電位または低電位の信号）によってトランジスタＱ３，Ｑ４がＯＮ・ＯＦＦするようになっている。この場合、トランジスタＱ３のエミッタには、電源入力部１６からバッテリ電圧Ｖｂ＿Ｂが付与されると共に、トタンジスタＱ３のコレクタに抵抗Ｒ１５を介してＬＥＤ４が接続されている。そして、ＣＰＵ１３の端子Ｐ１０からの指令信号が高電位（５Ｖ）となる期間は、トタジスタＱ３，Ｑ４が共にＯＮ状態になり、このとき、電源入力部１６からバッテリ電圧Ｖｂ＿ＢがトランジスタＱ３および抵抗Ｒ１５を介してＬＥＤ４に印加され、これによりＬＥＤ４に通電されて、ＬＥＤ４が点灯するようになっている。また、ＣＰＵ１３の端子Ｐ１０からの指令信号が低電位（０Ｖ）となる期間は、トランジスタＱ３，Ｑ４が共にＯＦＦ状態になり、ＬＥＤ４の通電が遮断されて、ＬＥＤ４が消灯するようになっている。
【００４４】
ＵＰスイッチ入力Ｉ／Ｆ２２は、ＵＰスイッチ５とＣＰＵ１３との間で、ダイオードＤ６、抵抗Ｒ５，Ｒ６、コンデンサＣ７、および抵抗Ｒ７を図示の如く接続して構成されており、ＵＰスイッチ５が押圧操作されていない定常状態では、５Ｖ電源部１７から抵抗Ｒ５，Ｒ６を介して定電圧Ｖｄｄに充電されるコンデンサＣ７の充電電圧を抵抗Ｒ７および信号線群２６を介してＣＰＵ１３に出力するようにしている。また、ＵＰスイッチ５が押圧操作された時には、コンデンサＣ７が抵抗Ｒ６、ダイオードＤ６およびＵＰスイッチ５を介して接地され、このとき、ＵＰスイッチ５の押圧操作が所定時間（例えば０．５ミリ秒）継続すると、コンデンサＣ７の充電電圧が定電圧Ｖｄｄから低電位（約０Ｖ）に低下する。そして、この低電位の電圧がＵＰスイッチ５が押圧操作されたことを示す信号として、コンデンサＣ７からＣＰＵ１３に抵抗Ｒ７および信号線群２６を介して出力されるようになっている。
【００４５】
ＤＯＷＮスイッチ入力Ｉ／Ｆ２３は、ＤＯＷＮスイッチ６とＣＰＵ１３との間で、ダイオードＤ７、抵抗Ｒ８，Ｒ９、コンデンサＣ８、および抵抗Ｒ１０を、ＵＰスイッチ入力Ｉ／Ｆ２２と同様の構成で接続して構成されている。従って、ＤＯＷＮスイッチ入力Ｉ／Ｆ２３のＣＰＵ１３への出力（コンデンサＣ８の充電電圧）は、ＤＯＷＮスイッチ６が押圧操作されていない定常状態では、定電圧Ｖｄｄとなり、ＤＯＷＮスイッチ６の押圧操作が所定時間（例えば０．５ミリ秒）継続すると、定電圧Ｖｄｄから低電位（約０Ｖ）に低下する。なお、ＵＰスイッチ入力Ｉ／Ｆ２２及びＤＯＷＮスイッチ入力Ｉ／Ｆ２３は、本発明の操作信号出力手段に相当する。
【００４６】
外部リセット回路１５は、複数の抵抗（Ｒ１９など）と複数のコンデンサ（Ｃ９など）とが接続されたリセット用ＩＣ２７を備え、このリセット用ＩＣ２７によってＣＰＵ１３の動作を適宜、初期化するものである。この場合、外部リセット回路１５は、ＣＰＵ１３の端子Ｐ１１からの出力（クリア信号）が所定時間経過しても出力されなかった場合や、動作中のＣＰＵ１３の電圧が異常である場合に、ＣＰＵ１３の端子！ＲＳＴへリセット信号を出力してＣＰＵ１３の動作を初期化させる。
【００４７】
クロック発信部１４は、ＣＰＵ１３に接続された水晶振動子ＸＴＡＬを備え、この水晶振動子により、一定周期のクロック信号を発振し、それをＣＰＵ１３に入力する。
【００４８】
なお、図４中、参照符号２８を付した回路は、メモリ処理回路であり、このメモリ処理回路２８は、ＣＰＵ１３がデータを読み書きするためのフラッシュメモリ（図示省略）に係るＩ／Ｆである。
【００４９】
なお、本実施形態では、前記図２に示したように、ＬＥＤ４、ＵＰスイッチ５及びＤＯＷＮスイッチ６は、アセンブリ２４として、共通の接地線（アース線）２５を介して接地されている。この場合、ＬＥＤ４は、そのカソード側を接地線２５に接続して接地し、且つ、アノード側をコントローラ８のＬＥＤ出力Ｉ／Ｆ２１に接続して、ＬＥＤ出力Ｉ／Ｆ２１からＬＥＤ４を点灯させるための電流をＬＥＤ４に流すようにしている。このため、ＬＥＤ４、ＵＰスイッチ５及びＤＯＷＮスイッチ６のアセンブリ２４に、ＬＥＤ４を駆動するための専用的な２本の接続線を接続する必要がなく（ＬＥＤ４に専用的な接続線は１本で済む）、アセンブリ２４に接続すべき接続線の本数を少なくできると共にアセンブリ２４を小型化できる。
【００５０】
ＣＰＵ１３は、５Ｖ電源部１７から入力される定電圧Ｖｄｄによって駆動され、外部リセット回路１５によって初期化される。ＣＰＵ１３は、図示しないＲＯＭに書き込まれたプログラム等により、ＡＣＧ信号入力Ｉ／Ｆ１９から入力されるパルス信号の周期（平均周期。以下、ＡＣＧ周期という）を、エンジン又は発電機９の回転数を示すものとして検出する機能を持つ（本発明の回転数検出手段）。また、ＣＰＵ１３は、ＡＣＧ周期に応じてヒータ２への上限電力量を設定する機能を持つ（本発明の上限電力量決定手段）。また、ＣＰＵ１３は、ＵＰスイッチ入力Ｉ／Ｆ２２及びＤＯＷＮスイッチ入力Ｉ／Ｆ２３からの入力に応じてヒータ２への目標電力量を決定する機能を持つ（本発明の目標電力量設定手段）。さらに、ＣＰＵ１３は、ＵＰスイッチ入力Ｉ／Ｆ２２及びＤＯＷＮスイッチ入力Ｉ／Ｆ２３からの入力に応じて、スイッチ５，６の故障を判定する機能を持つ（本発明の操作子異常検出手段）。なお、本実施形態において、スイッチ５，６の故障とは、スイッチ５，６の機能やその操作に異常が生じている状態であることを指すものとする。
【００５１】
また、ＣＰＵ１３は、電源電圧分圧部１５から入力される分圧電圧Ｖｓを用いて、バッテリ電圧を検出し、その検出値を所定の電圧と比較して、バッテリ電圧の低下を判定する機能を持つ（本発明のバッテリ電圧検出手段）。なお、コントローラ８とバッテリ１０とを接続する配線において生ずる電圧降下分や電源電圧分圧部１５の出力の誤差分を、バッテリ電圧の検出値に加算した補正バッテリ電圧を平均して平均補正バッテリ電圧を求め、この平均補正バッテリ電圧に基づいてバッテリ電圧の低下を判定するようにしてもよい。
【００５２】
また、ＣＰＵ１３は、ヒータ２に供給する電力量を、ヒータ２への上限電力量と目標電力量とのうちの小さいほうの電力量に決定し、決定された電力量に従ってヒータ出力Ｉ／Ｆ１７へ指令信号を出力し、バッテリ１０からヒータ２への通電のＯＮ時間とＯＦＦ時間の比を制御し、ヒータ２への電力量を調節する（ヒータ２への電力量をＰＷＭ制御により調節する）。また、ＣＰＵ１３は、バッテリ電圧の低下時には、ヒータ出力Ｉ／Ｆ１７へＯＦＦ信号（ヒータ出力Ｉ／Ｆ２０のトランジスタＱ２をＯＦＦにする指令信号）を出力し、ヒータ２をＯＦＦする（ヒータ２への電力量を０にする）。これらのヒータ２への電力量を調節する機能は、本発明のヒータ制御手段に相当する。
【００５３】
また、ＣＰＵ１３は、スイッチ５，６の故障、バッテリ電圧の低下、ヒータ２への電力量に応じて、ＬＥＤ出力Ｉ／Ｆ２１へ指令信号を出力し、ＬＥＤ４の点灯・消灯を制御する機能を持つ（本発明の表示制御手段）。
【００５４】
次に、本実施形態のシステムの作動を説明する。まず、全体の作動概要を説明すると、グリップヒータ制御装置７のメイン制御処理（ＣＰＵ１３のメイン制御処理）では、バッテリ電圧検出処理、スイッチ入力処理、ヒータ出力処理、インジケータ出力処理が順番に繰り返し行われる。これらの処理を実行するタイミングは、タイマ割込処理によって決定される。
【００５５】
バッテリ電圧検出処理では、ＣＰＵ１３は、電源電圧分圧部１８から入力される分圧電圧Ｖｓを用いて、バッテリ電圧を検出し、検出した電圧値が所定の電圧（例えばエンジンを始動する（スタータモータを駆動する）のに必要とする最低限の電圧よりも若干高い電圧）を超えているか否か等の判定を行い、バッテリ電圧が低下している状態（バッテリ電圧低下状態）を検出する。
【００５６】
スイッチ入力処理では、ＣＰＵ１３は、ＵＰスイッチ入力Ｉ／Ｆ２２及びＤＯＷＮスイッチ入力Ｉ／Ｆ２３から入力されるＯＮ入力（スイッチ５，６が押圧操作されたことを示す低電位の信号）とＯＦＦ入力（スイッチ５，６が押圧操作されていないことを示す高電位の信号）とを各スイッチ５，６毎に監視する。そして、スイッチ５，６から所定期間以上ＯＮ入力が入力されているか否か、ＵＰスイッチ５及びＤＯＷＮスイッチ６から同時にＯＮ入力が入力されているか否か等の判定を行い、スイッチ５，６が故障している状態（スイッチ故障状態）と、ヒータ２の温度を調節するためのスイッチ５，６の操作とを検出する。
【００５７】
ヒータ出力処理では、ＣＰＵ１３は、バッテリ電圧検出処理でバッテリ電圧低下状態が検出された場合、ヒータ出力Ｉ／Ｆ２０に指令信号を出力し、ヒータ２をＯＦＦする。また、スイッチ入力処理で検出されたスイッチ５，６の操作に基づいてヒータ２への目標電力量のレベルを設定し、設定された目標電力量のレベルをヒータ２への上限電力量のレベルと比較して、ヒータ出力レベル（ヒータ２に供給する実際の電力量）を決定する。上限電力量のレベルは、後述するＡＣＧ入力割込処理で、ＡＣＧ周期に基づいて設定される。さらに、決定したヒータ出力レベルに応じて、ヒータＯＮ＿ＤＵＴＹを設定する。ヒータＯＮ＿ＤＵＴＹは、ヒータ２への電力量のＰＷＭ制御における、バッテリ１０からヒータ２への通電のＯＮ時間である。ヒータ２のＰＷＭ制御の実際の処理は、設定されたヒータＯＮ＿ＤＵＴＹを用いて、タイマ割込処理で行われる。
【００５８】
インジケータ出力処理では、ＣＰＵ１３は、バッテリ電圧検出処理でバッテリ電圧低下状態が検出された場合、電圧低下検出点灯パターン制御を行う（本発明の電圧低下時表示制御処理）ことを設定する。電圧低下検出点灯パターン制御では、ＬＥＤ４を減光点灯するように制御する。実際の電圧低下検出点灯パターン制御は、タイマ割込処理で行われる。また、スイッチ入力処理でスイッチ故障状態が検出された場合、ＬＥＤ出力Ｉ／Ｆ２１へ指令信号を出力し、スイッチ故障検出点灯パターン制御を行う（本発明の操作子異常時表示制御処理）。スイッチ故障検出点灯パターン制御では、ＬＥＤ４を所定の周期で点灯・消灯する（点滅する）ように制御する。このとき、ＬＥＤ４の消灯時間が点灯時間より比較的長くなるように点灯時間と消灯時間とを設定する。また、ヒータ出力処理で設定されたヒータ出力レベルに応じて、ＬＥＤ出力Ｉ／Ｆ２１へ指令信号を出力し、ＬＥＤ４をヒータ出力レベルに応じた点滅周期で点滅させる。
【００５９】
タイマ割込処理は、例えば、１００マイクロ秒毎に発生するもので、タイマ割込処理の実行時には、メイン制御処理が一時的に中断される。タイマ割込処理では、クロック発信部１４からの入力に基づいて時間を計測する時間計測カウンタのカウント値を設定する。タイマ割込処理では、メイン制御処理で繰り返し実行される処理の実行タイミングの決定と、ヒータ２のＰＷＭ制御と、バッテリ電圧低下状態が検出された時にＬＥＤ４を減光点灯する制御と、ＡＣＧ周期の計測のためのカウント値の設定とが行われる。
【００６０】
ＡＣＧ入力割込処理は、ＡＣＧ信号入力Ｉ／Ｆ１９から入力されるパルス信号の立ち下がりのタイミングで発生する（該パルス信号の立ち下がり毎に発生する）。つまり、ＡＣＧ入力割込処理は、ピックアップ信号に同期して発生する。なお、ＡＣＧ信号入力Ｉ／Ｆ１９が接続されているＣＰＵ１３のポートは、タイマ割込処理よりも優先順位が高い割込ポートであり、ＡＣＧ割込処理の実行時には、メイン制御処理及びタイマ割込処理のいずれもが一時的に中断される。
【００６１】
ＡＣＧ入力割込処理では、タイマ割込処理で設定されたカウント値を割込処理が発生する毎に読み込んでＡＣＧ周期を算出し、算出したＡＣＧ周期と、あらかじめ定めた所定の閾値とに基づいて、ＡＣＧ制限レベルと、ヒータ２への上限電力量のレベルを決定する。ＡＣＧ制限レベルは、発電機９（又はエンジン）の回転数の大きさを段階的に示すものであり、本実施形態においては、レベル０〜レベル２の３段階に設定される。ＡＣＧ制限レベルは、回転数が低いほど、小さくなる（ＡＣＧ制限レベルが０のときは、上限電力量のレベルはレベル５に設定され、上限電力量によるヒータ２への電力量の制限は解除されている。ＡＣＧ制限レベルが１のときは、上限電力量のレベルはレベル２に設定され、ＡＣＧ制限レベルが２のときは、上限電力量のレベルはレベル１に設定される）。
【００６２】
次に、本実施形態のシステムの詳細な作動を、図５〜図１２に示したフローチャートに従って説明する。図５はメイン制御処理を示すフローチャート、図６は初期化処理を示すフローチャート、図７はバッテリ電圧検出処理を示すフローチャート、図８はスイッチ入力処理を示すフローチャート、図９はヒータ出力処理を示すフローチャート、図１０はインジケータ出力処理を示すフローチャート、図１１はタイマ割込処理を示すフローチャート、図１２はＡＣＧ入力割込処理を示すフローチャートである。
【００６３】
図５を参照して、グリップヒータ制御装置７の作動が開始されると（オートバイのメインスイッチがＯＮにされて、コントローラ８にバッテリ１０からバッテリ電圧が供給されると）、最初に、初期化処理が行われる（ステップＳ５０１）。初期化処理は、図６に示す如く実行される。まず、ステップＳ６０１で、時間計測カウンタのカウント値が初期化される（カウント値が０にされる）。時間計測カウンタには、メイン周期カウンタ、ヒータＰＷＭカウンタ、ＬＥＤ周期カウンタ、ＡＣＧ周期カウンタの４つがある。前記４つの時間計測カウンタは、タイマ割込処理で用いられる（タイマ割込処理については後述する）。
【００６４】
次に、バッテリ電圧のサンプリング値を時系列順に記憶保持する格納バッファ（バッテリ電圧サンプリング値格納バッファ）が初期化される（ステップＳ６０２）。次に、ＡＣＧ周期のサンプリング値を時系列順に記憶保持する格納バッファ（ＡＣＧ周期サンプリング値格納バッファ）が初期化される（ステップＳ６０３）。バッテリ電圧サンプリング値格納バッファ及びＡＣＧ周期サンプリング値格納バッファには、それぞれ８個のデータが格納される。
【００６５】
次に、図５に戻り、ステップＳ５０２で、メイン制御周期経過フラグＦｍａｉｎが１であるか否かが確認される。メイン制御周期経過フラグＦｍａｉｎは、その初期値は０に設定されており、タイマ割込処理によって所定の制御周期（例えば１０ミリ秒）が経過する毎に１に設定されるフラグである。メイン制御周期経過フラグＦｍａｉｎが１になるまで、ステップＳ５０２が繰り返される。メイン制御周期経過フラグＦｍａｉｎが１になった場合、ステップＳ５０３に進み、外部リセット回路１５に対してクリア信号が出力される（外部リセット回路のクリア）。次に、ステップＳ５０４に進み、バッテリ電圧検出処理が行われる。
【００６６】
バッテリ電圧検出処理は、図７に示す如く実行される。まず、電源電圧分圧部１８から分圧電圧Ｖｓが入力され、ＣＰＵ１３内に一体的に組み込まれているＡ／Ｄ変換回路に対しＡ／Ｄ変換を行うための指令が送られる（ステップＳ７０１）。これにより分圧電圧ＶｓがＡ／Ｄ変換される。次に、変換された今回の（現在の制御周期の）Ｖｓの値が現在のバッテリ電圧値を示すものとして読み込まれる（ステップＳ７０２）。なお、Ｖｓに所定の比例係数を乗算して実際のバッテリ電圧値を算出してもよい。次に、バッテリ電圧サンプリング値格納バッファ内の最も古いデータが破棄され（ステップＳ７０３）、今回のバッテリ電圧値が該バッファに格納される（ステップＳ７０４）。次に、格納されたデータから移動平均値Ｖａｖｅを算出する（ステップＳ７０５）。
【００６７】
次に、ステップＳ７０６に進み、移動平均値Ｖａｖｅを、バッテリ電圧が正常である（バッテリ電圧低下状態が検出されていない）と判定する閾値であるバッテリ電圧正常判定値Ｖｔｈ１と比較し、ＶａｖｅがＶｔｈ１以上の場合は、バッテリ電圧が正常であると判定し、電圧低下検出フラグＦｂａｔを０に設定し（ステップＳ７０７）、図５のステップＳ５０４に戻る。電圧低下検出フラグＦｂａｔは、バッテリ電圧が低下しているか否かを示すためのフラグであり、バッテリ電圧低下状態が検出された場合は１に設定され、バッテリ電圧が正常である場合は０に設定される。ステップＳ７０６でＶａｖｅがＶｔｈ１未満の場合は、ステップＳ７０８に進み、Ｖａｖｅを、バッテリ電圧が低下していると判定する閾値であるバッテリ電圧低下判定値Ｖｔｈ２と比較する。バッテリ電圧低下判定値は、Ｖｔｈ１より低い値であり、エンジンを始動する（スタータモータを駆動する）のに必要とする最低限の電圧よりも若干高い電圧に設定されている。ＶａｖｅがＶｔｈ２以下の場合には、バッテリ電圧が低下していると判定し、電圧低下検出フラグを１に設定し（ステップＳ７０９）、図５のステップＳ５０４に戻る。ＶａｖｅがＶｔｈ２より大きい場合には、電圧低下検出フラグＦｂａｔは更新せず、図５のステップＳ５０４に戻る。Ｖｔｈ１は、例えば、１２．５Ｖとし、Ｖｔｈ２は、１２．０Ｖとする。このようにＶｔｈ１とＶｔｈ２とを異なる値に設定して、ステップＳ７０６〜Ｓ７０９の処理を行うことで、バッテリ電圧の変化に対するバッテリ電圧の判定結果（Ｆｂａｔの値）の変化にヒステリシス特性を持たせている。したがって、バッテリ電圧の変動による影響で、閾値付近でバッテリ電圧の正常状態と低下状態との判定が頻繁に切り替わる事態を防止することができる。なお、Ｖｔｈ１、Ｖｔｈ２は、回路の電圧降下や他の機器の駆動の負荷によるノイズなどの影響を考慮して決定される。
【００６８】
図５に戻り、次に、スイッチ入力処理を行う（ステップＳ５０５）。スイッチ入力処理は、図８に示す如く実行される。まず、ＵＰスイッチ入力Ｉ／Ｆ２２から入力される信号（ＵＰスイッチ入力）を読み込み（ステップＳ８０１）、読み込んだＵＰスイッチ入力をＵＰスイッチ用サンプリングバッファに格納する（ステップＳ８０２）。ＵＰスイッチ用サンプリングバッファは、ＵＰスイッチ入力を時系列順に記憶保持するバッファである。次に、格納された最新４回のＵＰスイッチ入力がＯＮ入力であるか否かを判断し（ステップＳ８０３）、ＹＥＳの場合、ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗを１にして（ステップＳ８０４）、ステップＳ８０７に進む。ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗは、ＵＰスイッチ５がＯＮ状態（ＵＰスイッチ入力Ｉ／Ｆ２２からＯＮ入力が継続して入力されている状態）にあるかＯＦＦ状態（ＵＰスイッチ入力Ｉ／Ｆ２２からＯＦＦ入力が継続して入力されている状態）にあるかを示すフラグで、ＯＮ状態にあるときは１に設定され、ＯＦＦ状態にあるときは０に設定される。ステップＳ８０３の判断結果がＮＯの場合、格納された最新４回の入力がＯＦＦ入力であるか否かを判断し（ステップＳ８０５）、ＹＥＳの場合、ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗを０にして（ステップＳ８０６）、ステップＳ８０７に進む。ステップＳ８０５の判断結果がＮＯの場合、ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗは変更せず、ステップＳ８０７に進む。これにより、ＵＰスイッチ入力Ｉ／Ｆ２２から前記制御周期の４回分の期間、連続してＯＮ入力が入力されたときのみ、ＵＰスイッチ５が押されている（ＵＰスイッチ５がＯＮ状態にある）と判断される。また、ＵＰスイッチ入力Ｉ／Ｆ２２から前記制御周期の４回分の期間、連続してＯＦＦ入力が入力されたときのみ、ＵＰスイッチ５が押されていない（ＵＰスイッチ５がＯＦＦ状態にある）と判断される。
【００６９】
ステップＳ８０７で、ＵＰスイッチ５と同様、ＤＯＷＮスイッチ入力Ｉ／Ｆ２３から入力される信号（ＤＯＷＮスイッチ入力）を読み込み、読み込んだＤＯＷＮスイッチ入力をＤＯＷＮスイッチ用サンプリングバッファに格納する（ステップＳ８０８）。ＤＯＷＮスイッチ用サンプリングバッファは、ＤＯＷＮスイッチ入力を時系列順に記憶保持するバッファである。次に、格納された最新４回のＤＯＷＮスイッチ入力がＯＮ入力であるか否かを判断し（ステップＳ８０９）、ＹＥＳの場合、ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗを１にして（ステップＳ８１０）、ステップＳ８１３に進む。ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗは、ＤＯＷＮスイッチ６がＯＮ状態（ＤＯＷＮスイッチ入力Ｉ／Ｆ２３からＯＮ入力が継続して入力されている状態）にあるかＯＦＦ状態（ＤＯＷＮスイッチ入力Ｉ／Ｆ２３からＯＦＦ入力が継続して入力されている状態）にあるかを示すフラグで、ＯＮ状態にあるときは１に設定され、ＯＦＦ状態にあるときは０に設定される。ステップＳ８０９の判定結果がＮＯの場合、格納された最新４回の入力がＯＦＦ入力であるか調べ（ステップＳ８１１）、ＹＥＳの場合、ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗを０にして（ステップＳ８１２）、ステップＳ８１３に進む。ステップＳ８１１の判定結果がＮＯの場合、ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗは変更せず、ステップＳ８１３に進む。これにより、ＤＯＷＮスイッチ入力Ｉ／Ｆ２３から前記制御周期の４回分の期間、連続してＯＮ入力が入力されたときのみ、ＤＯＷＮスイッチ６が押されている（ＤＯＷＮスイッチ６がＯＮ状態にある）と判断される。また、ＤＯＷＮスイッチ入力Ｉ／Ｆ２３から前記制御周期の４回分の期間、連続してＯＦＦ入力が入力されたときのみ、ＤＯＷＮスイッチ６が押されていない（ＤＯＷＮスイッチ６がＯＦＦ状態にある）と判断される。
【００７０】
次に、ＵＰスイッチ５が故障しているか否かを判定する処理を行う。まず、ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗが１であるか確認する（ステップＳ８１３）。ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗが０の場合、ＵＰ側ＯＮ状態継続時間カウンタを初期化し（ステップＳ８１７）、ＵＰスイッチ故障検出フラグＦｕｐ＿ｆａｉｌに０を設定し（ステップＳ８１８）、ステップＳ８１９に進む。ＵＰ側ＯＮ状態継続時間カウンタは、ＵＰスイッチ５のＯＮ状態が継続している時間を計測するためのカウンタである。また、ＵＰスイッチ故障検出フラグＦｕｐ＿ｆａｉｌは、ＵＰスイッチ５が故障していることを示すためのフラグで、ＵＰスイッチ５が故障していると判定された場合には１が設定され、ＵＰスイッチ５が故障していないと判定された場合は０が設定される。ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗが１の場合、ＯＮ状態が継続している時間が所定時間以上であるか判断する（ステップＳ８１４）。所定時間は、例えば１０秒とする。ステップＳ８１４の判断結果がＹＥＳの場合、ＵＰスイッチ５が故障していると判定し、Ｆｕｐ＿ｆａｉｌに１を設定する（ステップＳ８１５）。ステップＳ８１４の判断結果がＮＯの場合、ＵＰ側ＯＮ状態継続時間カウンタのカウント値を１だけ増やす（ステップＳ８１６）。これにより、ＵＰスイッチ５に係る回路がショートしていたり、運転者によって意図せずにＵＰスイッチ５が押さえつけられていたりしたときに、ＵＰスイッチ５の異常を検出することができ、ＵＰスイッチ５が押圧操作されたと誤判断されることを防ぐことができる。
【００７１】
次に、ＵＰスイッチ５が押圧操作されたか否か（ＯＦＦ状態からＯＮ状態への切り替わりであるか否か）を判定する処理を行う。まず、ステップＳ８１９で、ＵＰスイッチ操作検出フラグＦｕｐ＿ｓｗを０にする。ＵＰスイッチ操作検出フラグＦｕｐ＿ｓｗは、ＵＰスイッチ５が操作されたと判定された場合には１が設定され、ＵＰスイッチ５が操作されていないと判定された場合は０が設定される。次に、ステップＳ８２０で、ＵＰスイッチ故障検出フラグＦｕｐ＿ｆａｉｌが０であるか確認する。ＵＰスイッチ５の故障が検出されている場合（Ｆｕｐ＿ｆａｉｌ＝１）は、ステップＳ８２４に進み、ＵＰスイッチ５の故障が検出されていない場合（Ｆｕｐ＿ｆａｉｌ＝０）は、ステップＳ８２１に進み、ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗを確認する。ＤＯＷＮスイッチ６が押されている場合（Ｆｄｏｗｎ＿ｎｅｗ＝１）は、ステップＳ８２４に進む。これにより、ＵＰスイッチ５とＤＯＷＮスイッチ６とが同時に押されている場合には、スイッチ５，６の操作が無効となる。
【００７２】
ステップＳ８２１で、ＤＯＷＮスイッチ６が押されていない場合（Ｆｄｏｗｎ＿ｎｅｗ＝０）は、ステップＳ８２２に進み、今回の制御周期でＵＰスイッチ５が押されていて、かつ、ＵＰスイッチ前回状態フラグＦｕｐ＿ｂｕｆ＝０であることを確認する。ＵＰスイッチ前回状態フラグＦｕｐ＿ｂｕｆは、前回の制御周期のスイッチ入力処理における、ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗの値を記憶保持するフラグである。ステップＳ８２２でＹＥＳの場合は、ＵＰスイッチ５が押圧操作されたと判定し、ＵＰスイッチ操作検出フラグＦｕｐ＿ｓｗに１を設定する（ステップＳ８２３）。このＵＰスイッチ操作検出フラグＦｕｐ＿ｓｗは、ＵＰスイッチ５が正常であると判断されている状態（Ｆｕｐ＿ｆａｉｌ＝０の状態）で、ＵＰスイッチ５が押圧操作されていない状態から押圧操作されたと判断したとき（Ｆｕｐ＿ｎｅｗ＝０の状態からＦｕｐ＿ｎｅｗ＝１の状態に切り替わったとき）のみ１に設定されるフラグである。次に、ステップＳ８２４に進み、ＵＰスイッチ前回状態フラグＦｕｐ＿ｂｕｆに現在のＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗの値を設定する。
【００７３】
次に、ステップＳ８２５〜ステップＳ８３０において、ＵＰスイッチ５と同様に、ＤＯＷＮスイッチ６が故障しているか否かを判定する処理を行う。まず、ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗが１であるか否かを判断する（ステップＳ８２５）。ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗが０の場合、ＤＯＷＮ側ＯＮ状態継続時間カウンタを初期化し（ステップＳ８２９）、ＤＯＷＮスイッチ故障検出フラグＦｄｏｗｎ＿ｆａｉｌに０を設定し（ステップＳ８３０）、ステップＳ８３１に進む。ＤＯＷＮ側ＯＮ状態継続時間カウンタは、ＤＯＷＮスイッチ６のＯＮ状態が継続している時間を計測するためのカウンタである。また、ＤＯＷＮスイッチ故障検出フラグＦｄｏｗｎ＿ｆａｉｌは、ＤＯＷＮスイッチ６が故障していることを示すためのフラグで、ＤＯＷＮスイッチ６が故障していると判定された場合には１が設定され、ＤＯＷＮスイッチ６が故障していないと判定された場合は０が設定される。ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗが１の場合、ＯＮ状態の継続時間が所定時間以上であるか判断する（ステップＳ８２６）。所定時間は、例えば１０秒とする。ステップＳ８２７の判断結果がＹＥＳの場合、ＤＯＷＮスイッチ６が故障していると判定し、Ｆｄｏｗｎ＿ｆａｉｌに１を設定する（ステップＳ８２７）。ステップＳ８２６の判断結果がＮＯの場合、ＤＯＷＮ側ＯＮ状態継続時間カウンタのカウンタ値を１だけ増やす（ステップＳ８２８）。これにより、ＤＯＷＮスイッチ６に係る回路がショートしていたり、運転者によって意図せずにＤＯＷＮスイッチ６が押さえつけられていたりしたときに、ＤＯＷＮスイッチ６の異常を検出することができ、ＤＯＷＮスイッチ６が押圧操作されたと誤判断されることを防ぐことができる。
【００７４】
次に、ＤＯＷＮスイッチ６が押圧操作されたか否かを判断する処理を行う。まず、ステップＳ８３１で、ＤＯＷＮスイッチ操作検出フラグＦｄｏｗｎ＿ｓｗを０にする。ＤＯＷＮスイッチ操作検出フラグＦｄｏｗｎ＿ｓｗは、ＤＯＷＮスイッチ６が操作されたと判定された場合には１が設定され、ＤＯＷＮスイッチ６が操作されていないと判定された場合は０が設定される。次に、ステップＳ８３２で、ＤＯＷＮスイッチ故障検出フラグＦｄｏｗｎ＿ｆａｉｌが０であるか確認する。ＤＯＷＮスイッチ６の故障が検出されている場合（Ｆｄｏｗｎ＿ｆａｉｌ＝１）は、ステップＳ８３６に進み、ＤＯＷＮスイッチ６の故障が検出されていない場合（Ｆｄｏｗｎ＿ｆａｉｌ＝０）は、ステップＳ８３３に進み、ＵＰスイッチＯＮフラグＦｕｐ＿ｎｅｗを確認する。ＵＰスイッチ５が押されている場合（Ｆｕｐ＿ｎｅｗ＝１）は、ステップＳ８３６に進む。これにより、ＵＰスイッチ５とＤＯＷＮスイッチ６とが同時に押されている場合には、スイッチ５，６の操作が無効となる。
【００７５】
ステップＳ８３３で、ＵＰスイッチ５が押されていない場合（Ｆｕｐ＿ｎｅｗ＝０）は、ステップＳ８３４に進み、ＤＯＷＮスイッチ６が押されていて、かつ、ＤＯＷＮスイッチ前回状態フラグＦｄｏｗｎ＿ｂｕｆ＝０であることを確認する。ＤＯＷＮスイッチ前回状態フラグＦｄｏｗｎ＿ｂｕｆは、前回の制御周期のスイッチ入力処理における、ＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗの値を記憶保持するフラグである。ステップＳ８３４でＹＥＳの場合は、ＤＯＷＮスイッチ６が押圧操作されたと判定し、ＤＯＷＮスイッチ操作検出フラグＦｄｏｗｎ＿ｓｗに１を設定する（ステップＳ８３５）。このＤＯＷＮスイッチ操作検出フラグＦｄｏｗｎ＿ｓｗは、ＤＯＷＮスイッチ６が正常であると判断されている状態（Ｆｄｏｗｎ＿ｆａｉｌ＝０の状態）で、ＤＯＷＮスイッチ６が押圧操作されていない状態から押圧操作されたと判断したとき（Ｆｄｏｗｎ＿ｎｅｗ＝０の状態からＦｄｏｗｎ＿ｎｅｗ＝１の状態に切り替わったとき）のみ１に設定されるフラグである。次いで、ステップＳ８３６に進み、ＤＯＷＮスイッチ前回状態フラグＦｄｏｗｎ＿ｂｕｆに現在のＤＯＷＮスイッチＯＮフラグＦｄｏｗｎ＿ｎｅｗの値を設定する。
【００７６】
図５に戻り、次に、ヒータ出力処理を行う（ステップＳ５０６）。ヒータ出力処理は、図９に示す如く実行される。まず、ステップＳ９０１で、バッテリ電圧検出処理において設定された電圧低下検出フラグＦｂａｔを確認する。バッテリ電圧低下状態が検出されている場合（Ｆｂａｔ＝１）、ステップＳ９１６に進み、ヒータ出力Ｉ／Ｆ２０に指令信号を出力し、ヒータ２をＯＦＦして、図５のステップＳ５０６に戻る。これにより、バッテリ電圧が低下している場合は、ヒータ２を強制的にＯＦＦし、バッテリ電圧が過剰に低下することを防ぐことができる。
【００７７】
バッテリ電圧が正常な状態である場合（Ｆｂａｔ＝０）、スイッチ５，６の押圧操作に基づいて、ヒータ２への目標電力量のレベルＬＶｓｗの設定を行う。まず、ＵＰスイッチ５の押圧操作に対してＬＶｓｗを設定する。スイッチ入力処理で設定されたＵＰスイッチ操作検出フラグＦｕｐ＿ｓｗを確認する（ステップＳ９０２）。ＵＰスイッチ５の押圧操作が検出されていない場合（Ｆｕｐ＿ｓｗ＝０）には、ステップＳ９０６に進む。ＵＰスイッチ５の押圧操作が検出されている場合（Ｆｕｐ＿ｓｗ＝１）には、ステップＳ９０３に進み、ＬＶｓｗを１だけ大きくする。次に、ＬＶｓｗが５より大きいか確認し（ステップＳ９０４）、ＬＶｓｗが５以下の場合には、ステップＳ９０６に進み、ＬＶｓｗが５より大きい場合には、ＬＶｓｗを５とし（ステップＳ９０５）、ステップＳ９０６に進む。
【００７８】
次に、ＵＰスイッチ５の押圧操作と同様、ＤＯＷＮスイッチ６の押圧操作に対してＬＶｓｗを設定する。まず、スイッチ入力処理で設定されたＤＯＷＮスイッチ操作検出フラグＦｄｏｗｎ＿ｓｗを確認する（ステップＳ９０６）。ＤＯＷＮスイッチ６の押圧操作が検出されていない場合（Ｆｄｏｗｎ＿ｓｗ＝０）には、ステップＳ９１０に進む。ＤＯＷＮスイッチ６の押圧操作が検出されている場合（Ｆｄｏｗｎ＿ｓｗ＝１）には、ステップＳ９０７に進み、ＬＶｓｗを１だけ小さくする。次に、ＬＶｓｗが０より小さいか確認し（ステップＳ９０８）、ＬＶｓｗが０以上の場合には、ステップＳ９１０に進み、ＬＶｓｗが０より小さい場合には、ＬＶｓｗを０とし（ステップＳ９０９）、ステップＳ９１０に進む。以上のステップＳ９０９までの処理により、スイッチ５，６の押圧操作に応じてＬＶｓｗが０から５の範囲で段階的に設定される。
【００７９】
次に、スイッチ５，６の押圧操作に基づいて設定された目標電力量のレベルＬＶｓｗと、ＡＣＧ周期に基づいて設定された上限電力量のレベルＬＶａｃｇとを比較して、小さい方のレベルをヒータ出力レベルＬＶとして設定する。まず、ステップＳ９１０で、ＡＣＧ入力割込処理で設定されたＡＣＧ制限レベルＡＣＧｌｅｖｅｌを確認する（ＡＣＧ入力割込処理については後述する）。ＡＣＧｌｅｖｅｌが０である場合（発電機９の回転数が十分に高い場合）は、ステップＳ９１１に進み、ヒータ出力レベルＬＶにＬＶｓｗを設定する。
【００８０】
ＡＣＧｌｅｖｅｌが０でない場合（発電機９の回転数が低い場合）には、ステップＳ９１２に進み、ＬＶａｃｇとＬＶｓｗとを比較する。ＬＶａｃｇがＬＶｓｗより小さい場合には、ヒータ出力レベルＬＶにＬＶａｃｇを設定し（ステップＳ９１３）、ＬＶａｃｇがＬＶｓｗ以上の場合には、ヒータ出力レベルＬＶにＬＶｓｗを設定する（ステップＳ９１４）。これにより、ＬＶａｃｇ（上限電力量）がＬＶｓｗ（目標電力量）以上のときには、ヒータ出力レベルＬＶ、すなわちヒータ２に実際に供給する電力量は目標電力量に制御されるので、ヒータ２を運転者の要望に応じた温度にすることができる。また、ＬＶａｃｇ（上限電力量）がＬＶｓｗ（目標電力量）より小さいときには、ヒータ出力レベルＬＶ（ヒータ２への実際の電力量）は上限電力量に制限されるので、バッテリ１０の電圧低下を抑制しつつ、ヒータ２によるグリップ１の加温を行うことができる。
【００８１】
次に、ステップＳ９１５に進み、設定したヒータ出力レベルＬＶに応じて、ヒータ２のＰＷＭ制御における前記ヒータＯＮ＿ＤＵＴＹを設定する。ヒータＯＮ＿ＤＵＴＹは、ＬＶが０であるとき０で、ＬＶが高くなるほど大きな値に設定される。この処理で設定されたヒータＯＮ＿ＤＵＴＹに基づいて、タイマ割込処理で、ヒータ２のＰＷＭ制御が行われる（タイマ割込処理については後述する）。
【００８２】
次に、図５に戻り、インジケータ出力処理に進む（ステップＳ５０７）。インジケータ出力処理は、図１０に示す如く実行される。まず、ステップＳ１００１で、バッテリ電圧検出処理で設定された電圧低下検出フラグＦｂａｔを確認する。バッテリ電圧低下状態である場合（Ｆｂａｔ＝１）は、ステップＳ１０２０に進み、ＬＥＤ減光点灯フラグＦｌｅｄに１を設定し、前記電圧低下検出点灯パターン制御を行い、図５のステップＳ５０７に戻る。ＬＥＤ減光点灯フラグＦｌｅｄは、電圧低下検出点灯パターン制御を行うか否かを設定するためのフラグで、バッテリ電圧低下状態である場合には１が設定され、バッテリ電圧低下状態でない場合は０が設定される。実際の電圧低下検出点灯パターン制御は、タイマ割込処理で行われる（タイマ割込処理については後述する）。
【００８３】
バッテリ電圧が正常である場合（Ｆｂａｔ＝０）には、ステップＳ１００２に進み、ＬＥＤ減光点灯フラグＦｌｅｄに０を設定する。次に、スイッチ故障状態を確認する。まず、スイッチ入力処理で設定されたＵＰスイッチ故障検出フラグＦｕｐ＿ｆａｉｌを確認する（ステップＳ１００３）。ＵＰスイッチ５の故障が検出されている場合（Ｆｕｐ＿ｆａｉｌ＝１）、ステップＳ１０２１に進み、ＵＰスイッチ５の故障が検出されていない場合（Ｆｕｐ＿ｆａｉｌ＝０）、ステップＳ１００４に進んで、ＤＯＷＮスイッチ故障検出フラグＦｄｏｗｎ＿ｆａｉｌを確認する。ＤＯＷＮスイッチ６の故障が検出されている場合（Ｆｄｏｗｎ＿ｆａｉｌ＝１）、ステップＳ１０２１に進む。
【００８４】
ステップＳ１０２１では、前記スイッチ故障検出点灯パターン制御を行い、図５のステップＳ５０７に戻る。このパターン制御では、例えば、ＬＥＤ４が０．１秒間の点灯を５秒周期で行うように制御する。これにより、他の通電状態と異なる長い周期の表示になり、スイッチの故障を運転者に明確に認識させることができる。
【００８５】
ステップＳ１００４で、スイッチ６の故障が検出されていない場合、ステップＳ１００５に進み、スイッチ入力処理で設定されたＵＰスイッチ操作検出フラグＦｕｐ＿ｓｗとＤＯＷＮスイッチ操作検出フラグＦｄｏｗｎ＿ｓｗとを確認する。両スイッチ５，６の押圧操作が検出されていない場合（Ｆｕｐ＿ｓｗ＝０かつＦｄｏｗｎ＿ｓｗ＝０）、ステップＳ１００９に進む。スイッチ５，６の押圧操作が検出されている場合（Ｆｕｐ＿ｓｗ＝１またはＦｄｏｗｎ＿ｓｗ＝１）、ステップＳ１００６に進み、ＬＶｓｗが０より大きいか否かを判定する。ＬＶｓｗが０より大きい場合、レベル表示時間カウンタを初期化し（ステップＳ１００７）、レベル変更表示フラグＦｌｅｖｅｌを１に設定し（ステップＳ１００８）、ステップＳ１００９に進む。レベル表示時間カウンタは、ヒータ出力レベルＬＶに応じたレベル表示点灯パターン制御を継続する時間を計測するためのカウンタである。また、レベル変更表示フラグＦｌｅｖｅｌは、レベル表示点灯パターン制御を行うか否かを設定するためのフラグであり、その初期値は０に設定されており、ヒータ出力レベルＬＶが変更されたときに１が設定され、１が設定されてから所定の表示時間が経過すると０が設定される。所定の表示時間は、例えば１０秒間とする。ステップＳ１００６で、ＬＶｓｗが０以下の場合、そのままステップＳ１００９に進む。
【００８６】
ステップＳ１００９では、レベル変更表示フラグＦｌｅｖｅｌが１であるか否かを確認し、１である場合は、レベル表示時間カウンタのカウント値を１だけ増やす（ステップＳ１０１０）。次に、レベル表示時間カウンタのカウント値を所定の表示時間と比較する（ステップＳ１０１１）。ステップＳ１０１１で、レベル表示時間カウンタが所定の表示時間より小さい場合には、ステップＳ１０１２に進み、レベル表示点灯パターン制御を行い（本発明の操作時表示制御処理）、図５のステップＳ５０７に戻る。ステップＳ１０１１で、レベル表示時間カウンタが所定の表示時間以上の場合は、レベル変更表示フラグＦｌｅｖｅｌに０を設定し（ステップＳ１０１３）、図５のステップＳ５０７に戻る。
【００８７】
レベル表示点灯パターン制御では、ＬＥＤ４を、ヒータ出力レベルＬＶに応じて設定される所定周期で点滅させる。この点滅は、スイッチ５，６が押圧操作された後、押圧操作が検知された直後から所定の表示時間（例えば１０秒間）継続される。これにより、ＬＥＤ４の点滅で、多段階のヒータ２の通電状態を運転者に容易に認識させることができる。このとき、ＬＥＤ４を点滅させる所定周期は、ヒータ出力レベルＬＶが高くなるほど周期が短くなるように設定される。例えば、ＬＶがレベル１の場合、２秒の周期でＬＥＤ４を点滅させ、レベル５の場合、０．２５秒の周期でＬＥＤ４を点滅させる。これにより、ヒータ２への電力量の変化の度合に応じて、ヒータ２への電力量が大きくなるほど、ＬＥＤ４の点滅の周波数が高く（周期が短く）なるので、運転者にとってヒータ２への電力量の大きさが感覚的に把握しやすくなり、運転者にヒータ２の通電状態をより容易に認識させることができる。
【００８８】
ステップＳ１００９で、レベル変更表示フラグＦｌｅｖｅｌが０である場合、ステップＳ１０１４に進み、ＡＣＧｌｅｖｅｌが０であるか否かを確認する。ＡＣＧｌｅｖｅｌが０である場合（発電機９の回転数が十分に高い場合）は、ステップＳ１０１５に進む。ステップＳ１０１４で、ＡＣＧｌｅｖｅｌが０でない場合（発電機９の回転数が低い場合）、ステップＳ１０１８に進み、ＬＶｓｗとＬＶとを比較する。ＬＶｓｗがＬＶ以下の場合、ヒータ２への電力量は、目標電力量に制御されている。このときは、ステップＳ１０１５に進む。
【００８９】
ステップＳ１０１５では、ヒータ出力レベルＬＶが０であるか否かを確認する。ＬＶが０である場合は、ステップＳ１０１６に進み、ＬＥＤ４を消灯し（本発明の通電停止時表示制御処理）、図５のステップＳ５０７に戻る。これにより、ヒータ出力レベルＬＶがレベル０（ヒータ２がＯＦＦ状態）の場合には、ＬＥＤ４が消灯するので、運転者の操作によってヒータ２が停止されていることを、運転者に明確に認識させることができる。
【００９０】
ステップＳ１０１５でヒータ出力レベルＬＶが０でない場合は、ステップＳ１０１７に進み、ＬＥＤ４を点灯し（本発明の定常時表示制御処理）、図５のステップＳ５０７に戻る。これにより、所定の表示時間（例えば１０秒間）経過後に、バッテリ電圧低下状態、スイッチ故障状態、ヒータ２のＯＦＦ状態のいずれでもなく、ヒータ２が運転者の設定した目標電力量で制御されている場合は、ＬＥＤ４が継続的に点灯する。よって、前記レベル表示点灯パターン制御が行われていないときに、ヒータ２が運転者の設定した目標電力量で定常的に通電されていることを、運転者に明確に認識させることができる。なお、所定の表示時間経過後に、バッテリ電圧低下状態である場合には、前記電圧低下検出点灯パターン制御によって、ＬＥＤ４が減光点灯され、スイッチ故障状態である場合には、前記スイッチ故障検出点灯パターン制御によって、比較的ゆっくりした周期で間欠的にＬＥＤ４が点灯される。
【００９１】
上述の点灯パターン制御について、図１４を用いてより詳細に説明する。図１４（ａ），（ｂ）は、それぞれ、図２のグリップヒータ制御装置におけるヒータ出力レベルＬＶとスイッチ５，６の操作とＬＥＤ４のＯＮ・ＯＦＦ（点灯・消灯）との関係を例示するグラフである。図４（ａ），（ｂ）のそれぞれにおいて、ヒータ出力レベルＬＶ、ＵＰスイッチ５のＯＮ状態・ＯＦＦ状態、ＤＯＷＮスイッチ６のＯＮ状態・ＯＦＦ状態、ＬＥＤ４のＯＮ・ＯＦＦの経時変化の様子がそれぞれ上段側から示されている。なお、図１４（ａ），（ｂ）に示す作動例においては、バッテリ電圧低下状態及びスイッチ故障状態のいずれでもないものとする。
【００９２】
まず、図１４（ａ）を参照して、この例では、時刻ｔａ０以前では、ヒータ出力レベルＬＶはレベル４に設定されており、ステップＳ１０１７の処理により、ＬＥＤ４は継続的に点灯されている。時刻ｔａ０において、ＵＰスイッチ５の押圧操作が検出され、ＬＶはレベル５に設定される。このとき、ステップＳ１０１２の処理によって、時刻ｔａ０から１０秒間、レベル５に応じた周期である０．２５秒の周期でＬＥＤ４が点滅され、１０秒経過後は、ステップＳ１０１７の処理によって、ＬＥＤ４は継続的に点灯される。さらに、時刻ｔａ１（＞（ｔａ０＋１０）秒）において、ＵＰスイッチ５の押圧操作が検出される。ＬＶはレベル０〜５の範囲で設定可能なので、この場合、ＬＶはレベル５に維持される。このとき、ＵＰスイッチ５の押圧操作が検出されたことにより、ステップＳ１０１２の処理により、時刻ｔａ１から１０秒間、レベル５に応じた周期である０．２５秒の周期でＬＥＤ４が点滅され、１０秒経過後は、ステップＳ１０１７の処理により、ＬＥＤ４は継続的に点灯される。さらに、時刻ｔａ２（＞（ｔａ１＋１０）秒）において、ＤＯＷＮスイッチ６の押圧操作が検出され、ＬＶはレベル４に設定される。このとき、ステップＳ１０１２の処理により、時刻ｔａ２から１０秒間、レベル４に応じた周期である０．５秒の周期でＬＥＤ４が点滅され、１０秒経過後は、ステップＳ１０１７の処理により、ＬＥＤ４は継続的に点灯される。
【００９３】
次に、図１４（ｂ）を参照して、この例では、時刻ｔｂ０以前では、ヒータ出力レベルＬＶはレベル２に設定されており、ステップＳ１０１７の処理により、ＬＥＤ４は継続的に点灯されている。時刻ｔｂ０において、ＵＰスイッチ５の押圧操作が検出され、ＬＶはレベル３に設定される。このとき、時刻ｔｂ０から時刻ｔｂ１までの間、ステップＳ１０１２の処理により、レベル３に応じた周期である０．２秒の周期でＬＥＤ４が点滅される。さらに、時刻ｔｂ１（＜（ｔｂ０＋１０）秒）において、ＵＰスイッチ５の押圧操作が検出され、ＬＶはレベル４に設定される。このとき、ステップＳ１００７で、レベル表示時間カウンタが初期化され、ステップＳ１０１２の処理により、時刻ｔｂ１から１０秒間、レベル４に応じた周期である０．５秒の周期でＬＥＤ４が点滅され、１０秒経過後は、ステップＳ１０１７の処理により、ＬＥＤ４は継続的に点灯される。このように、スイッチ５，６が１０秒間に複数回、押圧操作されたときは、最新のスイッチ５，６の操作に応じた表示が速やかに行われ、新たに設定されたヒータ２への電力量を運転者に明確に認識させることができる。
【００９４】
次に、ステップＳ１０１８で、ＬＶｓｗがＬＶより大きい場合、ヒータ２への電力量は、上限電力量に制御されている。このとき、ステップＳ１０１９に進み、ＡＣＧレベル制限作動中の点灯パターン制御を行う。ＡＣＧレベル制限作動中（ＬＶをＬＶａｃｇ（＜ＬＶｓｗ）に制御しているとき）には、ヒータ出力レベルＬＶに応じた点滅周期で、ＬＥＤ４を継続的に点滅させる。これにより、ＡＣＧレベル制限作動中である（ヒータ２への実際の電力量が上限電力量に制限されている）ことを、運転者に明確に認識させることができる。
【００９５】
上述のＡＣＧレベル制限作動中の点灯パターン制御について、図１５を用いてより詳細に説明する。図１５は、図２のグリップヒータ制御装置におけるＡＣＧレベル制限作動中のヒータ出力レベルＬＶとスイッチ５，６の操作とＬＥＤ４のＯＮ・ＯＦＦ（点灯・消灯）との関係を例示するグラフである。図１５において、ＡＣＧｌｅｖｅｌの設定、上限電力量のレベルＬＶａｃｇ、目標電力量のレベルＬＶｓｗ、ＵＰスイッチ５のＯＮ状態・ＯＦＦ状態、ＤＯＷＮスイッチ６のＯＮ状態・ＯＦＦ状態、ＬＥＤ４のＯＮ・ＯＦＦの経時変化の様子がそれぞれ上段側から示されている。なお、図１５に示す作動例においては、バッテリ電圧低下状態及びスイッチ故障状態のいずれでもないものとする。
【００９６】
図１５を参照して、この例では、時刻ｔｃ０以前では、ＡＣＧｌｅｖｅｌは１に設定され、上限電力量のレベルＬＶａｃｇはレベル２に設定され、目標電力量のレベルＬＶｓｗはレベル５に設定されている。このとき、ヒータ出力レベルＬＶはレベル２に制限されており、ステップＳ１０１９の処理により、レベル２に応じた周期である約１．３３秒の周期（周波数０．７５Ｈｚ）でＬＥＤ４が継続的に点滅される。
【００９７】
時刻ｔｃ０において、ＤＯＷＮスイッチ６の押圧操作が検出され、ＬＶｓｗはレベル４に設定される。ＡＣＧｌｅｖｅｌは１のままであり、ＬＶａｃｇはレベル２に維持されている。このとき、ＤＯＷＮスイッチ６の押圧操作が検出されたので、ステップＳ１０１２の処理により、時刻ｔｃ０から１０秒間、ＬＶｓｗに設定されたレベル４に応じた周期である０．５秒の周期（周波数２Ｈｚ）でＬＥＤ４が点滅される。１０秒経過後は、実際のヒータ２への電力量は、レベル２に制限されているので、ステップＳ１０１９の処理により、レベル２に応じた周期である約１．３３秒の周期（周波数０．７５Ｈｚ）でＬＥＤ４が引き続き点滅される。
【００９８】
次に、時刻ｔｃ１秒（＞（ｔｃ０＋１０）秒）において、ＵＰスイッチ５の押圧操作が検出され、ＬＶｓｗはレベル５に設定される。ＡＣＧｌｅｖｅｌは１のままであり、ＬＶａｃｇはレベル２に維持されている。このとき、ＵＰスイッチ５の押圧操作が検出されたので、ステップＳ１０１２の処理により、時刻ｔｃ１から１０秒間、ＬＶｓｗに設定されたレベル５に応じた周期である０．２５秒の周期（周波数４Ｈｚ）でＬＥＤ４が点滅される。１０秒経過後は、実際のヒータ２への電力量は、レベル２に制限されているので、ステップＳ１０１９の処理により、レベル２に応じた周期である約１．３３秒の周期（周波数０．７５Ｈｚ）でＬＥＤ４が引き続き点滅される。
【００９９】
次に、時刻ｔｃ２秒（＞（ｔｃ１＋１０）秒）において、ＡＣＧｌｅｖｅｌが０に設定され、ＬＶａｃｇがレベル５に設定される。このとき、ＡＣＧｌｅｖｅｌが０である場合（発電機９の回転数が十分に高い場合）なので、ヒータ２への電力量の制限が実質的に解除されている状態である。スイッチ５，６の押圧操作はなく、ＬＶｓｗはレベル５に維持される。よって、ＬＶは目標電力量のレベルＬＶｓｗに設定されたレベル５となる。このとき、ＬＥＤ４の制御は、定常時の点灯パターン制御に切り替わり、ステップＳ１０１７の処理により、ＬＥＤ４が継続的に点灯される。
【０１００】
さらに、図５のステップＳ５０７に戻り、メイン制御周期経過フラグＦｍａｉｎを０にリセットして（ステップＳ５０８）、ステップＳ５０２に戻り、処理を繰り返す。これにより、ステップＳ５０３〜Ｓ５０８の処理が、所定の制御周期で繰り返される。
【０１０１】
次に、タイマ割込処理について説明する。図１１を参照して、まず、メイン周期カウンタに関する処理を行う。メイン周期カウンタは、メイン制御処理のステップＳ５０３〜Ｓ５０８の処理を実行するタイミングを決定するために時間を計測するカウンタである。ステップＳ１１０１で、メイン周期カウンタのカウント値を１だけ増やす。次に、メイン周期カウンタのカウント値がメイン周期設定値であるか否かを確認する（ステップＳ１１０２）。メイン周期設定値は、メイン制御処理のステップＳ５０３〜Ｓ５０８の処理を行う前記制御周期である。ステップＳ１１０２でＹＥＳの場合、メイン周期カウンタを初期化し（ステップＳ１１０３）、メイン制御周期経過フラグＦｍａｉｎに１を設定して（ステップＳ１１０４）、ステップＳ１１０５に進む。ステップＳ１１０２でＮＯの場合、そのままステップＳ１１０５に進む。
【０１０２】
次に、ヒータＰＷＭカウンタに関する処理を行う。これは、ヒータ２のＰＷＭ制御を行う処理である。ヒータ２のＰＷＭ制御では、ＰＷＭ制御周期の間の、ヒータ２のＯＮ時間とＯＦＦ時間との比を変更することで、ヒータ２への電力量を調節する。
【０１０３】
まず、ステップＳ１１０５で、ヒータＰＷＭカウンタのカウント値を１だけ増やす。ヒータＰＷＭカウンタは、ヒータ２のＰＷＭ制御で、ヒータ２をＯＮする時間とＯＦＦする時間とを計測するためのカウンタである。次に、ヒータＰＷＭカウンタのカウント値がヒータＯＮ＿ＤＵＴＹ以下であるか否かを判断する（ステップＳ１１０６）。この判断結果がＹＥＳの場合、ヒータ２をＯＮし（ステップＳ１１０７）、ＮＯの場合、ヒータ２をＯＦＦする（ステップＳ１１０８）。次に、ステップＳ１１０９に進み、ヒータＰＷＭカウンタがＰＷＭ周期設定値であるか否かを確認する。ＰＷＭ周期設定値は、ヒータ２のＰＷＭ制御を行う周期としてあらかじめ定められた値である。ステップＳ１１０９でＹＥＳの場合、ヒータＰＷＭカウンタを初期化し（ステップＳ１１１０）、ステップＳ１１１１に進む。ステップＳ１１０９でＮＯの場合、そのままステップＳ１１１１に進む。
【０１０４】
次に、ＬＥＤ周期カウンタに関する処理を行う。これは、ＬＥＤ４の減光点灯表示を行う処理である。ＬＥＤ４の減光点灯は、ＬＥＤ４の通電のＯＮ時間とＯＦＦ時間との比を制御して行う（ＬＥＤ４への電力量をＰＷＭ制御により調節する）。まず、ステップＳ１１１１で、ＬＥＤ減光点灯フラグＦｌｅｄが１であるか否か確認する。減光点灯状態でない場合（Ｆｌｅｄ＝０）、ステップＳ１１１８に進む。
【０１０５】
減光点灯状態である場合（Ｆｌｅｄ＝１）、ＬＥＤ周期カウンタのカウント値を１だけ増やす（ステップＳ１１１２）。ＬＥＤ周期カウンタは、ＬＥＤ４のＰＷＭ制御で、ＬＥＤ４をＯＮする時間とＯＦＦする時間とを計測するためのカウンタである。次に、ＬＥＤ周期カウンタのカウント値がＬＥＤ＿ＯＮ＿ＤＵＴＹ（ＰＷＭ制御の１周期内でのＬＥＤ４の点灯時間）以下であるか否かを判断する（ステップＳ１１１３）。ＬＥＤ＿ＯＮ＿ＤＵＴＹはあらかじめ定められている。ステップＳ１１１３の判断結果がＹＥＳの場合、ＬＥＤ出力Ｉ／Ｆ２１にＯＮ信号（高電位信号）を出力してＬＥＤ４を点灯し（ステップＳ１１１４）、ＮＯの場合、ＬＥＤ出力Ｉ／Ｆ２１にＯＦＦ信号（低電位信号）を出力してＬＥＤ４を消灯する（ステップＳ１１１５）。次に、ステップＳ１１１６に進み、ＬＥＤ周期カウンタがＬＥＤ周期設定値であるか否かを確認する。ＬＥＤ周期設定値は、ＬＥＤ４のＰＷＭ制御を行う周期としてあらかじめ定められた値である。ステップＳ１１１６でＹＥＳの場合、ＬＥＤ周期カウンタを初期化し（ステップＳ１１１７）、ステップＳ１１１８に進む。ステップＳ１１１６でＮＯの場合、そのままステップＳ１１１８に進む。
【０１０６】
次に、ＡＣＧ周期カウンタに関する処理を行う。ＡＣＧ周期カウンタは、ＡＣＧ信号入力Ｉ／Ｆ１９から入力されるパルス信号から、発電機９の回転数を示すものであるＡＣＧ周期を計測するための時間を計測するカウンタである。まず、ステップＳ１１１８で、ＡＣＧ周期カウンタのカウント値を１だけ増やす。次に、ＡＣＧ周期カウンタのカウント値がＡＣＧ周期最大値より大きいか否かを判断する（ステップＳ１１１９）。ＡＣＧ周期最大値は、例えばエンジンが停止中であるような状態を検出するために、あらかじめ定められた値である。その値は、エンジンの運転中に取り得るＡＣＧ周期よりも十分に大きい値である。ステップＳ１１１９で、ＡＣＧ周期カウンタのカウント値がＡＣＧ周期最大値以下の場合は、タイマ割込処理を終了する。
【０１０７】
ステップＳ１１１９で、ＡＣＧ周期カウンタのカウント値がＡＣＧ周期最大値より大きい場合（エンジンの停止中の場合）、ＡＣＧ制限レベルＡＣＧｌｅｖｅｌに２を設定し（ステップＳ１１２０）、ヒータ２への上限電力量のレベルＬＶａｃｇに１を設定し（ステップＳ１１２１）、タイマ割込処理を終了する。これにより、ＡＣＧ周期がＡＣＧ周期最大値より大きい場合（エンジンの停止中の場合）は、上限電力量のレベルはレベル１（最低レベル）に設定されるので、発電機９の発電がされない状態で、バッテリ１０からヒータ２に供給する電力量を極力小さくして、バッテリ電圧が過剰に低下することを防止することができる。
【０１０８】
次に、ＡＣＧ入力割込処理について説明する。図１２を参照して、まず、タイマ割込処理で設定されているＡＣＧ周期カウンタのカウント値を読み込む（ステップＳ１２０１）。次に、ＡＣＧ周期サンプリング値格納バッファの中の最も古いデータ破棄を破棄し（ステップＳ１２０２）、読み込んだ該カウント値をＡＣＧ周期サンプリング値格納バッファに格納する（ステップＳ１２０３）。次に、ＡＣＧ周期カウンタを初期化する（ステップＳ１２０４）。次に、ＡＣＧ周期サンプリング値格納バッファに格納された８個のデータの中から、最大値を検出し（ステップＳ１２０５）、その最大値を除く７個のデータを平均してＡＣＧ周期ＡＣＧａｖｅを算出する（ステップＳ１２０６）。これにより、ピックアップ信号に、部分的に信号が出力されない期間が含まれていても、適切にＡＣＧ周期を算出することができる。
【０１０９】
次に、ＡＣＧａｖｅと閾値ＡＣＧｔｈ１とを比較する（ステップＳ１２０７）。ＡＣＧｔｈ１は、ＡＣＧ周期が短くなっていくとき（発電機９の回転数が増加しているとき）に、ＡＣＧ制限レベルがレベル０であるかレベル１であるかを判定するための閾値である。ステップＳ１２０７で、ＡＣＧａｖｅがＡＣＧｔｈ１以下の場合には、ＡＣＧｌｅｖｅｌに０を設定し（ステップＳ１２０８）、ＬＶａｃｇに５を設定し（ステップＳ１２０９）、ＡＣＧ入力割込処理を終了する。
【０１１０】
例えば、ＡＣＧｔｈ１を０．０３秒（エンジンの回転数が２０００ｒｐｍ）として、ＡＣＧ周期が０．０３秒以下（エンジンの回転数が２０００ｒｐｍ以上）のときには、ヒータへの上限電力量はレベル５（最大レベル）に設定され、実質的にヒータ２への電力量の制限が解除される。したがって、必ずヒータ２への電力量は目標電力量に制御されるので、回転数が大きく発電機９の発電量がヒータ２の必要とする電力量に対して十分大きいときには、ヒータ２への電力量を制限することなく、ヒータ２が運転者の要望に応じた温度になるように、ヒータ２への電力量を制御することができる。なお、ＡＣＧ周期が０．０３秒以下のときには、ヒータ２への上限電力量を設定せずに、必ずヒータ２への電力量を目標電力量にするものとしてもよい。
【０１１１】
ステップＳ１２０７で、ＡＣＧａｖｅがＡＣＧｔｈ１より大きい場合は、Ｓ１２１０に進み、ＡＣＧａｖｅと閾値ＡＣＧｔｈ２とを比較する。ＡＣＧｔｈ２は、ＡＣＧｔｈ１より大きい値であり、ＡＣＧ周期が短くなっていくときに、ＡＣＧ制限レベルがレベル１であるかレベル２であるかを判定するための閾値である。ＡＣＧａｖｅがＡＣＧｔｈ２以下の場合には、ステップＳ１２１１に進み、ＡＣＧｌｅｖｅｌ＝０でかつＡＣＧａｖｅが閾値ＡＣＧｈｙｓ１以下であるか否かを判断する。ＡＣＧｈｙｓ１は、ＡＣＧｔｈ１より大きく、ＡＣＧｔｈ２より小さい値であり、ＡＣＧ周期が長くなっていくとき（発電機９の回転数が減少しているとき）に、ＡＣＧ制限レベルがレベル０であるかレベル１であるかを判定するための閾値である。ＡＣＧｈｙｓ１は、例えば、ＡＣＧｔｈ１より１０％程度大きい値とする。ステップＳ１２１１の判断結果がＹＥＳの場合には、ＡＣＧｌｅｖｅｌに０を設定し（ステップＳ１２１２）、ＬＶａｃｇに５を設定して（ステップＳ１２１３）、ＡＣＧ入力割込処理を終了する。ステップＳ１２１１の判断結果がＮＯの場合には、ＡＣＧｌｅｖｅｌに１を設定し（ステップＳ１２１４）、ＬＶａｃｇに２を設定して（ステップＳ１２１５）、ＡＣＧ入力割込処理を終了する。
【０１１２】
ステップＳ１２１０で、ＡＣＧａｖｅがＡＣＧｔｈ２より大きい場合には、ステップＳ１２１６に進み、ステップＳ１２１１〜Ｓ１２１５と同様に、ＡＣＧ制限レベルを設定する。まず、ステップＳ１２１６で、ＡＣＧｌｅｖｅｌ＝１でかつＡＣＧａｖｅが閾値ＡＣＧｈｙｓ２以下であるか否かを判断する。ＡＣＧｈｙｓ２は、ＡＣＧｔｈ２より大きい値であり、ＡＣＧ周期が長くなっていくときに、ＡＣＧ制限レベルがレベル１であるかレベル２であるかを判定するための閾値である。ＡＣＧｈｙｓ２は、例えば、ＡＣＧｔｈ２より１０％程度大きい値とする。ステップＳ１２１６の判断結果がＹＥＳの場合には、ＡＣＧｌｅｖｅｌに１を設定し（ステップＳ１２１７）、ＬＶａｃｇに２を設定して（ステップＳ１２１８）、ＡＣＧ入力割込処理を終了する。ステップＳ１２１６の判断結果がＮＯの場合には、ＡＣＧｌｅｖｅｌに２を設定し（ステップＳ１２１９）、ＬＶａｃｇに１を設定して（ステップＳ１２２０）、ＡＣＧ入力割込処理を終了する。
【０１１３】
上述の処理において、例えば、ＡＣＧｔｈ２を０．０４秒（エンジンの回転数が１５００ｒｐｍ）、ＡＣＧｈｙｓ１を０．０３３秒（エンジンの回転数が１８００ｒｐｍ）、ＡＣＧｈｙｓ２を０．０４４秒（エンジンの回転数が１３５０ｒｐｍ）とする。このとき、ＡＣＧ周期が０．０３７５秒（エンジンの回転数が１６００ｒｐｍ）のときは、ヒータ２への上限電力量はレベル２に設定され、ＡＣＧ周期が０．０５秒（エンジンの回転数が１２００ｒｐｍ）のときは、ヒータ２への上限電力量のレベルはレベル１に設定される。この処理により、発電機９の発電量に見合った適切な上限電力量を設定することができ、発電機９の発電量に対して、ヒータ２に供給される電力量が過剰にならず、ひいては、バッテリの電力消費を抑えるようにヒータ２に供給される電力量を制御できる。すなわち、回転数が低く発電機９の発電量が少ない時には、ヒータ２への電力量を少なくするように制御することができる。これにより、バッテリ１０の電圧低下を抑制しつつ、ヒータ２によるグリップの加温を可能とする機会を多くすることができる。
【０１１４】
ＡＣＧ入力割込処理におけるヒータ２への上限電力量の設定方法について、図１３を用いてより詳細に説明する。図１３は、エンジン又は発電機９の回転数を示すものであるＡＣＧ周期と、ヒータ２への上限電力量との関係を示すグラフであり、横軸は時間を示し、縦軸はＡＣＧ周期を示す。図１３の実線のようにＡＣＧ周期が変化する場合、まず、時刻ｔ０ではＡＣＧ制限レベルＡＣＧｌｅｖｅｌは２に設定されている（ヒータ２への上限電力量はレベル１に設定されている）。ＡＣＧ周期が短くなっていく期間ｔ０〜ｔ１では、ＡＣＧｌｅｖｅｌは２に設定され続ける（ヒータ２への上限電力量はレベル１に設定され続ける）。ＡＣＧ周期が短くなっていき、閾値ＡＣＧｔｈ２より低くなると、ＡＣＧｌｅｖｅｌは１に設定される（ヒータ２への上限電力量はレベル２に設定される）。さらにＡＣＧ周期が短くなっていき、時刻ｔ２でＡＣＧｔｈ１以下になると、ＡＣＧｌｅｖｅｌは０に設定され（ヒータ２への上限電力量はレベル５（最大レベル）に設定され）、実質的にヒータ２への電力量の制限が解除される。期間ｔ２〜ｔ３ではヒータ２への電力量の制限は解除され続け、その後、ＡＣＧ周期が長くなっていき、時刻ｔ３でＡＣＧｈｙｓ１以上になると、ＡＣＧｌｅｖｅｌは１に設定される（ヒータ２への上限電力量はレベル２に設定される）。さらにＡＣＧ周期が長くなっていき、時刻ｔ４でＡＣＧｈｙｓ２以上になると、ＡＣＧｌｅｖｅｌは２に設定される（ヒータ２への上限電力量はレベル１に設定される）。このようにヒータ２への上限電力量のレベルＬＶａｃｇを決定することにより、エンジン回転数の変化に対する上限電力量の変化にヒステリシス特性を持たせることができ、回転数の変動により上限電力量の変更が頻繁に繰り返されて不安定な作動をする事を防ぐことができる。
【０１１５】
なお、本実施形態においては、乗物はオートバイであるとしたが、スノーモービル、水上バイク等であるとしてもよい。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施形態であるグリップヒータ制御装置が備えられた乗物のグリップの外観図。
【図２】本発明の実施形態であるグリップヒータ制御装置のシステムブロック図。
【図３】図２のグリップヒータ制御装置におけるピックアップ信号の時間変化を示すグラフ。
【図４】図２のグリップヒータ制御装置の回路図。
【図５】図２のグリップヒータ制御装置の制御処理のメイン制御処理を示すフローチャート。
【図６】図２のグリップヒータ制御装置の制御処理の初期化処理を示すフローチャート。
【図７】図２のグリップヒータ制御装置の制御処理のバッテリ電圧検出処理を示すフローチャート。
【図８】図２のグリップヒータ制御装置の制御処理のスイッチ入力処理を示すフローチャート。
【図９】図２のグリップヒータ制御装置の制御処理のヒータ出力処理を示すフローチャート。
【図１０】図２のグリップヒータ制御装置の制御処理のインジケータ出力処理を示すフローチャート。
【図１１】図２のグリップヒータ制御装置の制御処理のタイマ割込処理を示すフローチャート。
【図１２】図２のグリップヒータ制御装置の制御処理のＡＣＧ入力割込処理を示すフローチャート。
【図１３】図２のグリップヒータ制御装置におけるＡＣＧ周期とヒータへの上限電力量との関係を示すグラフ。
【図１４】図２のグリップヒータ制御装置におけるヒータ出力レベルとスイッチの操作とＬＥＤのＯＮ・ＯＦＦとの関係を示すグラフ。
【図１５】図２のグリップヒータ制御装置におけるＡＣＧレベル制限作動中のヒータ出力レベルとスイッチの操作とＬＥＤのＯＮ・ＯＦＦとの関係を示すグラフ。
【符号の説明】
【０１１７】
１…グリップ、２…ヒータ、４…ＬＥＤ（表示手段）、５，６…スイッチ（ヒータ温度操作子）、７…グリップヒータ制御装置、１０…バッテリ、１３…ＣＰＵ（ヒータ制御手段，回転数検出手段，上限電力量設定手段，目標電力量設定手段，表示制御手段，操作子異常検出手段，バッテリ電圧検出手段）、２２，２３…スイッチ入力Ｉ／Ｆ（操作信号出力手段）。
【図１】
2006282042.tif 000003
【図２】
2006282042.tif 000004
【図３】
2006282042.tif 000005
【図４】
2006282042.tif 000006
【図５】
2006282042.tif 000007
【図６】
2006282042.tif 000008
【図７】
2006282042.tif 000009
【図８】
2006282042.tif 000010
【図９】
2006282042.tif 000011
【図１０】
2006282042.tif 000012
【図１１】
2006282042.tif 000013
【図１２】
2006282042.tif 000014
【図１３】
2006282042.tif 000015
【図１４】
2006282042.tif 000016
【図１５】
2006282042.tif 000017