(57)【特許請求の範囲】
【請求項１】
複数の光源を備える投光手段と、
前記投光手段によってスキャンされたコードによって変化した光を読み取るセンサと、
前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較する比較手段と、
各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定する投光手段調整手段と、
を備え、
前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であることを特徴とするコード読取装置。
【請求項２】
請求項１に記載のコード読取装置であって、
前記交差数における交差とは、前記検出信号のレベルが前記閾値を下回るレベルからその閾値を上回るレベルに変化する事象、前記検出信号のレベルが前記閾値を上回るレベルからその閾値を下回るレベルに変化する事象のうちの双方又は何れか一方であることを特徴とするコード読取装置。
【請求項３】
請求項１又は２に記載のコード読取装置であって、
前記所定の閾値とは、前記複数の閾値のうちの中心の閾値から両側においてそれぞれ数えた１番目から所定番目の閾値であることを特徴とするコード読取装置。
【請求項４】
請求項１乃至３の何れか１項に記載のコード読取装置であって、
前記投光手段調整手段は、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せが複数検出された場合には、それらの組合せのうち、消費電力が最も少ない組合せを前記複数の光源に設定することを特徴とするコード読取装置。
【請求項５】
請求項１乃至４の何れか１項に記載のコード読取装置であって、
前記センサからの読取信号を入力信号とし、前記検出信号を出力信号とし、オフセットとゲインを調整することが可能な可変アンプと、
前記投光手段調整手段による前記複数の光源の調整後に、前記比較手段が、前記可変アンプからの前記出力信号のレベルを前記複数の閾値と比較した再度の比較結果を用いて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出し、該検出結果に基づいて、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整するアンプ調整手段と、
を更に備えることを特徴とするコード読取装置。
【請求項６】
請求項５に記載のコード読取装置において、
前記再度の比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記可変アンプからの出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記可変アンプからの出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから選択された回数を利用することを特徴とするコード読取装置。
【請求項７】
複数の光源を備える投光手段が、コードをスキャンするステップと、
センサが、前記スキャンされたコードによって変化した光を読み取るステップと、
比較手段が、前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較するステップと、
投光手段調整手段が、各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定するステップと、
を有し、
前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であることを特徴とするコード読取方法。
【請求項８】
複数の光源を備える投光手段と、前記投光手段によってスキャンされたコードによって変化した光を読み取るセンサとを備えるコード読取装置として、コンピュータを機能させるためのコード読取用プログラムであって、
コンピュータを、
前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較する比較手段と、
各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定する投光手段調整手段と、
として機能させ、
前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であるコード読取用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コード読取装置、コード読取方法、及びコード読取プログラムに関する。特に、バーコードを対象とするバーコードリーダとしてのコード読取装置、コード読取方法、及びコード読取プログラムに関する。
【背景技術】
【０００２】
なお、本願で述べるところの「コード」とは、ラベルや容器の外面等に印刷されたコード、特に、バーコードを含む。
【０００３】
ＣＣＤ方式のバーコードリーダでは、バーコードラベルへ投光するための投光部として複数のＬＥＤを光源として使用するものがあり、個々のＬＥＤのばらつきや光学系のばらつき等により光源である複数のＬＥＤの発光量若しくは発光期間又はこれらの組合せを調整することによって、バーコードリーダ毎に投光部の投光量を調整する必要がある。バーコードリーダの投光部を個別に調整する方法の例としては、ＬＥＤがバーコードラベルに照射する時間を一定にして光源の発光量を調整する方法と、ＬＥＤがバーコードラベルに照射する光量を一定にして光源が発光する期間を調整する方法とがある。
【０００４】
バーコードリーダ毎の投光部の調整には、所定のラベル（白色バーと黒色バーが等間隔のバーパターン等）を用い、ＣＣＤ（受光素子）から出力された信号（受光信号）をオシロスコープ等で確認しながら個々のＬＥＤの発光量、もしくは発光期間を、手動、又は、半自動で調整することによって行う。
【０００５】
図１は、通常のバーコードリーダの構成図である。投光部には、例えば、図２のように４個のＬＥＤが配置される。左側の２個は、それぞれ所定の角度左側外向きに配置され、右側の２個は、それぞれ所定の角度右側外向きに配置される。各ＬＥＤは、図３（ａ）のように、ディジタル値で制御可能な可変抵抗器を用いてＬＥＤに流れる電流を制御することにより発光量を調整するか、図３（ｂ）のように、投光用ＬＥＤドライブトランジスタのオン・オフを制御することによってＬＥＤを発光させる発光期間を調整する。調整時は、予め定めたバーコードを用いてもよいが、図４のような白色バーと黒色バーが等間隔のバーパターンを用いることが望ましい。
【０００６】
図５は、バーコードラベル面での理想的な光量分布を示す。バーコードラベル面は通常平面であり、また、バーコードリーダが縮小型光学系を用いているため、バーコードの両端に行くに従って受光量が低下する。そのため、両端の投光量が、中心と比較して増加するように調整を行う必要がある。従って、投光部のＬＥＤの調整は、図５のような光量分布の光が、バーコードラベルに投光されるように行われる。また、バーコードラベルの一端から他端まで振幅に差の無い、理想的な受光信号を得るには、個々のＬＥＤ自体の発光量や発光方向等のばらつきだけでなく、ＬＥＤから発せられる投光間の相互の干渉によって生じる、バーコードラベル面における光量分布のムラの影響も考慮して、個々のＬＥＤの投光量を決定する必要がある。
【０００７】
特許文献１には、バーコードスキャナの感度調整回路において、最初に、ＣＣＤラインセンサで白ベタ紙を読み取り、その読み取り出力をＡ／Ｄ変換した際の並列ディジタル出力に基づき、受光感度が平坦になるような各ＬＥＤの通電電流の大きさの設定を行うとともにこの設定量をメモリに記憶させ、以後、その記憶された設定量を、各ＬＥＤの通電電流の大きさとすることが記載されている。しかし、単に各ＬＥＤの光照射量のばらつきを補正するものでしかない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０６−１７６１８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、光源として複数のＬＥＤを使用する投光部を有するバーコードリーダにおいて、ＬＥＤ間の相互の干渉による影響も考慮した、投光部の投光量調整を行うことができるコード読取装置、コード読取方法、及びコード読取プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の観点によれば、複数の光源を備える投光手段と、前記投光手段によってスキャンされたコードによって変化した光を読み取るセンサと、前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較する比較手段と、各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定する投光手段調整手段と、を備え、前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であることを特徴とするコード読取装置を提供する。
【００１１】
本発明の第２の観点によれば、複数の光源を備える投光手段が、コードをスキャンするステップと、センサが、前記スキャンされたコードによって変化した光を読み取るステップと、比較手段が、前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較するステップと、投光手段調整手段が、各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定するステップと、を有し、前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であることを特徴とするコード読取方法を提供する。
【００１２】
本発明の第３の観点によれば、複数の光源を備える投光手段と、前記投光手段によってスキャンされたコードによって変化した光を読み取るセンサとを備えるコード読取装置として、コンピュータを機能させるためのコード読取用プログラムであって、コンピュータを、前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較する比較手段と、各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定する投光手段調整手段と、として機能させ、前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であるコード読取用プログラムを提供する。
【発明の効果】
【００１３】
本発明によれば、光源として複数のＬＥＤを使用する投光部を有するバーコードリーダにおいて、ＬＥＤ間の相互の干渉による影響も考慮した、投光部の投光量調整を行うことができるコード読取装置、コード読取方法、及びコード読取プログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】通常のバーコードリーダの構成図である。
【図２】通常の投光部におけるＬＥＤの配置例を示す図である。
【図３】通常の投光用ＬＥＤの発光量及び発光期間の制御方法を示す図である。
【図４】投光部を調整するために用いられるバーパターンである。
【図５】バーコードラベル面での理想的な光量分布を示す図である。
【図６】本発明の実施形態によるコード読取装置の構成を示すブロック図である。
【図７】本発明の実施形態によるセンサからの出力波形のゲイン調整方法を示す図である。
【図８】本発明の実施形態によるセンサからの出力波形のオフセット調整方法を示す図である。
【図９】本発明の実施形態によるコード読取装置の構成を示す回路図である。
【図１０】本発明の実施形態によるコード読取装置の動作の流れを示すフローチャートである。
【図１１】本発明の実施形態によるコード読取装置の動作の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本発明の第１の実施形態について記す。なお、本発明に係るコード読取装置としてバーコードリーダを一例として説明するが、本発明の実施形態はバーコードリーダに限られるものではない。
【００１６】
［第１の実施形態］
（構成の説明）
本実施例のバーコードリーダは、図１の構成に加えて、図６の構成を備えている。図９は、図６の構成の回路図である。図１は、通常のバーコードリーダのブロック図である。図１に記載の通常のバーコードリーダでは、ＣＣＤから出力される（電圧）波形を増幅器（図１の例ではＡＭＰ１）で増幅した波形をアナログ−ディジタル変換器（図１の例ではＡＤＣ）を用いて電圧値としてメモリに記憶する。ＣＰＵはＣＣＤから出力された１ライン（バーコードの１回のスキャンで出力されるデータ全ての）分の電圧値が蓄えられたら電圧値を先頭から検索していき、黒バー又は白バーのどちらであるか決定（二値化処理）し、決定した黒（又は白）バーのバー幅の幅を求め（バー幅取得処理）、バーコードをデコード（デコード処理）する。コントラスト比などの規格を守っているバーコードであれば問題なくデコード可能である。しかし、規格を守っていないバーコード、又は時間の経過とともにバーコードが劣化して規格外となってしまったバーコードを読み取る場合、バーコードに対してバーコードリーダのセンサを高さ方向に傾いて翳すなどの異常なバーコードの読ませ方をした場合、投光部の光源からの光量分布にばらつきがある場合等に、二値化処理を実施した時点でデータの欠損が生じてしまう。
【００１７】
そこで、バーコードリーダ等のリーダに、以下のように図６に示される構成を付加する。
【００１８】
コード読取装置１００は、調整装置２００と可変アンプ３００とセンサ３５０と投光部８００とを有する。調整装置２００は、比較部２０１−１、２０１−２、・・・２０１−ｎと検出部２０４と出力波形調整部２０５と投光調整部２０７とを有する。検出部２０４は、カウンタ２０２−１、２０２−２、・・・２０２−ｎと制御部２０３とを有する。
【００１９】
比較部２０１−１〜２０１−ｎ、及び、カウンタ２０２−１〜２０２−ｎの個数ｎは、動作範囲内に設定される複数の閾値の個数に対応し、各比較部２０１−１〜２０１−ｎ及び各カウンタ２０２−１〜２０２−ｎは、各閾値に対応する。該複数の閾値は、出力信号の波形の振幅及びオフセット位置を検知するための基準値であり、動作範囲を等間隔に区切ることが望ましいが、必ずしも等間隔であることには限定されない。
【００２０】
比較部２０１−１〜２０１−ｎは、可変アンプ３００に接続されている。該比較部２０１〜２０１−ｎは、可変アンプからの出力信号を検出信号として入力し、対応する閾値との大小関係を比較し、比較結果を各々が対応する各カウンタ２０２−１〜２０２−ｎに出力する。
【００２１】
各カウンタ２０２−１〜２０２−ｎは、各々が対応する各比較部２０１−１〜２０１−ｎに接続されている。該カウンタ２０２−１〜２０２−ｎは、各々が対応する各比較部２０１−１〜２０１−ｎから入力した比較結果を基に、各閾値における検出信号と閾値との間の交点の個数、交点における検出信号の立ち上がりの個数、又は、交点における立ち下がりの個数をカウントし、カウント値を制御部２０３に送信する。すなわち、閾値毎のカウント値が、全ての閾値について制御部２０３に出力される。
【００２２】
制御部２０３は、各カウンタ２０２−１〜２０２−ｎに接続されている。該制御部２０３は、各カウンタ２０２−１〜２０２−ｎから入力されたカウント数を基に、可変ゲインアンプ３００のゲイン調整量、オフセット調整量のいずれか又はその双方を求め、それらの調整量を示す信号を出力波形調整部２０５に出力する。
【００２３】
出力波形調整部２０５は、制御部２０３に接続されている。該出力波形調整部２０５は、制御部２０３からの信号を受け取り、その信号に基づいて、可変アンプ３００のゲイン、オフセットのいずれか又はその双方を調整する。
【００２４】
更に、制御部は、各カウンタ２０２−１〜２０２−ｎから入力されたカウント数を基に、後述する方法で、投光部８００の全光源の発光量及び発光期間の少なくとも一方の設定値を求め、それらの設定値を示す信号を投光調整部２０７に出力する。
【００２５】
投光調整部２０７は、制御部２０３に接続されている。該投光調整部２０７は、制御部２０３からの信号を受け取り、その信号に基づいて、投光部８００の全光源の発光量及び発光期間の少なくとも一方を設定する。
【００２６】
（可変アンプからの出力信号のオフセット及びゲインの調整方法）
本実施形態のバーコードリーダにおける投光部の調整について説明する前に、本実施例のバーコードリーダが備える可変アンプのオフセットのずれ、可変アンプのゲインの過不足のいずれか又はその双方を検出し、可変アンプのオフセット、ゲインのいずれか又はその双方を調整可能で、かつ、投光部のＬＥＤの調整が可能である点について説明する。なお、投光部の各ＬＥＤは、後述する投光部の調整方法によって、適正に調整されたものであるとする。
【００２７】
可変アンプ３００が電圧を出力信号とし、その電圧の範囲が０Ｖ以上３Ｖ以下であり、閾値が０．５Ｖ、１．０Ｖ、１．５Ｖ、２．０Ｖ、２．５Ｖの５つであり、比較部２０１及びカウンタ２０２の個数がそれぞれ５であり、出力波形の振幅が小さい場合、及び、出力波形のオフセットが下方に外れている場合を例に説明するが、本発明の態様はこれに限定されるものではない。また、出力波形の振幅が大きい場合、及び、出力波形のオフセットが上方に外れている場合にも、以下に説明する動作と同様な動作により、可変アンプ３００の出力電圧の振幅とオフセットをそれぞれ目的の値にすることができる。
【００２８】
図７の実線は本実施形態のゲイン調整機能により（電圧）波形のゲインを調整した後の電圧波形である。図７の破線は可変アンプ３００から出力される電圧波形の振幅が小さい場合における、ゲイン調整前の電圧波形である。
【００２９】
また図８の実線部分は本実施形態のオフセット調整機能により（電圧）波形のオフセットを調整した後の電圧波形である。図８の破線は可変アンプ３００から出力される電圧波形のオフセットが下限方向に外れている場合における、オフセット調整前の電圧波形である。
【００３０】
図７及び図８の動作電圧範囲内でいくつかの閾値電圧（図７及び図８の例では、Ｖｒｅｆ１〜Ｖｒｅｆ５）を決定し、それぞれの閾値電圧と可変アンプ３００から出力される電圧波形を比較部２０１−１、２０１−２・・・２０１−ｎ（ここで、ｎ＝５）に入力する。比較部２０１−ｉ（ｉ＝１、２、・・・、ｎ（ここで、ｎ＝５））は、それぞれ、閾値電圧Ｖｒｅｆ（ｉ）（ｉ＝１、２、・・・、ｎ（ここで、ｎ＝５））と、可変アンプ３００から出力される電圧Ｖｏｕｔ（ｔ）とを比較する。閾値電圧Ｖｒｅｆ（ｉ）より可変アンプ３００から出力される電圧Ｖｏｕｔ（ｔ）の方が大きければ、比較部２０１−ｉの出力は、Ｈｉｇｈレベルとなり、可変アンプ３００から出力される電圧Ｖｏｕｔ（ｔ）より閾値電圧Ｖｒｅｆ（ｉ）の方が大きければ、比較部２０１−ｉの出力は、Ｌｏｗレベルとなる。カウンタ２０２−１、２０２−２、・・・、２０２−ｎ（ここで、ｎ＝５）は、それぞれ、比較部２０１−１・・・２０１−５から出力される波形に基づいて、比較部２０１−１・・・２０１−５から出力される波形がＬＯＷからＨＩＧＨに立ち上がる時及びＨＩＧＨからＬＯＷに立ち下がる時の双方において、カウントアップする。これは、比較部２０１の出力の立ち上がり及び立ち下がりを検出するゲートを通った信号を、カウンタ２０２としての非同期カウンタが、カウントすることによりできる。なお、カウンタ２０２−１、２０２−２、・・・、２０２−５は、それぞれ、比較部２０１−１、２０１−２、・・・、２０１−５から出力される波形に基づいて、比較部２０１−１、２０１−２、・・・２０１−５から出力される波形がＬＯＷからＨＩＧＨに立ち上がる時のみにおいて、カウントアップしてもよい。これは、比較部２０１の出力の立ち上がりを検出するゲートを通った信号を、カウンタ２０２としての非同期カウンタが、カウントすることによりできる。また、カウンタ２０２−１、２０２−２、・・・、２０２−５は、それぞれ、比較部２０１−１、２０１−２、・・・、２０１−５から出力される波形に基づいて、比較部２０１−１、２０１−２、・・・、２０１−５から出力される波形がＨＩＧＨからＬＯＷに立ち下がる時のみにおいて、カウントアップしてもよい。これは、比較部２０１の出力の立ち下がりを検出するゲートを通った信号を、カウンタ２０２としての非同期カウンタが、カウントすることによりできる。本発明で、「回数を共通に選択する」とは、例えば、全ての閾値に対して、波形がＬＯＷからＨＩＧＨに立ち上がる時及びＨＩＧＨからＬＯＷに立ち下がる時の双方において、カウントアップすることや、全ての閾値に対して、波形がＬＯＷからＨＩＧＨに立ち上がる時のみカウントアップすることや、全ての閾値に対して、波形がＨＩＧＨからＬＯＷに立ち下がる時のみカウントアップすることをいう。
【００３１】
理想的な設計上の波形は、中心電圧が動作電圧範囲の中央（図７及び図８の例では１．５Ｖ）と一致し、上側ピーク及び下側ピークが動作電圧範囲の上限及び下限近くまで届く波形である。理想的な波形を可変アンプ３００が出力できた場合は、所定期間内の各カウンタ２０２−１、２０２−２、・・・、２０２−５のカウント数は全て同じカウント数になる。
【００３２】
図７を例に、可変アンプ３００から出力される電圧波形の振幅が小さい場合について説明する。図７の時刻ｔ１から時刻ｔ２の範囲では、動作電圧範囲の中央であるＶｒｅｆ３（＝１．５Ｖ）と可変アンプ３００から出力される波形（図７の破線）の交点は３点あるので、１．５ボルトの閾値に対応するカウンタ２０２−３のカウント数は、“３”となる。しかし、この出力電圧は、常に、１ボルトを超え、また、常に、２ボルト未満である。従って、１ボルトの閾値に対応するカウンタ２０２−２及び２ボルトの閾値に対応するカウンタ２０２−４のカウント数は共に“０”となる。同様に、０．５ボルトの閾値に対応するカウンタ２０２−１及び２．５ボルトの閾値に対応するカウンタ２０２−５のカウント数も共に“０”となる。この場合、制御部２０３は、可変アンプ３００から出力された波形は、Ｖｒｅｆ３（＝１．５Ｖ）を中心に片側振幅が０．５Ｖ未満である波形と判断し、片側振幅が１．５Ｖ以上となるように、すなわち、可変アンプ３００のゲインが現状の３倍となるように、出力波形調整部２０５に制御信号を送出する。そして、出力波形調整部２０５は、可変アンプ３００のゲインが現状の３倍となるように調整をする。その結果、フィードバックを行った次のスキャンでは、可変アンプ３００の出力波形は、図７の実線であらわした波形となる。
【００３３】
しかし、例えば、可変アンプ３００から出力される波形の振幅が０．１Ｖの場合は、上記の可変アンプ３００のゲインを３倍とするためのフィードバックを行っても、カウンタ２０２−２及びカウンタ２０２−４のカウント数は“０”のままであるから、その場合は同じ処理、すなわちフィードバックを複数回繰り返す。
【００３４】
なお、例えばバーコードがない場合は、可変アンプ３００から出力される波形はないので上記のフィードバックを何度行ってもカウンタ２０２−２及びカウンタ２０２−４のカウント数は“０”のままである。これにより、無限にフィードバックを繰り返すことになってしまう。従って、この点を考慮し、フィードバックの打ち切り回数などをあらかじめ決めておく必要がある。
【００３５】
すなわち、可変アンプ３００のゲインを増加させるためのフィードバックは、カウンタ２０２−１〜２０２−ｎのカウント値が全て一致するという条件、及び、フィードバック回数が所定回数に達するという条件、のうちの一方が満たされるまで行なわれる。
【００３６】
また、１回のフィードバック当たりのゲイン調整量は、適宜、選択される。例えば、フィードバック後のゲインをフィードバック前のゲインの数パーセントから数十パーセントとして、必要に応じて、フォードバック数を増やすようにしてもよい。
【００３７】
図８を例に、可変アンプ３００から出力される電圧波形のオフセットが動作電圧範囲の中央から外れている場合について説明する。図８の例の可変アンプ３００から出力される電圧波形が破線で示しているような波形だった場合は、図８の時刻ｔ３から時刻ｔ４の範囲では、各カウンタの値については、カウンタ２０２−１に対しては“５”、カウンタ２０２−２に対しては“５”、カウンタ２０２−３に対しては“０”、カウンタ２０２−４に対しては“０”、カウンタ２０２−５に対しては“０”となる。閾値電圧Ｖｒｅｆ１及びＶｒｅｆ２に対してしか、可変アンプ３００から出力された電圧波形が交差しないため、制御部２０３は、動作電圧範囲の中央の閾値電圧Ｖｒｅｆ３よりも下の電圧を中心に振幅していると判断し、オフセットが上限側に１Ｖ加わるように出力波形調整部２０５に制御信号を送出する。そして、出力波形調整部２０５は、可変アンプ３００の出力オフセット電圧を上限側に１Ｖ加えるための制御信号を可変アンプ３００に出力する。その結果、フィードバックを行った次のスキャンでは、可変アンプ３００の出力波形は、図８の実線で示した波形になる。なお、ここで、可変アンプ３００がオフセット調整機能を有することとしている。
【００３８】
図８の破線で示したように、０Ｖ以下となった部分については、オフセット変更前はどのような波形になっているかは判断できないため、フィードバック後に更に上記と同様な判断をする。フィードバック後の可変アンプ３００の出力電圧波形の中心電圧が動作電圧範囲の中央電圧（１．５ボルト）でない場合は、更にオフセットを調整することになる。
【００３９】
オフセット調整は、可変アンプ３００の出力電圧波形の中心電圧が動作電圧範囲の中央電圧（１．５ボルト）となるように行なう。例えば、（１）閾値Ｖｒｅｆ３に対応するカウント値が所定値であり、それ以外の全ての値に対応するカウント値がゼロとなるように、（２）閾値Ｖｒｅｆ２、Ｖｒｅｆ３、Ｖｒｅｆ４に対応するカウント値が全て所定値であり、それ以外の全ての値に対応するカウント値がゼロとなるように、（３）閾値Ｖｒｅｆ１、Ｖｒｅｆ２、Ｖｒｅｆ３、Ｖｒｅｆ４、Ｖｒｅｆ５に対応するカウント値が全て所定値になるように、オフセット調整を行なう。
【００４０】
なお、例えばバーコードがない場合は、可変アンプ３００から出力される波形はないので上記のフィードバックを何度行っても上記条件（１）〜（３）の何れも満たされない。これにより、無限にフィードバックを繰り返すことになってしまう。従って、この点を考慮し、フィードバックの打ち切り回数などをあらかじめ決めておく必要がある。
【００４１】
すなわち、上記条件（１）〜（３）の何れかが満たされる時、又は、フィードバック回数が所定回数に達する時まで行なわれる。
【００４２】
また、１回のフィードバック当たりのオフセット調整量は、適宜、選択される。例えば、フィードバック後のオフセット量とフィードバック前のオフセット量との差の絶対値を０．１ボルト程度として、必要に応じて、フォードバック数を増やすようにしてもよい。なお、オフセットの調整方向は、それぞれの閾値に対応するカウント値に基づいて決定する。例えば、低い閾値に対応するカウント値が所定値であり、高い閾値に対応するカウント値がゼロであれば、オフセットをプラス方向に調整し、逆に、高い閾値に対応するカウント値が所定値であり、低い閾値に対応するカウント値がゼロであれば、オフセットをマイナス方向に調整する。
【００４３】
通常は、オフセット調整をした後にゲイン調整を行なう。すなわち、上記条件（１）〜（３）の何れかが満たされるようにオフセット調整を行ない、その後に上記条件（３）が満たされるようにゲイン調整を行なう。
【００４４】
なお、可変アンプ３００の出力の振幅が大き過ぎる場合には、全てのカウンタに対応するカウント値が等しくなり、正常であると判断する。このような場合、バーコードのデコードが可能な場合もあれば、不可能な場合もある。実用上、可変アンプ３００の出力の振幅が大き過ぎるためにバーコードのデコードが不可能な場合に、可変アンプ３００の出力の振幅を規定の振幅にするための制御をする必要があれば、０ボルトとＶｒｅｆ１の間の閾値に対応する比較部２０１とカウンタ２０２を設け、更に、Ｖｒｅｆ５と３ボルトの間の閾値に対応する比較部２０１とカウンタ２０２を設け、これらに対応するカウント値が０となるように制御を行なえばよい。すなわち、閾値Ｖｒｅｆ１、Ｖｒｅｆ２、Ｖｒｅｆ３、Ｖｒｅｆ４、Ｖｒｅｆ５に対応するカウント値が全て所定値となり、ここで追加することとした閾値に対応するカウント値が両方ともゼロとなるように制御を行なえばよい。
【００４５】
図６の構成の回路図である図９において、５つの閾値に対応する５つの各比較部２０１−１、２０１−２、・・・、２０１−５として第１のコンパレータ２０１−１、第２のコンパレータ２０１−２、・・・第５のコンパレータ２０１−５を用いている。また、調整装置２００として、ＣＰＵ７００を用いている。
【００４６】
更に、可変アンプ３００は、上述したように、オフセット調整機能とゲイン調整機能を有する。オフセット調整は、ＣＰＵ７００が、ディジタルポテンショメータ３０２−１の抵抗値を調整して、これにより、オペレーショナルアンプ３０１の非反転入力端子の中心電圧を調整することにより実現する。ゲイン調整機能は、ＣＰＵ７００が、ディジタルポテンショメータ３０２−２の抵抗値を調整し、これにより、オペレーショナルアンプの反転入力端子と出力端子との間の抵抗値を調整することにより実現する。
【００４７】
図６のカウンタ２０２−１、２０２−２、・・・、２０２―５、制御部２０３、出力波形調整部２０５は、ＣＰＵ７００に内蔵される。ここで、カウンタ２０２−１、２０２−２、・・・、２０２―５は、ＣＰＵ７００がプログラムを読み込んで実行することにより実現される。なお、ＣＰＵ７００は、カウンタ２０２−１、２０２−２、・・・、２０２―５の機能のみならず、制御部２０３、出力波形調整部２０５の機能も、プログラムを読み込んで実行することにより実現する。
【００４８】
図９の２つのディジタルポテンショメータ３０２−１及び３０２−２は、可変抵抗器の一種であり、ワイパーをディジタル信号（ＳＰＩなどのインターフェース信号など）で制御できるＩＣである。
【００４９】
動作電圧範囲内でいくつかの閾値電圧を設ける。図９の例ではＶｒｅｆ１〜Ｖｒｅｆ５、動作範囲内を０．５Ｖ刻みで閾値電圧を設ける。第１〜第５のコンパレータ２０１−１〜２０１−５は、それぞれ、Ｖｒｅｆ１からＶｒｅｆ５の閾値電圧と、可変アンプ３００の出力電圧を比較し、その比較結果を、例えば、それが出力する信号のレベル（ＬＯＷレベルとＨＩＧＨレベル）であって、ＣＰＵ７００が識別することが可能なレベルにより表すためのデバイスである。カウンタ２０２−１〜２０２−５は、上述したように、それぞれに対応するコンパレータ２０１−１〜２０１−５の出力レベルが、所定期間内にＬＯＷレベルからＨＩＧＨレベルに変化する回数、ＨＩＧＨレベルからＬＯＷレベルに変化する回数のいずれか又はそれらを合わせた回数をカウントする。なお、カウンタは上述したように、ＣＰＵ７００がプログラムを読み込んで実行することによって実現しても良いが、ＣＰＵ７００が内蔵するハードウェアによって実現してもよい。
【００５０】
第１の実施形態に示す信号処理装置の動作を、図１０を参照して説明する。
【００５１】
１）まず、制御部２０３がバーコードへの投光回数のカウントをクリアする（ステップＳ１）。
【００５２】
２）次に、バーコードへの投光回数が所定数以上である場合（ステップＳ２のＹ）、Ａを経由して、制御部２０３がデコード不可を上位装置へ送信し（ステップＳ１１）、終了する。バーコードへの投光回数が所定数未満である場合（ステップＳ２のＮ）、ステップＳ３へ移行する。
【００５３】
３）次に、投光部８００がバーコードへ投光する（ステップＳ３）。
【００５４】
４）次に、制御部２０３がバーコードへの投光回数に１を加算する（ステップＳ４）。
【００５５】
５）次に、ＣＣＤ３５０がバーコードからの反射光を受光して、ＣＰＵ７００がデコードする（ステップＳ５）。なお、ＣＣＤ３５０がバーコードからの反射光を受光して、ＣＰＵ７００がデコードするまでについては、従来技術なので省略する。
【００５６】
６）デコード出来た場合（ステップＳ６のＹ）、ＣＰＵ７００がデコード結果を上位装置へ送信し（ステップＳ１２）、終了する。デコード出来なかった場合（ステップＳ６のＮ）、ステップＳ７へ移行する。
【００５７】
７）ステップＳ７では、制御部２０３がオフセット電圧の調整が必要であるか否かを判断する。オフセット電圧の調整が必要である場合（ステップＳ７のＹ）、出力波形調整部２０５がオフセット電圧を調整し（ステップＳ８）、ステップＳ２に戻る。オフセット電圧の調整が必要でない場合（ステップＳ７のＮ）、ステップＳ９へ移行する。オフセット電圧の調整が必要であるか否かの判断と、オフセット電圧の調整の詳細については、後述する。
【００５８】
８）ステップＳ９では、制御部２０３がゲインの調整が必要であるか否かを判断する。ゲインの調整が必要である場合（ステップＳ９のＹ）、出力波形調整部２０５がゲインを調整し（ステップＳ１０）、ステップＳ２に戻る。ゲインの調整が必要でない場合（ステップＳ９のＮ）、ＣＰＵ７００がデコード不可を上位装置へ送信し（ステップＳ１１）、終了する。ゲインの調整が必要であるか否かの判断と、ゲインの調整の詳細については、後述する。
【００５９】
上記の動作手順において、オフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整と、ゲインの調整が必要であるか否かの判断とゲインの調整は、順序が逆であってもよい。
【００６０】
オフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整、及びゲインの調整が必要であるか否かの判断とゲインの調整は、以下のようにして行う。
【００６１】
ＣＣＤ３５０の動作電圧上限値をＶmax、またＣＣＤ３５０の動作電圧下限値をＶminとする。コンパレータ２０１−１のレファレンス電圧値Ｖｒｅｆ１を（Ｖmax−Ｖmin）／２−（Ｖmax−Ｖmin）／３の値とする。コンパレータ２０１−２のレファレンス電圧値Ｖｒｅｆ２を、（Ｖmax−Ｖmin）／２−（Ｖmax−Ｖmin）／６の値とする。コンパレータ２０１−３のレファレンス電圧値Ｖｒｅｆ３を、（Ｖmax−Ｖmin）／２の値とする。コンパレータ２０１−４のレファレンス電圧値Ｖｒｅｆ４を、（Ｖmax−Ｖmin）／２＋（Ｖmax−Ｖmin）／６の値とする。コンパレータ２０１−５のレファレンス電圧値Ｖｒｅｆ５を、（Ｖmax−Ｖmin）／２＋（Ｖmax−Ｖmin）／３とする。また、コンパレータ２０１−１に対応するカウンタ２０２−１のカウント数をＣＰ１、コンパレータ２０１−２に対応するカウンタ２０２−２のカウント数をＣＰ２、コンパレータ２０１−３に対応するカウンタ２０２−３のカウント数をＣＰ３、コンパレータ２０１−４に対応するカウンタ２０２−４のカウント数をＣＰ４、コンパレータ２０１−５に対応するカウンタ２０２−５のカウント数をＣＰ５とする。
【００６２】
オフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整は、以下のように場合分けされて処理される。
【００６３】
（ｉ−１）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３＝０、ＣＰ４＝０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ４を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ５−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を（現在値）−（Ｖｒｅｆ５−Ｖmin）／２に設定する。
【００６４】
（ｉ−２）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３＝０、ＣＰ４≠０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ３を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ４−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を（現在値）−（Ｖｒｅｆ４−Ｖmin）／２に設定する。
【００６５】
（ｉ−３）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３≠０、ＣＰ４≠０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ３−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を、（現在値）−（Ｖｒｅｆ３−Ｖmin）／２に設定する。
【００６６】
（ｉ−４）ＣＰ１≠０、ＣＰ２＝０、ＣＰ３＝０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ１）／２だけ下側にずれていると判断し、オフセット電圧を、（現在値）＋（Ｖmax−Ｖｒｅｆ１）／２に設定する。
【００６７】
（ｉ−５）ＣＰ１≠０、ＣＰ２≠０、ＣＰ３＝０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ３未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ２）／２だけ下側にずれていると判断し、オフセット電圧を、（現在値）＋（Ｖmax−Ｖｒｅｆ２）／２に設定する。
【００６８】
（ｉ−６）ＣＰ１≠０、ＣＰ２≠０、ＣＰ３≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ３）／２だけ下側にずれていると判断し、オフセット電圧を、（現在値）＋（Ｖmax−Ｖｒｅｆ３）／２に設定する。
【００６９】
（ｉ−７）上記（ｉ−１）〜（ｉ−６）以外の場合は、制御部２０３が、オフセット電圧の調整は不要と判断する。
【００７０】
ゲインの調整が必要であるか否かの判断とゲインの調整は、以下のように場合分けされて処理される。
【００７１】
（ｉｉ−１）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ２を超えＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／３倍であるものと判断し、ゲインを（現在値）×３に設定する。
【００７２】
（ｉｉ−２）ＣＰ１＝０、ＣＰ２≠０、ＣＰ３≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ１を超えＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１．５／２．５倍であるものと判断し、ゲインを、（現在値）×２．５／１．５に設定する。
【００７３】
（ｉｉ−３）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３≠０、ＣＰ４≠０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ２を超えＶｒｅｆ５未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１．５／２．５倍であるものと判断し、ゲインを、（現在値）×２．５／１．５に設定する。
【００７４】
（ｉｉ−４）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３＝０、ＣＰ４≠０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ３を超えＶｒｅｆ５未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／２倍であるものと判断し、ゲインを、（現在値）×２に設定する。
【００７５】
（ｉｉ−５）ＣＰ１＝０、ＣＰ２≠０、ＣＰ３＝０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ１を超えＶｒｅｆ３未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／２倍であるものと判断し、ゲインを、（初期値）×２に設定する。
【００７６】
（ｉｉ−６）上記（ｉｉ−１）〜（ｉｉ−５）以外の場合は、制御部２０３が、ゲインの調整は不要と判断する。
【００７７】
なお、ＣＰ１〜ＣＰ５のカウント数については、ノイズの影響を除去するため、所定数（例えば、バーコードの反射光から得られる各カウンタのカウント数の最大値の１０％程度の数）以下の場合は、０とみなす。
【００７８】
（第１の変形例）
ここで、上記の可変アンプからの出力信号のオフセット及びゲインの調整方法における変形例を示す。
【００７９】
本発明の第１の変形例は、図９に示された第１の実施形態に類似するが、第１の変形例では、第１の実施形態における中心の閾値、及びそれに対応するコンパレータ２０１−３及びカウンタ２０２−３が存在せず、４つの閾値に対応する４つの各比較部としてコンパレータ２０１−１、コンパレータ２０１−２、コンパレータ２０１−４、コンパレータ２０１−５を用いている。また、信号処理装置２００として、ＣＰＵ２００を用いている。
【００８０】
さらに、図６のカウンタ２０２−１、２０２−２、２０２−４、２０２―５、制御部２０３、出力波形調整部２０５は、ＣＰＵ７００に内蔵される。ここで、カウンタ２０２−１、２０２−２、２０２−４、２０２―５は、ＣＰＵ７００がプログラムを読み込んで実行することにより実現される。なお、ＣＰＵ７００は、カウンタ２０２−１、２０２−２、２０２−４、２０２―５の機能のみならず、制御部２０３、出力波形調整部２０５の機能も、プログラムを読み込んで実行することにより実現する。
【００８１】
第１の変形例で開示される信号処理装置は、第１の実施形態と同様、図１０に示されるフローチャートに従って動作する。
【００８２】
第１の変形例のバーコードリーダのオフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整、及びゲインの調整が必要であるか否かの判断とゲインの調整は、第１の実施形態のバーコードリーダのものとは異なり、以下のようにして行う。
【００８３】
ＣＣＤ３５０の動作電圧上限値をＶmax、またＣＣＤ３５０の動作電圧下限値をＶminとする。コンパレータ２０１−１のレファレンス電圧値Ｖｒｅｆ１を（Ｖmax−Ｖmin）／２−（Ｖmax−Ｖmin）／３の値とする。コンパレータ２０１−２のレファレンス電圧値Ｖｒｅｆ２を、（Ｖmax−Ｖmin）／２−（Ｖmax−Ｖmin）／６の値とする。中間値Ｖ３を、（Ｖmax−Ｖmin）／２の値とする。コンパレータ２０１−４のレファレンス電圧値Ｖｒｅｆ４を、（Ｖmax−Ｖmin）／２＋（Ｖmax−Ｖmin）／６の値とする。コンパレータ２０１−５のレファレンス電圧値Ｖｒｅｆ５を、（Ｖmax−Ｖmin）／２＋（Ｖmax−Ｖmin）／３とする。また、コンパレータ２０１−１のカウント数をＣＰ１、コンパレータ２０１−２のカウント数をＣＰ２、コンパレータ２０１−４のカウント数をＣＰ４、コンパレータ２０１−５のカウント数をＣＰ５とする。
【００８４】
オフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整は、以下のように場合分けされて処理される。
【００８５】
（ｉ−１）ＣＰ１＝０、ＣＰ２＝０、ＣＰ４＝０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ４を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ５−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を（現在値）−（Ｖｒｅｆ５−Ｖmin）／２に設定する。
【００８６】
（ｉ−２）ＣＰ１＝０、ＣＰ２＝０、ＣＰ４≠０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ３−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を（現在値）−（Ｖｒｅｆ３−Ｖmin）／２に設定する。
【００８７】
（ｉ−３）ＣＰ１≠０、ＣＰ２＝０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ１）／２だけ下側にずれていると判断し、オフセット電圧を（現在値）＋（Ｖmax−Ｖｒｅｆ１）／２に設定する。
【００８８】
（ｉ−４）ＣＰ１≠０、ＣＰ２≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ３）／２だけ下側にずれていると判断し、オフセット電圧を（現在値）＋（Ｖmax−Ｖｒｅｆ３）／２に設定する。
【００８９】
（ｉ−５）上記（ｉ−１）〜（ｉ−４）以外の場合は、制御部２０３が、オフセット電圧の調整は不要と判断する。
【００９０】
ゲインの調整が必要であるか否かの判断とゲインの調整は、以下のように場合分けされて処理される。
【００９１】
（ｉｉ−１）ＣＰ１＝０、ＣＰ２＝０、ＣＰ４≠０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２を超えＶｒｅｆ５未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／２倍であるものと判断し、ゲインを（現在値）×２に設定する。
【００９２】
（ｉｉ−２）ＣＰ１＝０、ＣＰ２≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ１を超えＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／２倍であるものと判断し、ゲインを（現在値）×２に設定する。
【００９３】
（ｉｉ−３）上記（ｉｉ−１）〜（ｉｉ−２）以外の場合は、制御部２０３が、ゲインの調整は不要と判断する。
【００９４】
なお、ＣＰ１、ＣＰ２、ＣＰ４、ＣＰ５のカウント数については、ノイズの影響を除去するため、所定数（例えば、バーコードの反射光から得られる各カウンタのカウント数の最大値の１０％程度の数）以下の場合は、０とみなす。
【００９５】
上記第１の実施形態と第１の変形例では、Ｖｒｅｆ２をＣＣＤ動作電圧の中心値より、（Ｖmax−Ｖmin）／６だけ低い電圧に、Ｖｒｅｆ４をＣＣＤ動作電圧の中心値より、（Ｖmax−Ｖmin）／６だけ高い電圧に設定したが、その前後の電圧値としてもよい。また、Ｖｒｅｆ１をＣＣＤ動作電圧の中心値より、（Ｖmax−Ｖmin）／３だけ低い電圧に、Ｖｒｅｆ５をＣＣＤ動作電圧の中心値より、（Ｖmax−Ｖmin）／３だけ高い電圧に設定したが、その前後の電圧値としてもよい。
【００９６】
第１の変形例における可変アンプからの出力信号のオフセット及びゲインの調整方法は、上記の通りである。
【００９７】
上記第１の変形例を含む第１の実施形態では、ゲイン及びオフセットを調整するためにディジタルポテンショメータを用いているが、抵抗とアナログスイッチを用いてフィードバック量を決定することも可能である。例えば、ラダー抵抗に含まれる直列に相互に接続される複数の抵抗素子の一部をアナログスイッチにより短絡すればよい。抵抗値が変更できれば、手段はディジタルポテンショメータに限らない。
【００９８】
また、上記第１の変形例を含む第１の実施形態では、制御部及び出力波形調整部がＣＰＵに内蔵されているが、制御部及び出力波形調整部をＣＰＵ外部に設けても実現することは可能である。つまり、ソフトウェアを用いずに、ハードウェアのみによっても、制御部を実現することもできる。
【００９９】
（投光部の調整方法）
次に、図７，図９，図１１を参照して、第１の変形例を含む第１の実施形態のバーコードリーダにおける投光部の調整について説明する。なお、投光部の光源としてＬＥＤを用いた場合を例に説明するが、本発明の実施形態はこれに限られるものではない。
【０１００】
まず、調整の考え方について記す。
【０１０１】
図９において、コンパレータ２０１−２のレファレンス電圧Ｖｒｅｆ２は、当該バーコードリーダが黒色バーを検出したときの検出信号の出力波形の限界値（これより上の電圧であってはならない値）に設定されている。図９の場合は、１．０Ｖである。コンパレータ２０１−１のレファレンス電圧Ｖｒｅｆ１は、コンパレータ２０１−２のレファレンス電圧Ｖｒｅｆ２より所定値だけ低い電圧に設定されている。図９の場合は、０．５Ｖである。
【０１０２】
コンパレータ２０１−４のレファレンス電圧Ｖｒｅｆ４は、当該バーコードリーダが白色バーを検出したときの検出信号の出力波形の限界値（これより下の電圧であってはならない値）に設定されている。図９の場合は、２．０Ｖである。コンパレータ２０１−５のレファレンス電圧Ｖｒｅｆ５は、コンパレータ２０１−４のレファレンス電圧Ｖｒｅｆ４より所定値だけ高い電圧に設定されている。図９の場合は、２．５Ｖである。
【０１０３】
図７において、各ＬＥＤからバーコードに適正に投光された場合（実線の出力波形）は、コンパレータ２０１−２、及びコンパレータ２０１−４のそれぞれのレファレンス電圧Ｖｒｅｆ２及びＶｒｅｆ４と、すべての白色バーと黒色バーに対応する出力波形とが交差する。図７の場合では、コンパレータ２０１−１、及びコンパレータ２０１−５のそれぞれのレファレンス電圧Ｖｒｅｆ１及びＶｅｒｆ５と、すべての白色バーと黒色バーに対応する出力波形とが交差している。バーコードへの投光が不適正であって光量不足となった箇所がある場合は、図７のゲイン不足の出力波形の場合（破線の出力波形）と同様に、コンパレータ２０１−２、及びコンパレータ２０１−４のそれぞれのレファレンス電圧Ｖｒｅｆ２及びＶｒｅｆ４と、出力波形とが交差しない箇所が出てくる。
【０１０４】
調整時に用いる白色バーと黒色バーが等間隔のバーパターンや所定のバーコードの白色バーと黒色バーの数は、予め、分かっている。これに基づいて、すべての白色バーと黒色バーに対応する検出信号の出力波形と各コンパレータのレファレンス電圧とが交差すると仮定した時の個数（以後、「全理想交点数」と記す。）を知ることができる。この全理想交点数と、各コンパレータに対応するカウンタの実測値とを比較すれば、すべての白色バーと黒色バーに対応する検出信号の出力波形とコンパレータの電圧とが交差したか否かがわかる。全理想交点数と各コンパレータに対応するカウンタの実測値が等しければ、すべての白色バーと黒色バーに対応する検出信号の出力波形と各コンパレータのレファレンス電圧とが交差したことになる。全理想交点数より各コンパレータに対応するカウンタの実測値が小さければ、出力波形と各コンパレータの電圧とが交差していない箇所があることになる。具体的には、コンパレータ２０１−２に対応するカウンタの実測値と全理想交点数、及びコンパレータ２０１−４に対応するカウンタの数の各々と全理想交点数が等しければ、各ＬＥＤからバーコードに適正に投光されたことになり、さらに、コンパレータ２０１−１に対応するカウンタの実測値と全理想交点数、及びコンパレータ２０１−５に対応するカウンタの数と全理想交点数が等しければ、各ＬＥＤからバーコードに、より適正に投光されたことになる。なお、「全理想交点数」は、すべての理想交点数ではなく、出力信号の立ち上がり時の交点の個数、又は、立ち下がり時の交点の個数であってもよい。
【０１０５】
次に、調整の手順について記す。
【０１０６】
（１）各ＬＥＤについての設定範囲の決定
各ＬＥＤについて、本実施例では、図２のＬＥＤ１〜ＬＥＤ４について、設定範囲を決定する。ここで、ＣＣＤはバーコードラベルからの反射光により発生した電荷を蓄積することが可能である（つまり、バーコードの各位置からの反射光の強度に対応した信号を位置毎に時間積分することが可能である）。従って、ＬＥＤの発光量を調整することにより、オペレーショナルアンプ３０１からの出力電圧を調整することもできるが、この他に、ＬＥＤの発光期間を調整することにより、オペレーショナルアンプ３０１からの出力電圧を調整することもでき、更には、ＬＥＤの発光量及び発光期間の組合せを調整することによっても、オペレーショナルアンプ３０１からの出力電圧を調整することもできる。
【０１０７】
従って、前述の設定範囲の対象は、調整対象により異なる。個々のＬＥＤに着目すると、ＬＥＤの発光量が調整対象であれば、設定範囲の対象も発光量である。ＬＥＤの発光時間が調整対象であれば、設定範囲の対象も発光時間である。ＬＥＤの発光量及び発光時間の組合せが調整対象であれば、設定範囲の対象も発光量及び発光時間の組合せである。複数のＬＥＤ間で調整範囲は、共通であってもよいし、個々のＬＥＤ毎に異なっていてもよい。
【０１０８】
設定範囲は、設計値、従来のデータ等を参照して設定する。また、設定範囲の中心値には、適正な投光量を期待できる値を対応させるようにしてもよいし、それからずらしてもよい。また、設定範囲の広さは、素子寿命、線形動作範囲、消費電力、適正値の予想分布範囲などを考慮して決定してもよい。
【０１０９】
（２）試行条件の設定
以下のＡ、Ｂのいずれかで、試行条件を設定する。
【０１１０】
Ａ）（１）項の設定範囲内で、各ＬＥＤに対する設定値を設け、これらの設定値のＬＥＤ１〜ＬＥＤ４の間で取った組合せを１つの試行条件とする。設定範囲内（例えば、ＬＥＤ毎の設定範囲の組合せの全部又は一部）で、設定値を異ならせることにより、複数の試行条件を設ける。
【０１１１】
Ｂ）ＬＥＤ１〜ＬＥＤ４について、（１）項の設定範囲内で、それぞれのＬＥＤに対して、電流量及び発光期間のうち少なくとも一方の初期設定値、及び、設定値を変化させるステップ値を決定する。ステップ値は、ＬＥＤ１〜ＬＥＤ４について、すべて共通でもよいし、異なるものであってもよい。また、初期設定値を低く設定し、ステップ値を加算することにより設定値を変化させてもよい。あるいは、初期設定値を高く設定し、ステップ値を減算することにより設定値を変化させてもよい。この場合、試行条件の数は、ＬＥＤ１〜ＬＥＤ４それぞれの設定範囲、初期設定値、ステップ値に依存する。具体的な一例として、ＬＥＤ１〜ＬＥＤ４のそれぞれの設定範囲を、ｓ１min〜ｓ１max、ｓ２min〜ｓ２max、ｓ３min〜ｓ３max、ｓ４min〜ｓ４max、それぞれのステップ値を、ｖ１、ｖ２、ｖ３、ｖ４とした場合、ＬＥＤ１＝｛ｓ１min、ｓ１min＋ｖ１、ｓ１min＋ｖ１×２、・・・、ｓ１max｝、ＬＥＤ２＝｛ｓ２min、ｓ２min＋ｖ２、ｓ２min＋ｖ２×２、・・・、ｓ２max｝、ＬＥＤ３＝｛ｓ３min、ｓ３min＋ｖ３、ｓ３min＋ｖ３×２、・・・、ｓ３max｝、ＬＥＤ４＝｛ｓ４min、ｓ４min＋ｖ４、ｓ４min＋ｖ４×２、・・・、ｓ４max｝の全ての｛ＬＥＤ１、ＬＥＤ２、ＬＥＤ３、ＬＥＤ４｝の組み合わせを試行条件として生成しても良い。すなわち、各ＬＥＤ毎の設定範囲、初期設定値、ステップ値のみを予め決定することにより、各ＬＥＤ毎にステップ値を加算しながら、｛ＬＥＤ１、ＬＥＤ２、ＬＥＤ３、ＬＥＤ４｝＝｛ｓ１min、ｓ２min、ｓ３min、ｓ４min｝、｛ｓ１min＋ｖ１、ｓ２min、ｓ３min、ｓ４min｝、｛ｓ１min＋ｖ１×２、ｓ２min、ｓ３min、ｓ４min｝・・・｛ｓ１max、ｓ２min、ｓ３min、ｓ４min｝、｛ｓ１min、ｓ２min＋ｖ２、ｓ３min、ｓ４min｝、｛ｓ１min＋ｖ１、ｓ２min＋ｖ２、ｓ３min、ｓ４min｝、｛ｓ１min＋ｖ１×２、ｓ２min＋ｖ２、ｓ３min、ｓ４min｝・・・｛ｓ１max、ｓ２min＋ｖ２、ｓ３min、ｓ４min｝・・・｛ｓ１max、ｓ２max、ｓ３max、ｓ４max｝の全てを試行条件として生成してもよい。
【０１１２】
（３）試行条件の記憶
（２）項で設定した試行条件を、外部装置より、バーコードリーダの図示しない通信部を介して、投光部の調整を行うバーコードリーダのメモリに記憶する。なお、上記Ｂ）項の場合は、ＬＥＤ１〜ＬＥＤ４それぞれの設定範囲、初期設定値、ステップ値をバーコードリーダに記憶し、バーコードリーダが試行条件を設定するようにしてもよい。
【０１１３】
（４）試行
以下、投光部の調整のための試行と各ＬＥＤの設定値の決定のための動作を、図１１のフローチャートに従って説明する。
【０１１４】
４−１）投光部の調整を行うバーコードリーダを、所定の位置に白色バーと黒色バーが等間隔のバーパターンもしくは所定のバーコードが配置してあり、外光を遮断可能であるボックス内に固定する。バーコードリーダは、図示しない通信部を有し、ボックス外の外部装置と有線もしくは無線で通信可能である。
【０１１５】
４−２）外部装置より、バーコードリーダに試行を指示する。
【０１１６】
４−３）バーコードリーダは、（３）項で記憶した試行条件の数だけ、投光調整部２０７によって各ＬＥＤの設定値を変更しながら試行を行い、検出信号の出力波形が、コンパレータ２０１−１，２０１−２，２０１−４，及び２０１−５それぞれのレファレンス電圧Ｖｒｅｆ１、Ｖｒｅｆ２、Ｖｒｅｆ４、及びＶｒｅｆ５と交差したカウント数であるＣＰ１、ＣＰ２、ＣＰ４、及びＣＰ５のそれぞれを、カウンタ２０２−１，２０２−２，２０２−４，及び２０２−５に記憶する（図１１、ステップＳ１０１）。
【０１１７】
（５）各ＬＥＤの設定値の決定
５−１）バーコードリーダは、４−２）項の試行で得られたデータから、コンパレータ２０１−２，及び２０１−４のそれぞれに対応するカウンタ値ＣＰ２及びＣＰ４の各々と全理想交点数とが等しい試行条件があるか否かを判断する（図１１、ステップＳ１０２）。
【０１１８】
５−２）バーコードリーダは、コンパレータ２０１−２及び２０１−４のそれぞれに対応するカウンタ値ＣＰ２及びＣＰ４の各々と全理想交点数とが等しい試行条件がない場合（ステップＳ１０２でＮｏ）、調整不可である旨を外部装置に出力し、終了する（図１１、ステップＳ１０７）。この時、バーコードリーダを識別可能なＩＤ番号と、試行時のすべてのデータを外部装置に出力するようにしてもよい。
【０１１９】
５−３）バーコードリーダは、コンパレータ２０１−２及び２０１−４のそれぞれに対応するカウンタ値ＣＰ２及びＣＰ４の各々と全理想交点数とが等しい試行条件がある場合（ステップＳ１０２でＹｅｓ）、その試行条件においてコンパレータ２０１−１及び２０１−５に対応するカウンタ値ＣＰ１及びＣＰ５の各々と全理想交点数とが等しいか否かを判断する（図１１、ステップＳ１０３）。
【０１２０】
５−４）バーコードリーダは、コンパレータ２０１−１及び２０１−５のそれぞれに対応するカウンタ値ＣＰ１及びＣＰ５の各々と全理想交点数とが等しい試行条件が無い場合（ステップＳ１０３でＮｏ）、コンパレータ２０１−２及び２０１−４のそれぞれに対応するカウンタ値ＣＰ２及びＣＰ４と全理想交点数とが等しい試行条件が一つであれば、その試行条件の設定値を、バーコードリーダ稼働時のＬＥＤ１〜ＬＥＤ４の設定値として決定し、バーコードリーダのメモリに記憶する（図１１、ステップＳ１０４）。等しい試行条件が複数であれば、それらの試行条件のうち最も消費電力の少ない試行条件の設定値を、バーコードリーダ稼働時のＬＥＤ１〜ＬＥＤ４の設定値として決定し、バーコードリーダのメモリに記憶する（図１１、ステップＳ１０４）。その後、調整が終了した旨を外部装置に出力（図１１、ステップＳ１０６）し、終了する。この時、バーコードリーダを識別可能なＩＤ番号と、試行時のすべてのデータを外部装置に出力するようにしてもよい。また、実際のカウント値ＣＰ１及びＣＰ２も出力するようにしてもよいし、ステップＳ１０４を経由して出力していることを判別できるような情報を出力してもよい。
【０１２１】
５−５）バーコードリーダは、コンパレータ２０１−１及び２０１−５のそれぞれに対応するカウンタ値ＣＰ１及びＣＰ５の各々と全理想交点数とが等しい試行条件が有る場合、等しい試行条件が一つであれば、その試行条件の設定値を、バーコードリーダ稼働時のＬＥＤ１〜ＬＥＤ４の設定値として決定し、バーコードリーダのメモリに記憶する。等しい試行条件が複数であれば、最も消費電力の少ない試行条件の設定値を、バーコードリーダ稼働時のＬＥＤ１〜ＬＥＤ４の設定値として決定し、バーコードリーダのメモリに記憶する（図１１、ステップＳ１０５）。その後、調整が終了した旨を外部装置に出力（図１１、ステップＳ１０６）し、終了する。この時、バーコードリーダを識別可能なＩＤ番号と、試行時のすべてのデータを外部装置に出力するようにしてもよい。また、実際のカウント値ＣＰ１及びＣＰ２も出力するようにしてもよいし、ステップＳ１０５を経由して出力していることを判別できるような情報を出力してもよい。
【０１２２】
個々のＬＥＤ自体の発光量や発光方向等のばらつきのみならず、ＬＥＤから発せられる投光間の相互の干渉によって、バーコードラベル面において光量分布に大きなムラが生じる試行条件においては、各コンパレータに対応する各カウンタの実測値と全理想交点数とが一致しない。本実施においては、干渉が生じえる条件下での光量分布に当該大きなムラが生じない設定値の組がバーコードリーダ稼働時の設定値の組として記憶されるため、複数のＬＥＤからの光の間の相互の干渉による影響も考慮した上で、投光部の投光量調整を行うことが可能である。
【０１２３】
［第２の実施形態］
第１の実施形態は、可変アンプのオフセットのずれ、可変アンプのゲインの過不足のいずれか又はその双方を検出し、可変アンプのオフセット、ゲインのいずれか又はその双方を調整可能で、かつ、投光部のＬＥＤの調整が可能であった。一方、第２の実施形態は、可変アンプのオフセットのずれ、可変アンプのゲインの過不足のいずれか又はその双方を検出し、可変アンプのオフセット、ゲインのいずれか又はその双方を調整する機能は備えず、投光部のＬＥＤの調整のみが可能である。
【０１２４】
第２の実施形態は、図９において、以下の点が異なる。
【０１２５】
１）ディジタルポテンショメータ３０２−１（ＤＰＭ１）は備えず、代わりに固定抵抗を備える。また、ディジタルポテンショメータ３０２−１（ＤＰＭ１）制御のための信号線は備えない。
【０１２６】
２）ディジタルポテンショメータ３０２−２（ＤＰＭ２）は備えず、代わりに固定抵抗を備える。また、ディジタルポテンショメータ３０２−２（ＤＰＭ２）制御のための信号線は備えない。
【０１２７】
３）コンパレータ２０１−３、カウンタ２０２−３は備えない。
【０１２８】
上記第１の変形例を含む第１の実施形態、及び第２の実施形態では、動作電圧の下限とコンパレータ２０１−２のレファレンス電圧Ｖｒｅｆ２との間に、コンパレータ２０１−１を、動作電圧の上限とコンパレータ２０１−４のレファレンス電圧Ｖｒｅｆ４との間に、コンパレータ２０１−５を設けていたが、さらに、それぞれ１つ以上のコンパレータを設け、より適正な条件を選択できるようにしてもよい。
【０１２９】
上記第１の変形例を含む第１の実施形態、及び第２の実施形態では、コンパレータから出力されるパルス波をＣＰＵ内蔵のカウンタを使用してカウントしているが、カウンタをＣＰＵ外部に設けても実現することは可能である。
【０１３０】
上記第１の変形例を含む第１の実施形態、及び第２の実施形態では、ハードウェア構成のコンパレータを用いて閾値電圧と比較をしているが、可変アンプ３００から出力される電圧波形の電圧値はメモリに内蔵されているため、ソフトウェアを用いてコンパレータと同じ処理をすることも可能である。つまり、ハードウェア構成のコンパレータの機能を、ＣＰＵがプログラムを読み込んで実行することによっても実現することができる。具体的には、ＣＰＵが可変アンプ３００の出力電圧をＡ／Ｄ変換器により読み込んで、Ａ／Ｄ変換器の出力である電圧を表す数値と、閾値電圧を表す数値とを比較することにより、可変アンプ３００の出力電圧と閾値電圧との比較をすることができる。
【０１３１】
本発明においては、上記の構成により、光源として複数のＬＥＤを使用する投光部を有するバーコードリーダにおいて、ＬＥＤ間の干渉の影響も考慮した、投光部の投光量調整を行うことができるバーコードリーダを提供することができる。
【０１３２】
なお、上記のコード読取装置の各部分は、ハードウェア、ソフトウェアのいずれか又はこれらの組み合わせにより実現することができる。また、上記の信号処理装置により行われる信号処理方法も、ハードウェア、ソフトウェアのいずれか又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１３３】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory)）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１３４】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されるが、以下には限られない。
【０１３５】
（付記１）
複数の光源を備える投光手段と、
前記投光手段によってスキャンされたコードによって変化した光を読み取るセンサと、
前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較する比較手段と、
各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定する投光手段調整手段と、
を備えることを特徴とするコード読取装置。
【０１３６】
（付記２）
付記１に記載のコード読取装置であって、
前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であることを特徴とするコード読取装置。
【０１３７】
（付記３）
付記２に記載のコード読取装置であって、
前記交差数における交差とは、前記検出信号のレベルが前記閾値を下回るレベルからその閾値を上回るレベルに変化する事象、前記検出信号のレベルが前記閾値を上回るレベルからその閾値を下回るレベルに変化する事象のうちの双方又は何れか一方であることを特徴とするコード読取装置。
【０１３８】
（付記４）
付記２又は３に記載のコード読取装置であって、
前記所定の閾値とは、前記複数の閾値のうちの中心の閾値から両側においてそれぞれ数えた１番目から所定番目の閾値であることを特徴とするコード読取装置。
【０１３９】
（付記５）
付記１乃至４の何れか１に記載のコード読取装置であって、
前記投光手段調整手段は、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せが複数検出された場合には、それらの組合せのうち、消費電力が最も少ない組合せを前記複数の光源に設定することを特徴とするコード読取装置。
【０１４０】
（付記６）
付記１乃至５の何れか１に記載のコード読取装置であって、
前記センサからの読取信号を入力信号とし、前記検出信号を出力信号とし、オフセットとゲインを調整することが可能な可変アンプと、
前記投光手段調整手段による前記複数の光源の調整後に、前記比較手段が、前記可変アンプからの前記出力信号のレベルを前記複数の閾値と比較した再度の比較結果を用いて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出し、該検出結果に基づいて、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整するアンプ調整手段と、
を更に備えることを特徴とするコード読取装置。
【０１４１】
（付記７）
付記６に記載のコード読取装置において、
前記再度の比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記可変アンプからの出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記可変アンプからの出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから選択された回数を利用することを特徴とするコード読取装置。
【０１４２】
（付記８）
複数の光源を備える投光手段が、コードをスキャンするステップと、
センサが、前記スキャンされたコードによって変化した光を読み取るステップと、
比較手段が、前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較するステップと、
投光手段調整手段が、各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定するステップと、
を有することを特徴とするコード読取方法。
【０１４３】
（付記９）
付記８に記載のコード読取方法であって、
前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であることを特徴とするコード読取方法。
【０１４４】
（付記１０）
付記９に記載のコード読取方法であって、
前記交差数における交差とは、前記検出信号のレベルが前記閾値を下回るレベルからその閾値を上回るレベルに変化する事象、前記検出信号のレベルが前記閾値を上回るレベルからその閾値を下回るレベルに変化する事象のうちの双方又は何れか一方であることを特徴とするコード読取方法。
【０１４５】
（付記１１）
付記９又は１０に記載のコード読取方法であって、
前記所定の閾値とは、前記複数の閾値のうちの中心の閾値から両側においてそれぞれ数えた１番目から所定番目の閾値であることを特徴とするコード読取装置。
【０１４６】
（付記１２）
付記８乃至１１の何れか１に記載のコード読取方法であって、
前記投光手段調整手段は、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せが複数検出された場合には、それらの組合せのうち、消費電力が最も少ない組合せを前記複数の光源に設定することを特徴とするコード読取方法。
【０１４７】
（付記１３）
付記８乃至１２の何れか１に記載のコード読取方法であって、
アンプ調整手段が、前記投光手段調整手段による前記複数の光源の調整後に、前記センサからの読取信号を入力信号とし、前記検出信号を出力信号とし、オフセットとゲインを調整することが可能な可変アンプからの前記出力信号のレベルを、前記比較手段が前記複数の閾値と比較した再度の比較結果を用いて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出し、該検出結果に基づいて、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整するステップを更に有することを特徴とするコード読取方法。
【０１４８】
（付記１４）
付記１３に記載のコード読取方法であって、
前記再度の比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記可変アンプからの出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記可変アンプからの出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから選択された回数を利用することを特徴とするコード読取方法。
【０１４９】
（付記１５）
複数の光源を備える投光手段と、前記投光手段によってスキャンされたコードによって変化した光を読み取るセンサとを備えるコード読取装置として、コンピュータを機能させるためのコード読取用プログラムであって、
コンピュータを、
前記センサからの読取信号に基づいた検出信号のレベルを複数の閾値と比較する比較手段と、
各光源の発光量及び発光期間のうちの一方又は双方についての前記複数の光源の間で取った組合せと、前記比較手段による比較結果との対応関係を、複数の前記組合せについて調べ、前記投光手段の投光量の不足を示さない前記比較結果に対応する前記組合せを前記複数の光源に設定する投光手段調整手段と、
として機能させるためのコード読取用プログラム。
【０１５０】
（付記１６）
付記１５に記載のコード読取用プログラムであって、
前記投光手段の投光量の不足を示さない比較結果とは、前記複数の閾値のうちの少なくとも一部の閾値に含まれる閾値毎のその閾値と前記検出信号との間の交差数に関するものであり、前記コードのパターンに対応して期待される所定の交差数と、前記コードのパターンに対応して実測された交差数とが一致することが、前記複数の閾値のうちの前記少なくとも一部の閾値に含まれる所定の閾値に対して満たされているという比較結果であることを特徴とするコード読取用プログラム。
【０１５１】
（付記１７）
付記１６に記載のコード読取用プログラムであって、
前記交差数における交差とは、前記検出信号のレベルが前記閾値を下回るレベルからその閾値を上回るレベルに変化する事象、前記検出信号のレベルが前記閾値を上回るレベルからその閾値を下回るレベルに変化する事象のうちの双方又は何れか一方であることを特徴とするコード読取用プログラム。
【０１５２】
（付記１８）
付記１６又は１７に記載のコード読取用プログラムであって、
前記所定の閾値とは、前記複数の閾値のうちの中心の閾値から両側においてそれぞれ数えた１番目から所定番目の閾値であることを特徴とするコード読取用プログラム。
【０１５３】
（付記１９）
付記１５乃至１８の何れか１に記載のコード読取用プログラムであって、
前記投光手段調整手段は、前記投光手段の投光の不足を示さない前記比較結果に対応する前記組合せが複数検出された場合には、それらの組合せのうち、消費電力が最も少ない組合せを前記複数の光源に設定することを特徴とするコード読取用プログラム。
【０１５４】
（付記２０）
付記１５乃至１９の何れか１に記載のコード読取用プログラムであって、
前記投光手段調整手段による前記複数の光源の調整後に、前記センサからの読取信号を入力信号とし、前記検出信号を出力信号とし、オフセットとゲインを調整することが可能な可変アンプからの前記出力信号のレベルを、前記比較手段が前記複数の閾値と比較した再度の比較結果を用いて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出し、該検出結果に基づいて、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整するアンプ調整手段として更にコンピュータを機能させることを特徴とするコード読取用プログラム。
【０１５５】
（付記２１）
付記２０に記載のコード読取用プログラムであって、
前記再度の比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記可変アンプからの出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記可変アンプからの出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから選択された回数を利用することを特徴とする読取用プログラム。
【産業上の利用可能性】
【０１５６】
センサ等を用いて同じデータ（本発明でのバーコード等）から、アナログ信号を連続して出力する装置に応用可能である。
【符号の説明】
【０１５７】
１００  コード読取装置
２００  調整装置
２０１−１  比較部
２０１−２  比較部
２０１−ｎ  比較部
２０２−１  カウンタ
２０２−２  カウンタ
２０２−ｎ  カウンタ
２０３  制御部
２０４  検出部
２０５  出力波形調整部
２０７  投光調整部
３００  可変アンプ
３０１  オペレーショナルアンプ
３０２−１  ディジタルポテンショメータ
３０２−２  ディジタルポテンショメータ
３５０  センサ
４００  ＡＤＣ（アナログ・ディジタル変換器）
５００  メモリ
６００−１  ＳＰＩ／ＧＰＩＯ
６００−２  ＳＰＩ／ＧＰＩＯ
７００  ＣＰＵ
８００  投光部
【図１】
0005892625.tif 000002
【図２】
0005892625.tif 000003
【図３】
0005892625.tif 000004
【図４】
0005892625.tif 000005
【図５】
0005892625.tif 000006
【図６】
0005892625.tif 000007
【図７】
0005892625.tif 000008
【図８】
0005892625.tif 000009
【図９】
0005892625.tif 000010
【図１０】
0005892625.tif 000011
【図１１】
0005892625.tif 000012