LED表示制御回路 操作装置では1つの種別表示用のLEDと3つの7セグメントLEDを使用しています。これらのLEDはPICで1つずつ順番に点灯を制御します。このようにすると同時には1桁しか点灯しないので、電力の節約になり、電源も小型になります。この制御は高速で行いますので、目で見た場合には同時に点灯しているように見えます。 LEDの点灯制御用のトランジスタにはPNPタイプを使っています。これは、今回使用した7セグメントLEDがアノードコモンというタイプで、制御用のトランジスタは電源とLEDの間に入れる必要があるためです。この場合、PICの制御ポート(RA0-RA3)がLレベルになるとトランジスタはONになり、該当するLEDが点灯可能状態になります。どのセグメントを点灯させるかはRB0-RB6の状態で決まります。これらのポートがLレベルになるとLEDセグメントが点灯します。 種別表示用のLEDの制御抵抗には100Ωを使用しています。回路図ではLED4-6としてそれぞれ1つずつのLEDしか書いていませんが、実際にはそれぞれ3つのLEDが並列に接続されています。それぞれのLEDに約10mAの電流を流すためには合計で30mAの電流を流す必要があり、(5V-2V)/30mA=100Ωになります。2VはLEDにかかる電圧です。 LEDに加える電圧は5Vにしています。これはPICの端子にかけられる電圧が5Vのためです。LEDにかける電圧を5V以上にするための回路は表示装置で使っていますので、そちらを参照してください。 スイッチ・スキャン回路 操作装置には15のスイッチを使っています。これらのスイッチを順番に走査(スキャン)して、どのスイッチが押されたかを検出します。スキャンするスイッチを特定するために4-16デコーダを使用しています。 4ビットのバイナリ信号では16種類の状態を表現できます。このデコーダは4ビットのバイナリ信号を展開し、16種類の信号のうちの該当する信号線をLレベルにします。スイッチ動作の検出はRC4で行います。スイッチが何も押されていない場合にはR15を通してRC4はHレベルになっています。例えば、SW−8が押されたとします。RC3、RC2、RC1、RC0が0111(RC3が上位ビット)になるとSW−8が接続されている端子がLレベルになります。SW−8が押されているのでRC4もLレベルになります。これにより、PICはSW−8が押されたことを認識します。 スイッチのスキャンはSW−1からSW−15の順に行われ、再びSW−1に戻る動作を繰り返します。スイッチスキャンのソフトウェアではONのスイッチを検出するとそれ以降のスイッチのスキャンは行わず、SW−1に戻るようにします。これにより、複数のスイッチが同時に押されてもSW−1に近いスイッチだけが検出され、誤動作を防ぐことができます。 スイッチではチャッタリングというON/OFFを短時間繰り返す現象が発生します。これによる誤動作もソフトウェアにより防ぎます。 ダイオードは複数のキーが同時に押された場合、IC2のHレベル端子からLレベル端子に電流が流れるのを防ぐためです。 RS232C制御回路 制御装置で設定した情報を表示装置に伝えるためにRS232Cというインタフェースを使っています。 このインタフェースはモデムとのインタフェースでも使用しているもので、表示装置との接続ケーブル上の信号電圧として約±9Vを使用し、比較的長距離な伝送を可能とするものです。規格では約15m長のケーブルを使用して伝送可能となっていますが、ケーブルの状況によってはそれ以上の距離にも使えるようです。短距離であればRS232Cインタフェースを使用しなくても、PICの+5V信号で直接伝送することもできます。今回は距離を確保するためと、RS232Cデバイスを使ってみることを目的に使用しました。 今回使用したANALOG DEVICES社のADM232AANには+5Vの電源から±10Vの電圧を作るDC-DCコンバータを内蔵しているので、回路は非常にシンプルです。 PICクロック回路 PICを動作させるためにはクロック発振器が必要です。 発振回路はPICに内蔵されており、外部に発振子を付けるだけです。発振子としては水晶発振子などを使って高精度発振をさせることもできますが、今回はそれほど精度の高い発振をさせる必要はないので安価なセラミック発振子(レゾネータ)を使用しています。PIC16F873の動作可能クロック周波数は20MHzですが、今回の装置では高速動作は必要ないので発振周波数は4MHzにしています。 通信速度などを4MHzで計算していますので、この装置を4MHz以外のクロック周波数で使用する場合には見直しが必要です。 電源回路 スイッチング電源によりAC100からDC12Vを作ります。操作制御部では+12Vの電源から+5Vの電圧を得るために3端子レギュレータを使用しています。 今回使用したレギュレータはナショナルセミコンダクタ社製のLM2840-5という+5V専用のレギュレータです。このレギュレータの特徴はレギュレータでの電圧降下が少ないという点です。仕様では出力電流が1Aのとき、レギュレータでの電圧降下は0.5Vという値とのことです。でも、今回の回路では+12Vから+5Vを作るのでレギュレータでは7Vの電圧降下をさせています。ですから、LM2940の特徴は生かせていません。6Vくらいの電源で5Vの電圧を作る場合などにはその機能が生かせます。今回の回路では7805を使用することもできます。そのほうが安価です。今回の回路ではLM2940の使い勝手を確認するために使用しています。 今回の装置では操作装置で約100mA、表示装置で約150mAの電流が使われます。電源ユニットの容量は最大900mAですから十分な容量になっています。 |