以下本発明に係る実施形態を図面を参照して説明する。なお、以下の説明においては、撮像装置がデジタルカメラである場合について、説明するが、撮像装置はデジタルカメラに限定されるわけではない。
本実施形態に係るデジタルカメラ10を、後方から見た斜視図を図1に、前方から見た正面図を図2に示す。デジタルカメラ10において、背面側の略正面には、LCDモニタ27が設けられる。デジタルカメラ10の背面において、LCDモニタ27の上方には、電源ボタン11、LEDボタン12、ズームボタン14およびモニタボタン15が設けられる。ズームボタン14は、望遠ボタン141および広角ボタン142から成る。デジタルカメラの上面には、レリーズボタン13が設けられる。デジタルカメラ10の正面には、被写体像からの光を受光するための撮像レンズ67、および被写体像に向けて照明光を発するための照明用LED30が設けられる。デジタルカメラ10には、さらに光学ファインダ68が設けられ、光学ファインダ68を介して被写体像が光学的に観察される。
図3は、本実施形態のデジタルカメラの回路構成図を示す。デジタルカメラ10には、CPU41が設けられ、カメラ全体の動作は、CPU41によって制御される。CPU41には、ポートP2〜P15が設けられ、ポートP2〜P9には、各種電気回路ブロック(映像処理ブロック20、撮像ブロック21、AE部22、AF部23、ズーム部24、シャッタ部25、記録媒体26、LCDモニタ27)が接続される。ポートP10〜P15には、各種スイッチ(測光スイッチ13a、レリーズスイッチ13b、LCDオンスイッチ12a、望遠スイッチ14a、広角スイッチ14b、モニタスイッチ15a)が接続される。各種スイッチは、オン状態では、オン信号をCPU41のポートP10〜P15に向けて入力し、これによりCPU41は、各種スイッチのオンオフ状態を把握することができる。CPU41には、さらにLED駆動回路28および電源電圧検出部31が接続される。
デジタルカメラ10には、デジタルカメラの回路全体に電源を供給するための電源部Vccが設けられる。電源Vccからカメラ全体への電源供給のオンオフは、電源スイッチ11aによって切り替えられる。電源スイッチ11aは、電源ボタン11の押下に対応してオンオフ状態が切り替えられる。電源スイッチ11aがオン状態になると、電源部Vccから、LED駆動回路28、電源電圧検出部31、各種スイッチ、およびCPU41に電圧が印加される。また、CPU41に接続された各種電気回路ブロックは、その動作に応じて電源Vccから電圧が印加される。
電源スイッチ11aがオン状態になると、LCDモニタ27において、スルー画像表示動作が開始される。スルー画像表示動作においては、撮像ブロック21、映像処理ブロック20、LCDモニタ27が動作される。具体的には、撮像ブロック21は、撮像ブロック21に設けられたCCD(不図示)を駆動させ、CCDは撮像レンズ67を介して得られた被写体像を受光し、受光した被写体像に応じた電荷を蓄積する。CCDで蓄積された電荷は、所定の時間毎に画像信号に変換される。画像信号は、さらにデジタル信号に変換された後、CPU41を介して映像処理ブロック20に入力される。デジタル信号は、映像処理ブロック20において画像処理が施され、所定時間毎に動画用画像データとして変換され、LCDモニタ27上に表示される。これらの動作は、繰り返され、これによりLCDモニタ27上にはスルー画像が表示される。
モニタスイッチ15aは、オン状態とオフ状態が切り替えられることにより、スルー画像表示の動作・非動作が切り替えられるスイッチである。モニタスイッチ15aは初期状態においては、オン状態であり、電源スイッチ11aが入力されると、上述したように、スルー画像表示動作が行われる。
レリーズボタン13が、半押しされ測光スイッチ13aがオン状態にされると、AE部22が動作され、AE部22は、被写体の測光動作を実行して露光値を演算し、この露光値に基づき撮影に必要となる絞り値及び露光時間を演算する。また、測光スイッチ13aがオン状態にされると、AF部23が動作され、AF部23は、測距を行い、この測距結果に基づき撮像レンズ67を変位させ焦点調節を行う。
レリーズボタン13が、全押しされレリーズスイッチ13bがオン状態にされると、撮影動作が行われる。すなわちシャッタ部25が動作され、シャッタ部25に設けられたシャッタ(不図示)が所定の開放位置に開放される。シャッタは、所定の露光時間経過後閉じられ、撮像ブロック21に設けられたCCDは、所定の露光時間の間に蓄積された電荷を、画像信号に変換する。CCDで生成された画像信号は、デジタル信号に変換された後、CPU41を介して映像処理ブロック20に入力され、映像処理ブロック20において画像処理が施され、表示用画像データおよび記録用画像データに変換される。表示用画像データは、LCDモニタ27上に静止画として表示されるとともに、記録用画像データは、撮影静止画像として記録媒体26に記録される。
望遠ボタン141、または広角ボタン142が押下されると、望遠スイッチ14aおよび広角スイッチ14bが入力され、その入力に応じて、ズーム部24が動作され、ズーム部24によって、撮像レンズ67が駆動させられる。
LEDボタン12が押下されると、LEDオンスイッチ12aがオン状態にされ、照明用LED30が発光させられる。照明用LED30の発光において、発光に必要な駆動デューティ値dlは、CPU41のPWM0からLED駆動回路28に入力されるとともに、発光に必要な駆動電圧Vlは、CPU41のD/AからLED駆動回路28に入力される。LED駆動回路28には、電源Vccから電圧が印加され、これにより、駆動デューティdlのデューティ比および駆動電圧Vlに応じたパルス高さを有するパルス波が生成される。パルス波は照明用LED30に供給され、照明用LED30はパルス発光させられる。なお、初期状態においては、駆動デューティdlおよび駆動電圧Vlは、それぞれ基準デューティdlst、基準駆動電圧Vlstに定められており、これにより、照明用LED30は、その光量が基準光量Lustである光を発する。なお、本明細書においては、光量とは、LED30から照射される光の所定時間当たりの発光量をいう。
電源電圧検出部31では、電源Vccの電源電圧Vtが検出され、その検出された電源電圧値は、CPU41のA/Dに入力される。電源Vccの電源電圧Vtは、各種回路ブロックの駆動状態、または電源Vccの残存する電気エネルギー量(すなわち電池の残量)に応じて変化する。例えば各種の電気回路ブロックのうちの1つの電気回路ブロックの動作が開始され、その動作が開始された電気回路ブロックに電源Vccから電圧が印加されると、電源Vccの電源電圧Vtは低下させられる。また、電源Vccの電気エネルギーが消費され、例えば電源Vccの残量が少なくなっても、電源電圧Vtは低下させられる。
図4は、各電気回路ブロックそれぞれに割り当てられた重み定数を示す。図4に示すように、CPU41に接続された各種電気回路ブロックには、それぞれ重み定数が割り当てられ、これら重み定数はCPU41のROM(図示せず)に保存されている。各重み定数は、対応する電気回路ブロックの動作によって消費される消費電力に比例するように設定されている。すなわち、各重み定数は、各電気回路ブロックの動作によって低下する電源電圧Vtの電圧低下量に比例する。
例えば、LCDモニタ27には、負荷指数として3が割り当てられている一方、記録媒体26には、負荷指数として2が割り当てられている。すなわち、LCDモニタ27が動作させられたときの消費電力と、記録媒体26が動作させられたときの消費電力とを比較すると、およそ3:2になることを示しており、これらが動作させられたときの電源電圧Vtの電圧低下量も、およそ3:2になることを示している。AE部22、AF部23、ズーム部24、シャッタ部25にも同様に、それぞれ負荷指数として1,2,2,3が割り当てられている。
一方、映像処理ブロック20は、スルー画像表示動作と、撮影動作における消費電力は異なる。すなわち、これら動作が実行されたとき、動作によって電源電圧Vtの低下させられる量が異なる。したがって、映像処理ブロック20には、第1および第2重み定数として2および4が割り当てられており、スルー画像表示動作においては、第1重み定数に設定され、撮像動作においては、第2重み定数に設定される。撮像ブロック21も同様に、第1および第2重み定数として1および2が割り当てられ、スルー画像表示動作においては、第1重み定数に設定され、撮像動作においては、第2重み定数に設定される。以上のように本実施形態においては、同一の電気回路ブロックであっても異なる動作を行う場合、その異なる動作に対応した異なる重み定数が割り当てられる。すなわち、本実施形態では、重み定数は電気回路ブロックそれぞれのみならず、電気回路ブロックの各動作にも割り当てられている。
CPU41には、現在動作している電気回路ブロックに対応した重み定数の総和が、負荷指数として記憶される。すなわち、負荷指数は、全ての電気回路ブロックが動作されていないときには0に設定させられ、電気回路ブロックの動作が開始させられると、その開始させられた動作に対応した重み定数が、負荷指数に加算される。また、電気回路ブロックの動作が終了すると、その終了した電気回路ブロックの動作に対応した重み定数が、負荷指数から減ぜられる。これにより、電気回路ブロックで消費されている電力の総和、すなわち電気回路ブロックの動作の実行によって低下させられる電源電圧Vtの低下量の合計は、負荷指数によって表されている。
したがって、電気回路ブロックの動作が変化され、負荷指数が1増加すると電源電圧値Vtは一定量ΔVt減少し、負荷指数が1減少すると電源電圧Vtは一定量ΔVt増加する。すなわち、電気回路ブロックの動作が変化し、負荷指数が変更される場合、動作変化後の電源Vccの電源電圧Vt’は、動作変化前の電源電圧Vtと、負荷指数の増減量nにより以下のように算出可能である。この算出により求められる電源電圧Vt’は、以下算出電源電圧Vt’という。
Vt’=Vt−n×ΔVt ・・・・(1)
本実施形態においては、照明用LED30がオン状態にあるときに、電気回路ブロックに動作が生じ、負荷指数が増加されると判断されると、式(1)を用いて、動作変化前の実際に検出された電源電圧Vtと、負荷指数の増減量nによって、動作変化後の算出電源電圧Vt’が算出される。
ここで、電源Vccが、電気回路ブロックやCPU41に必要な電圧を印加させるためには、電源電圧Vtは所定の電圧値以上である必要があり、所定の電圧値(下限電源電圧Vtlmt)より低くなると、CPU41等で動作不良等が発生する。すなわち、算出電源電圧Vt’が、下限電源電圧Vtlmtより低い場合、電源Vccの電源電圧Vtは、下限電源電圧Vtlmt以下にならないように、電圧調整が行われなければならない。
したがって、本実施形態では、算出電源電圧Vt’が下限電源電圧Vtlmtに比較され、算出電源電圧値Vt’が、下限電源電圧Vtlmtより低いと判定されると、電圧調整が行われる。電圧調整は、具体的には、照明用LED30の駆動電圧Vlを低下させることにより行われる。駆動電圧Vlが低下させられると、電源Vccの電圧負荷が低減され、電源Vccの電源電圧Vtが低下させられるからである。
照明用LED30の駆動電圧Vlが、電圧調整のために低下させられると、駆動デューティdlは、基準光量Lustが維持されるように高められる。すなわち、LED30を発光するためのパルス波は、そのパルス高さが低下させられるとともに、デューティ比が高められ、基準光量Lustが維持される。なお、基準光量Lustに対応した駆動電圧Vlと駆動デューティdlの関係を表すテーブルは、定数として予めCPU41に保持されており、このテーブルにより駆動デューティdlは算出される。さらに、本実施形態では、電源電圧Vtが下限電源電圧Vtlmtに一致するように、駆動電圧Vlの電圧調整が実施される。
電圧調整が実施され、電源電圧Vtが下限電源電圧Vtlmtに一致しているとき、負荷指数がさらに増加すると、上述した駆動電圧Vlはさらに低減させられ、駆動デューティdlも高められる。駆動デューティdlが高められ、パルス波のデューティ比が100%に達している場合、パルス波のデューティ比は高くすることができないので、駆動電圧Vlを低下させると、LED30の発光量は低下してしまう。したがって、本実施形態では、パルス波のデューティ比が100%に達したときの駆動電圧Vlを、下限駆動電圧Vllmtとし、駆動電圧Vlが下限駆動電圧Vllmtより低下された場合には、光量不足のエラー表示が例えばLCDモニタ27上で行われる。
電気回路ブロックの動作変化が生じ、負荷指数が減少する場合にも、同様に算出電源電圧Vt’が算出される。負荷指数が減少する場合には、算出電源電圧Vt’が下限電源電圧Vtlmtより高く、かつ駆動電圧Vlが基準駆動電圧Vlstより低下していると判定されると、照明用LED30の駆動電圧Vlは上昇させられる。すなわち、電源電圧Vtが下限電源電圧Vtlmtであるとき、電源電圧Vtが下限電源電圧Vtlmtから上昇させられるように、電気回路ブロックの動作変化が生じると、駆動電圧Vlは上昇させられる。なお、この場合においては、基準光量Lustが維持されるために、駆動デューティdlが低下させられる。これにより、駆動電圧Vlは一旦基準駆動電圧Vlstより低下させられた場合でも、基準駆動電圧Vlstに再度戻されることが可能である。
本実施形態では、照明用LED30がオン状態にあるとき、所定時間毎(例えば200ms毎)に電源電圧Vtが検出され、電源電圧Vtが下限電源電圧Vtlmtより低下したと判定される場合にも、照明用LED30の駆動電圧Vlが低下させられる。また、検出された電源電圧Vtが下限電源電圧Vtlmtより高く、かつ駆動電圧Vlが基準駆動電圧Vlstより低下していると判定される場合、照明用LED30の駆動電圧Vlは上昇させられる。なお、駆動電圧Vlが調整されると、上述したように、駆動デューティdlも調整される。また、この場合における駆動電圧Vl、駆動デューティdlの調整方法は、上述の方法と同様であるのでその説明は省略する。
なお、本実施形態においては、デューティ比の最高値を100%に設定し、パルス波のデューティ比が100%に達したときの駆動電圧Vlを、下限駆動電圧Vllmtと設定したが、デューティ比の最高値は100%未満に設定しても良い。LED駆動回路28によっては、デューティ比100%のパルス波を生じさせることができない場合もあるからである。
図5を参考に撮影動作時の駆動電圧Vlの挙動について説明する。図5に示すように、各電気回路ブロックの動作に応じてセットされるフラグが用いられる。電気回路ブロックのうち、AE部22、AF部23、ズーム部24、シャッタ部25、記録媒体26、LCDモニタ27のフラグは、それぞれ各電気回路ブロックが動作されるとハイ(High)に設定され、動作が停止しているときはロー(Low)に設定される。したがって、各フラグがハイに設定されると、そのフラグがハイに設定された電気回路ブロックに応じた重み定数が負荷指数に加算される。
一方、映像処理ブロック21、撮像ブロック22のフラグは、それぞれ、ハイ、およびローに設定可能であり、ハイにおいてはレベル1、レベル2に設定可能である。各電気回路ブロックのフラグは、それぞれスルー画像表示動作においては、レベル1のハイに設定され、撮影動作においては、レベル2のハイに設定される。したがって、映像処理ブロック21および撮像ブロック22のフラグがレベル1のハイに設定されると、それぞれの電気回路ブロックに応じた第1重み定数が、負荷指数に加算される。一方、映像処理ブロック21および撮像ブロック22のフラグがレベル2のハイに設定されると、それぞれの電気回路ブロックに応じた第2重み定数が、負荷指数に加算される。
図5に示すように、撮影動作が開始される前、映像処理ブロック20、撮像ブロック21、およびLCDモニタ27は、例えばスルー画像表示動作が実行されている。したがって、それぞれのブロックのフラグはハイ(レベル1)、ハイ(レベル1)、およびハイに設定されており、重み定数2、1、3の総数6が負荷指数として設定されている。
このような状態にあるときに、レリーズスイッチ13bがオン状態にされると、撮影動作が開始される。撮影動作が開始されると、シャッタ部25が動作され、シャッタが所定の開放位置に開放されるとともに、シャッタ部25のフラグがハイに設定される。シャッタ部25のフラグがハイに設定されると、シャッタ部25に対応する重み定数3が、負荷指数に加算され、負荷指数は9に設定される。このように、負荷指数が増加すると、式(1)に示すように、電源Vccの電源電圧Vtは降下させられる。しかし、本例においては、降下後の電源電圧Vtは、下限電源電圧Vtlmtには達していないので、LED駆動電圧Vlは調整されず、基準駆動電圧Vlstのままである。
シャッタの開放が終了すると、シャッタ部25の動作が停止され、シャッタ部25のフラグはローに設定される。シャッタ開放終了後、映像処理ブロック20および撮像ブロック21の動作は、スルー画像表示動作から、撮影動作に変更され、これにより、それぞれのフラグがレベル1のハイからレベル2のハイに変更される。したがって、シャッタの開放が終了すると、シャッタ部に対応する重み定数が負荷指数から減算されるとともに、映像処理ブロック20および撮像ブロック21それぞれの第1および第2重み定数の差分が、負荷指数に加算される。したがって、負荷指数は9のままであり、増減しない。
CCDの露光期間が終了し、シャッタ部25の動作によりシャッタが閉じられると、シャッタ部25のフラグがハイに設定され、負荷指数は3が加算され、12に設定される。ここで、負荷指数を3増加させるシャッタ部25の動作は、電源電圧Vtを下限電源電圧Vtlmt以下まで低下させるような動作である。すなわち、式(1)で算出される算出電源電圧Vt’が下限電源電圧Vtlmtより低いと判定される。このような場合、本実施形態においては、駆動電圧Vlが基準駆動電圧Vlstから降下させられることにより、電源電圧Vtの調整が成され、電源電圧Vtが下限電源電圧Vtlmtに一致させられる。
駆動電圧Vlが、基準駆動電圧Vlst以下になると、照明用LED30に入力されるパルス波の高さは、駆動電圧Vlの低下量に応じて低くなる。したがって、照明用LED30の光量が基準光量Lustに維持されるように、デューティdlは基準デューティdlstに比べて高く設定される。
一方、シャッタ部25の閉口動作が終了すると、シャッタ部25の動作は停止されるとともに、撮像ブロック21でも、撮影動作におけるCCDでの電荷蓄積が終了され、フラグがレベル2のハイからレベル1のハイに変更される。すなわち、シャッタが閉じられると、負荷指数は8に設定され、4減少する。ここで負荷指数を4減少させるシャッタ部25等の動作は、電源電圧Vtを上昇させられるような動作である。また、駆動電圧Vlは、基準駆動電圧Vlstより低下させられている。このような場合、駆動電圧Vlは、上昇させられ、本例においては、駆動電圧Vlは基準駆動電圧Vlstまで戻される。駆動電圧Vlが基準駆動電圧Vlstに設定されても、電源電圧Vtは下限電源電圧Vtlmt以上に維持されるからである。
CCDにおける電荷蓄積が終了すると、その蓄積された電荷は画像信号に変換され、映像処理回路20で画像処理が施された後、記録用画像データとして記録媒体26に記録される。したがって、シャッタが閉じられてから一定時間経過すると、記録媒体26の動作が開始され、記録媒体26のフラグがハイに変更される。このとき、記録媒体26に対応する重み定数が負荷指数に加算され、負荷指数は11となり、3増加する。
このように負荷指数を増加させる記録媒体26の動作は、電源電圧Vtを下限電源電圧Vtlmt以下に低下させるような動作である。したがって、駆動電圧Vlが基準駆動電圧Vlst以下に設定され、電源Vccの負荷が軽減されることにより、電源電圧Vtが下限電源電圧Vtlmtに一致させられる。なお、デューティdlは、基準光量Lustが維持されるように、高められる。
記録媒体26への記録用画像データの記録を開始した後、次に、映像処理ブロック20はLCDモニタ27に表示用画像データを送り、LCDモニタ27には、表示用画像データが撮影画像として表示される。撮影動作の表示が開始されると、映像処理ブロック20は撮影動作を終了し、フラグがレベル1のハイからレベル2のハイに変更される。したがって、負荷指数は9となり、2減少する。このように、映像処理ブロック20の撮影動作が終了し、動作がスルー画像表示動作に変更されると、駆動電圧Vlが、基準駆動電圧Vlstに上昇させられたとしても、電源電圧Vtは基準駆動電圧Vlst以上に維持することができる。したがって、駆動電圧Vlは、再度基準駆動電圧Vlstに上昇させられる。その後所定時間経過後、記録媒体26における記録が終了し、記録媒体26のフラグがローに変更され、これにより負荷指数はさらに3減少され、6に変更される。
図6は、フラグの反転と、実際の電気回路ブロック、および駆動電圧Vlの駆動のタイミングについてさらに詳細に説明するための図である。本実施形態では、電気回路ブロックの動作が開始されるとき、まず各電気回路ブロックのフラグがローからハイに反転させられ負荷指数が算出される。そして、その算出された負荷指数に応じて駆動電圧Vlが調整され、その後実際の各電気回路ブロックの動作が開始させられる。
このように、実際の電気回路ブロックの動作前に、予め駆動電圧Vlを低下させておくと、電源電圧Vtも、予め上昇させられることになる。したがって、実際の電気回路ブロックの動作によって、電源電圧Vtが降下させられても、電源電圧Vtが下限電源電圧Vtlmtより低くなることはない。
図7は、本実施形態のデジタルカメラのCPU41のルーチンを示す。ステップS100で、電源がオン状態にされ、CPU41の駆動が開始されると、スルー画像表示動作が開始され、撮像ブロック21、映像処理ブロック20、およびLCDモニタ27において、スルー画像表示動作に応じた動作が実行される。
次いで、ステップS110で、LEDオンスイッチ12aが入力されたか否かが判定される。ステップS110では、スイッチがオン状態であると、判定されると、ステップS120に進む。ステップS120では、LEDの駆動電圧Vlと、デューティdlの初期設定が行われる。駆動電圧Vlと、デューティdlの初期設定においては、まず電源電圧検出部31で検出された電源電圧Vtが読み込まれる。そして、この検出された電源電圧Vtが、照明用LED30に基準駆動電圧Vlstが印加されたとしても、下限電源電圧Vtlmt以上に維持されるか否かが判定される。すなわち、基準駆動電圧VlstでLED30を発光させたときの電源電圧Vtの低下電圧をVtconとすると、検知された電源電圧Vtが所定量Vta(ただし、Vta=Vcon+Vtlmt)以上か否かが検出される。
ここで、検出された電源電圧Vtが所定量Vta以上ならば、照明用LED30を基準駆動電圧Vlstでオン状態にしたとしても、電源電圧Vtは下限電源電圧Vtlmt以上になり、電源VccはCPU41等に適正に電力供給することが可能である。したがって、駆動電圧Vlと、デューティdlは、それぞれ基準値である基準駆動電圧Vlstおよび基準デューティdlstに設定される。
一方、検出された電源電圧VtがVtaより低い場合、照明用LED30を基準駆動電圧Vlstでオン状態にすると、電源電圧Vtは下限電源電圧Vtlmtより低くなる。したがって、電源電圧Vtを下限電源電圧Vtlmtに一致させるべく、駆動電圧Vlが、基準駆動電圧Vlstより低い値に設定される。具体的には、所定量Vtaと検出された電源電圧Vtの差分が算出され、その差分の電圧値を上昇させるべく、駆動電圧Vlが基準駆動電圧Vlstに対して低下させられる。本実施形態では、駆動電圧Vlが基準駆動電圧Vlstより低下させられると、その低下量に比例して、電源電圧Vtが上昇させられるので、駆動電圧Vlは上記差分から比例計算により算出される。また、デューティdlは、照明用LED30が基準光量Lustを維持できるように、駆動電圧Vlに応じて設定される。
次いで、ステップS130では、PWM0のタイマーがスタートし、デューティ周波数が初期設定のデューティdlとなるように設定され、デューティdlがLED駆動回路28に入力される。また、CPU41のD/Aから初期の駆動電圧VlがLED駆動回路28に入力される。これにより、初期設定のデューティとパルス高さを有するパルス波が、LED駆動回路28から照明用LED30に入力され、照明用LED30がパルス発光させられる。ステップS140では、後述する電源電圧検知ルーチンおよび駆動電圧制御ルーチンの割り込みが許可される。すなわち、ステップS140以降のルーチンでは、一定時間(例えば200ms)ごとに電源電圧検知ルーチン(図9参照)が割り込まれる。さらに、負荷指数の増減が検知されたときに、駆動電圧調整ルーチン(図10参照)が割り込まれる。
ステップS150では、ズームスイッチ(望遠スイッチ14aまたは広角スイッチ14b)が入力されたか否かが判定される。ズームスイッチが入力されると、ステップS160でズーム部24が動作させられ、ズーム部24によって撮像レンズ67が駆動させられる。
ステップS170では、モニタスイッチ15aのオンオフ状態が確認され、モニタスイッチ15aがオン状態であると判定されるとステップS180に進む。ステップS180では、スルー画像表示動作が行われているとそのスルー画像表示動作が継続される。また、スルー画像表示動作が行われていないときは、スルー画像表示動作が開始される。モニタスイッチ15aがオフ状態であると判定されると、ステップS185に進み、スルー画像表示動作が停止され、LCDモニタ27上におけるスルー画像の表示が停止される。
次いで、ステップS190では、測光スイッチ13aが入力されたか否かが判定される。測光スイッチ13aが入力されたと判定されると、ステップS195ではAE部22が動作され、測光が行われる。測光が終了すると、ステップS200では、AF部23の動作が開始され、測距が行われ、焦点調節が行われる。
ステップS200が終了すると、ステップS210では、レリーズスイッチ13bが入力されたか否かが判定される。レリーズスイッチ13bが入力されたと判定されると、図8に示す撮影動作が行われる。一方、レリーズスイッチ13bが入力されていないと判定されると、ステップS220に進む。ステップS220では、測光スイッチ13aが入力されているか否か判定され、入力されていると判定されると、ステップS210に戻る。一方、入力されていない場合には、ステップS150に戻る。
図8に示すように撮影動作においては、まずステップS300でシャッタ部25が動作され、シャッタが所定開度に開放されるとともに、ステップS320では、CCDが露光され、CCDでは被写体像に対応する電荷の蓄積が開始される。ステップS320では、シャッタ部25が動作されシャッタが閉じられる。ステップS330では、CCDにおいて蓄積された電荷が画像信号に変換され、変換された画像信号は、映像処理ブロック20に入力される。
ステップS340では、映像処理ブロック20に入力された画像信号は、画像処理が施された後、表示用画像データおよび記録用画像データに変換され、記録用画像データが記録媒体26に記録される。表示用画像データは、ステップS345でLCDモニタ27上に静止画像として表示される。
静止画像表示が終了すると、ステップS350では、電源電圧検知ルーチン(図9参照)、駆動電圧調整ルーチン(図10参照)の割り込みが禁止され、これらルーチンの割り込み許可が終了させられる。ステップS360では、照明用LED30がオフ状態に切り替えられる。すなわち、ステップS350では、PWM0のタイマーが停止され、デューティdlのLED駆動回路28への入力が停止させられる。また、LED駆動回路28への駆動電圧Vlの入力も停止させられる。
なお、上記ステップS100〜S360において、各電気回路ブロックの動作の開始、終了にあわせて、負荷指数は増減させられる。例えば、ステップS100やS180でスルー画像表示動作が開始されると、映像処理ブロック20、撮像ブロック21、LCDモニタ27においてスルー画像表示に対応した動作が開始され、CPU41では、負荷指数が6増加させられる。一方、ステップS185でスルー画像表示動作が停止させられると、映像処理ブロック20、撮像ブロック21、LCDモニタ27のスルー画像表示に対応した動作が終了されるので、CPU41では、負荷指数が6減少させられる。
また、例えばステップS160、S195、S200において、ズーム部24、AE部22、AF部23が動作させられていると、その動作させられている間、その電気回路ブロックに対応した重み定数2、1、2が、それぞれ負荷指数に加算される。なお、ステップS300〜S360における負荷指数の変動については、図5に詳細に記載したのでその説明は省略する。
図9は、ステップS140以降において、一定時間(例えば200ms)ごとに割り込まれる電源電圧検知ルーチンである。まず、ステップS400では、電源電圧検出部31で検出された電源電圧VtがCPU41のA/Dに入力される。次に、ステップS410では、その検出された電源電圧Vtが、直前に電源電圧検出部31で検出された電源電圧Vtoldと比較され、電源電圧Vtoldに対して変化しているか否かが判定され、変化していると判定されると、ステップS420において、後述する駆動電圧制御ルーチン(図10参照)に進む。変化していないと判定されると、ステップS420をスキップしてステップS430に進む。ステップS430では、ステップS400で検知された電源電圧Vtが電源電圧VtoldとしてCPU41内に保存される。
図10は、LEDの駆動電圧調整ルーチンを示すフローチャートである。本ルーチンは、負荷指数の増減が検知されたときに、または、電源電圧検知ルーチンで電源電圧Vtの変化が検知されたときに割り込まれるルーチンである。
本ルーチンが開始されると、まずステップS500で負荷指数が変化させられたか否かが確認される。負荷指数が変化させられたと判定されると、ステップS510に進み、ステップS510では負荷指数が減少したのか増加したのかが判定される。負荷指数が増加したと判定されると、ステップS530に進む一方、負荷指数が減少したと判定されると、ステップS540に進む。
ステップS500で負荷指数が変化せず電源電圧Vtの変化が検知されたと判定されるとステップS520に進む。ステップS520では、電源電圧Vtが上昇したか低下したかが判定され、低下したと判定されるとステップS530に進み、上昇したと判定されるとステップS540に進む。すなわち、本実施形態では、負荷指数が増加する場合、または電源電圧Vtが低下した場合、ステップS530に進む。一方、負荷指数が減少する場合、または電源電圧Vtが増加する場合、ステップS540に進む。
ステップS530では、駆動電圧Vlが下限駆動電圧Vllmtか否かが判定される。駆動電圧Vlが下限駆動電圧Vllmtであるならば、電源電圧Vtも既に下限電源電圧Vtlmtに達しており、負荷指数が増加した場合、LED駆動電圧Vlはさらに低下させなければならない。しかし、LED駆動電圧Vlが下限駆動電圧Vllmtに達していると、駆動デューティdlも最大値になっている。すなわち、駆動デューティdlはさらに高めることはできない状態であり、このような状態でLED駆動電圧Vlをさらに低下させると、LED30の発光は、光量不足となる。したがって、ステップS534に進み、ステップS534では、LCDモニタ27上に“光量不足”とメッセージを表示させ、使用者に照明用LED30の光量が低下していることを知らしめるとともに、LED30の駆動を停止し、駆動電圧調整ルーチンを終了する。
一方ステップS530で、LED駆動電圧Vlが下限駆動電圧Vllmtより大きいと判定されると、駆動電圧Vlはさらに低下させることができるので、ステップS532に進む。ステップS532では、電気回路ブロックの動作変化によって、電源電圧が下限電源電圧Vtlmtより低くなるか否かが判定される。すなわち、負荷指数が増加した場合、算出電源電圧Vt’が上述の式(1)より算出され、この算出電源電圧Vt’が下限電源電圧Vtlmtと比較される。ここで、算出電源電圧Vt’が下限電源電圧Vtlmt以上であると判断されると、電源電圧Vt(すなわち、駆動電圧Vl)は調整される必要がないので、駆動電圧調整ルーチンは終了する。一方、算出電源電圧Vt’が下限電源電圧Vtlmtより低い場合、駆動電圧Vlを調整しなければならないので、ステップS600に進む。
電源電圧検出部31によって、電源電圧Vtの低下が検出された場合、ステップS532では、その検出された実際の電源電圧Vtが下限電源電圧Vtlmtと比較される。電源電圧Vtが下限電源電圧Vtlmt以上である場合、駆動電圧Vlを調整する必要がないので、駆動電圧調整ルーチンは終了する。一方、検出された電源電圧Vtが下限電源電圧Vtlmtより低い場合、駆動電圧Vlを調整しなければならないので、ステップS600に進む。
ステップS600では、算出電源電圧Vt’または実際に検出された電源電圧Vtが用いられ、駆動電圧Vlが調整される。すなわち、下限電源電圧Vtlmtと算出電源電圧Vt’(または検出された電源電圧Vt)の差分が算出され、その差分の電圧値を上昇させるべく、駆動電圧Vlが低下させられる。本実施形態では、駆動電圧Vlを低下させると、その低下量に比例して、電源電圧Vtが上昇させられるので、駆動電圧Vlの低下量は上記差分から比例計算により算出される。なお、低下させられた駆動電圧Vlが下限駆動電圧Vllmtより低下させられると、照明用LED30は光量不足になる。したがって、駆動電圧Vlが下限駆動電圧Vlより低く設定された場合、ステップS534に進む。
ステップS540では、LEDの駆動電圧Vlが基準駆動電圧Vlstであるか否かが判定される。LEDの駆動電圧Vlが基準駆動電圧Vlstである場合、駆動電圧Vlは調整される必要はないので、駆動電圧調整ルーチンは終了する。一方、基準駆動電圧Vlstでない場合、駆動電圧Vlは基準駆動電圧Vlst以下に設定されているので、駆動電圧Vlを基準駆動電圧Vlstに近づけるべく、駆動電圧VlがステップS610で調整される。
ステップS610では、負荷指数が減少させられている場合、動作変化後の算出電源電圧Vt’が算出される。次に、算出電源電圧Vt’または実際に検出された電源電圧Vtが用いられ、駆動電圧Vlが調整される。すなわち、下限電源電圧Vtlmtと算出電源電圧Vt’(または検出された電源電圧Vt)の差分が算出され、その差分の電圧値を低下させるべく、駆動電圧Vlが上昇させられる。なお、本実施形態では、駆動電圧Vlが基準駆動電圧Vlst以上の値に設定されることはない。
以上のように、本実施形態においては、発光素子が発光している間、例えば電気回路ブロックの動作が開始され、電源電圧が基準値(下限電源電圧)より電圧低下される場合に、照明用LED30の駆動電圧Vlが低下され、電源Vccの電圧低下が抑制される。したがって、本発明では、例えば、電池の残量が少なく、電源部の電源電圧が低いような場合でも、適正にLED30の発光を継続することができる。
また、本実施形態では、負荷指数変化によって、電気回路ブロックの動作の変化が検出されるので、動作変化によって実際に電源電圧Vtが低下させられる前に、駆動電圧Vlが調整可能である。したがって、電源電圧Vtが低下させられる前に、電源電圧Vtの電圧調整を行うことができる。さらに、負荷指数を用いることによって、動作変化によって低下させられる電源電圧Vtの低下量が、指数的に表すことができるので、正確かつ簡単に駆動電圧Vlを調整することができる。
図11は、駆動電圧Vlの調整方法の変形例である。本実施形態では、負荷指数が増減したとき、算出電源電圧Vt’が算出され、駆動電圧Vlが調整されたが、本変形例に示すようにグラフが用いられ調整されても良い。図11は、電源電圧Vtおよび駆動電圧Vlの関係を示したグラフである。グラフに示すように、本変形例では、駆動電圧複合ラインXLおよび電源電圧ラインWLが設けられる。ここで、電源電圧ラインWLは照明用LED30がオフ状態にあるときの電源電圧Vtおよび駆動電圧Vlの値をライン状に示すものである。また、駆動電圧複合ラインXLはLED30がオン状態にあるときの電源電圧Vtおよび駆動電圧Vlの値をライン状に示すものである。なお、駆動電圧複合ラインXLは、第1駆動電圧ラインX1、および第2駆動電圧ラインX2から成る。
各ラインWL、X1およびX2、それぞれ以下の式(2)〜(4)により表される。
Vl=0(ただし、Vtlmt'≦Vt≦Vtmax') ・・・・(2)
Vl=Vlst(ただし、Vtlmt<Vt≦Vtmax) ・・・・(3)
Vt=Vtlmt(ただし、Vllmt''≦Vl<Vlst) ・・・・(4)
本変形でも、負荷指数が例えば±1変化されると、駆動電圧Vlが一定であるとき(すなわち第1駆動電圧ラインX1上においては)、電源電圧Vtは、±ΔVt変化させられる。一方、第1駆動電圧ラインX1は、複数の等間隔に配置された複数の点(s1〜sn)が設けられ、隣接する点同士はそれぞれΔVt離間されている。すなわち、第1駆動電圧ラインX1上においては、電源電圧Vtおよび駆動電圧Vlが任意の点sxの値であるとき、負荷指数が例えば±1変化すると、電源電圧Vtおよび駆動電圧Vlの値は、点sx±1の値になる。
また、電源電圧Vtが下限電源電圧Vtlmtに達した後(すなわち、第2駆動電圧ラインX2上)においては、負荷指数の増減は、駆動電圧Vlの増減量に略比例し、例えば負荷指数が±1変化すると、駆動電圧Vlは例えば±ΔVl変化する。したがって、第2駆動電圧ラインX2上には、複数の点(q1〜qm)が設けられ、これら複数の点は、それぞれ隣接する点同士がΔVl離間されている。すなわち、電源電圧Vtおよび駆動電圧Vlが任意の点qxの値であるとき、負荷指数が例えば±1変化すると、電源電圧Vtおよび駆動電圧Vlの値は、点qx±1の値になる。
さらに、駆動電圧Vlと電源電圧Vtが、第1駆動ラインX1上の最も左側の点snの値である場合、負荷指数が1増加すれば、駆動電圧Vlと電源電圧Vtは、第2駆動電源ラインX2上の最も上側の点q1に移動する。なお、電源電圧Vtおよび駆動電圧Vlが負荷指数に比例して増減されることより、点q1の座標は、点snの座標より算出可能である。
本変形例では、これら複数の点(s1〜sn、q1〜qm)を用い、負荷指数が増減されたときの駆動電圧Vlが以下述べるように、算出される。
まず駆動電圧Vl、および電源電圧検出部31で検出された電源電圧Vtが読み出される。次に、読み出された駆動電圧Vlが基準駆動電圧Vlstであるか否かが判定される。駆動電圧Vlが基準駆動電圧Vlstであると、電源電圧Vtおよび駆動電圧Vlは、第1駆動電圧ラインX1にあることになる。この場合、検出された電源電圧Vtは、各点(s1〜sn)の電源電圧値に比較され、検出された電源電圧Vtに最も近似する点が選択され、電源電圧Vtは、その選択された点の駆動電圧値であると近似される。
駆動電圧Vlが基準駆動電圧Vlstでないと判定されると、電源電圧Vtおよび駆動電圧Vlは、第2駆動電圧ラインX2にあることになり、電源電圧Vtは下限電源電圧Vtlmtとなる。この場合、駆動電圧Vlは、ラインX2上の複数の点q1〜qmの駆動電圧値と比較され、駆動電圧Vlに最も近似する点が選択され、駆動電圧Vlは、その選択された点の駆動電圧値であると近似される。
次に、選択された点から負荷指数の増減にあわせて、点が移動させられる。例えば負荷指数がx増加した場合、選択された点から左または下にx点分移動させられる。一方、負荷指数がy減少した場合、選択された点から右または上にy点分移動させられる。そして、その移動後の点の座標の値が、電気回路ブロック動作後の駆動電圧Vlとして定められる。なお、デューティdlの設定は、本実施形態と同様であるのでその説明を省略する。
また、本変形例においては、ラインX2上の複数の点q1〜qmのうち、最も下側に設けられる点qmの駆動電圧値は、下限駆動電圧Vllmtに一致する。したがって、駆動電圧Vlが点qmに達し、さらに負荷指数が増加する場合には、駆動電圧Vlが下限駆動電圧Vllmtを越えるので、本変形でも本実施形態と同様に、光量不足の表示がLCDモニタ27上に成される。
また、本変形例では、駆動電圧Vlと、デューティdlは、図11のグラフが用いて初期設定が行われる。すなわち、照明用LED30がオフ状態からオン状態に切り替えられるとき、以下のように駆動電圧Vlが設定される。
電源電圧ラインWL上には、複数の等間隔に配置された複数の点(p1〜pn+m)が設けられる。ここで、隣接する点同士はそれぞれΔVt離されており、すなわち、負荷指数が±1変化すれば、電源電圧Vtは、所定の点pzから左右に1点変化し、点pz±1の値に変化する。そして、点p1〜pnは、第1駆動電圧ラインX1上の各点s1〜snに、点pn+1〜pn+mは第2駆動電圧ラインX2上の各点q1〜qnに、それぞれ直線L1〜Ln+mで接続されている。
点p1〜pnは、それぞれ接続されている各点s1〜snに対して、電源電圧VtがVtcon大きい。Vtconは、上述したように、照明用LED30を基準駆動電圧Vlstでオン状態に変更したときの電源電圧Vtの低下する電圧量である。すなわち、LED30がオフ状態からオン状態に切り替えられると、電源電圧Vt、駆動電圧Vlは点p1〜pnの値から、点s1〜snの値に変更させられる。また、同様に、電源電圧Vt、駆動電圧Vlは、各点pn+1〜pn+mの値であるとき、オン状態に切り替えられると、各点q1〜qmの値に変更させられる。
以下照明用LED30がオフ状態からオン状態に切り替えられるときの駆動電圧Vlの設定方法について述べる。本変形例では、まず電源電圧検出部31で検出された電源電圧Vtが読み込まれる。次に、その検出された電源電圧Vtが、各点p1〜pn+mの電源電圧値と比較され、最も値が近い点が選択され、電源電圧Vtが、その点の電源電圧値であると近似される。そして、その選択された点に直線L1〜Ln+mで接続される点(s1〜snまたはq1〜qn)が検出され、その検出された点の駆動電圧値が、LED30の初期の駆動電圧Vlとして設定される。なお、デューティdlの初期設定は、本実施形態と同様であるのでその説明を省略する。また、初期設定において電源電圧Vtが点pn+mの電源電圧値より低い場合、LED30を発光させると、電源電圧Vtが下限電源電圧Vtlmtより低下させられるので、光量不足の表示がLCDモニタ27上で成される。
以上のように本変形例においても、本実施形態と同様に、電源電圧Vtが下限電源電圧Vtlmtに達するまでは、駆動電圧Vlは基準駆動電圧Vlstに設定される一方、下限電源電圧Vtlmtに達した後(すなわち、第2駆動電圧ラインX2上)においては、駆動電圧Vlは基準駆動電圧Vlstより低下させられて設定される。
また、本変形では、算出電源電圧Vt’を算出しなくても、駆動電圧Vlの値を設定することができるので、より簡単な構成で駆動電圧Vlを設定することができる。なお、本変形例の動作は、CPU41によって実行されるが、CPU41には、図11のグラフが記録されているわけではなく、例えば複数の点s1〜sn、q1〜qm、点p1〜pn+mの座標、および点s1〜sn、q1〜qmと点p1〜pn+mの接続関係がCPU41に記録され、上記駆動電圧Vlの設定が行われる。